From 37c3d6105cfefedd0e5a2d1344418aa69932fcc6 Mon Sep 17 00:00:00 2001 From: Aleksander Jan Bajkowski Date: Sat, 6 May 2023 20:39:59 +0200 Subject: [PATCH 01/21] lantiq: replace random_ether_addr with eth_random_addr Random_ether_addr() is a helper function which was kept for backward compatibility. It is available in the kernel from version 3.6 to 5.16. In newer kernel verions, it has been completely replaced by eth_random_addr(). There should be no functional changes. Ref: https://github.com/torvalds/linux/commit/ba530fea8ca1b57ee71d4e62f287a5d7ed92f789 Signed-off-by: Aleksander Jan Bajkowski --- .../0035-owrt-lantiq-wifi-and-ethernet-eeprom-handling.patch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/linux/lantiq/patches-5.15/0035-owrt-lantiq-wifi-and-ethernet-eeprom-handling.patch b/target/linux/lantiq/patches-5.15/0035-owrt-lantiq-wifi-and-ethernet-eeprom-handling.patch index f7fbfdf9e4..be0f0bfccd 100644 --- a/target/linux/lantiq/patches-5.15/0035-owrt-lantiq-wifi-and-ethernet-eeprom-handling.patch +++ b/target/linux/lantiq/patches-5.15/0035-owrt-lantiq-wifi-and-ethernet-eeprom-handling.patch @@ -127,7 +127,7 @@ Signed-off-by: John Crispin + + if (!is_valid_ether_addr(athxk_eeprom_mac)) { + dev_warn(&pdev->dev, "using random mac\n"); -+ random_ether_addr(athxk_eeprom_mac); ++ eth_random_addr(athxk_eeprom_mac); + } + + if (!of_property_read_u32(np, "ath,mac-increment", &mac_inc)) From ed79519b8d89ec19587df9869d7b0a0745034ed3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Gonz=C3=A1lez=20Cabanelas?= Date: Sat, 10 Jun 2023 11:54:59 +0200 Subject: [PATCH 02/21] bmips: add support for Netgear DGND3700 v1, DGND3800B MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Netgear DGND3700 v1 and DGND3800B are the same device but with different factory firmwares. It's an xDSL wifi router with a slim black shiny casing and 4 PCB internal antennas connected via UFL to a miniPCI detachable card. Hardware: - SoC: Broadcom BCM6368 - CPU: dual core BMIPS4350 V3.1 @400Mhz - RAM: 128 MB DDR - NOR Flash: 32 MB parallel (CFE and OS) - NAND flash: 128 MB (empty) - Ethernet LAN: 5x 1Gbit - Wifi 2.4 GHz: Broadcom BCM43222 802.11bgn - Wifi 5 GHz: Broadcom BCM43222 802.11abgn - USB: 2x 2.0 - Buttons: 3x, 1 reset - LEDs: 11x - UART: yes Installation via OEM web UI: 1. Open the Netgear administration web interface, by default: http://192.168.0.1 user: admin password: password 2. Look for "upgrade firmware" and proceed 3. Wait some minutes until it finishes Signed-off-by: Daniel González Cabanelas --- .../bcm6368/base-files/etc/board.d/01_leds | 9 + .../bcm6368/base-files/etc/board.d/02_network | 5 + .../bmips/dts/bcm6368-netgear-dgnd3700-v1.dts | 8 + .../bmips/dts/bcm6368-netgear-dgnd3700.dtsi | 266 ++++++++++++++++++ .../bmips/dts/bcm6368-netgear-dgnd3800b.dts | 8 + target/linux/bmips/image/Makefile | 9 + target/linux/bmips/image/bcm6368.mk | 29 ++ 7 files changed, 334 insertions(+) create mode 100644 target/linux/bmips/dts/bcm6368-netgear-dgnd3700-v1.dts create mode 100644 target/linux/bmips/dts/bcm6368-netgear-dgnd3700.dtsi create mode 100644 target/linux/bmips/dts/bcm6368-netgear-dgnd3800b.dts diff --git a/target/linux/bmips/bcm6368/base-files/etc/board.d/01_leds b/target/linux/bmips/bcm6368/base-files/etc/board.d/01_leds index ab797568b7..e68a4e947b 100644 --- a/target/linux/bmips/bcm6368/base-files/etc/board.d/01_leds +++ b/target/linux/bmips/bcm6368/base-files/etc/board.d/01_leds @@ -6,6 +6,15 @@ board_config_update case "$(board_name)" in +netgear,dgnd3700-v1 |\ +netgear,dgnd3800b) + ucidef_set_led_netdev "lan" "LAN" "green:lan" "switch.1" + ucidef_set_led_netdev "wan" "WAN" "green:wan" "wan" + ucidef_set_led_netdev "wlan0" "WIFI2G" "green:wifi2g" "phy0-ap0" + ucidef_set_led_netdev "wlan1" "WIFI5G" "blue:wifi5g" "phy1-ap0" + ucidef_set_led_usbport "usb1" "USB1" "green:usb1" "usb1-port1" "usb2-port1" + ucidef_set_led_usbport "usb2" "USB2" "green:usb2" "usb1-port2" "usb2-port2" + ;; observa,vh4032n) ucidef_set_led_usbport "usb1" "USB1" "blue:hspa" "usb1-port1" "usb2-port1" ucidef_set_led_usbport "usb2" "USB2" "red:hspa" "1-2-port1" "1-2-port2" diff --git a/target/linux/bmips/bcm6368/base-files/etc/board.d/02_network b/target/linux/bmips/bcm6368/base-files/etc/board.d/02_network index 1064b80fba..f99005acd7 100644 --- a/target/linux/bmips/bcm6368/base-files/etc/board.d/02_network +++ b/target/linux/bmips/bcm6368/base-files/etc/board.d/02_network @@ -10,6 +10,11 @@ observa,vh4032n) ucidef_set_bridge_device switch ucidef_set_interface_lan "lan1 lan2 lan3 lan4" ;; +netgear,dgnd3700-v1 |\ +netgear,dgnd3800b) + ucidef_set_bridge_device switch + ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4" "wan" + ;; esac board_config_flush diff --git a/target/linux/bmips/dts/bcm6368-netgear-dgnd3700-v1.dts b/target/linux/bmips/dts/bcm6368-netgear-dgnd3700-v1.dts new file mode 100644 index 0000000000..4ec6c48083 --- /dev/null +++ b/target/linux/bmips/dts/bcm6368-netgear-dgnd3700-v1.dts @@ -0,0 +1,8 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "bcm6368-netgear-dgnd3700.dtsi" + +/ { + model = "Netgear DGND3700 v1"; + compatible = "netgear,dgnd3700-v1", "brcm,bcm6368"; +}; diff --git a/target/linux/bmips/dts/bcm6368-netgear-dgnd3700.dtsi b/target/linux/bmips/dts/bcm6368-netgear-dgnd3700.dtsi new file mode 100644 index 0000000000..2299611d55 --- /dev/null +++ b/target/linux/bmips/dts/bcm6368-netgear-dgnd3700.dtsi @@ -0,0 +1,266 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "bcm6368.dtsi" + +/ { + aliases { + led-boot = &led_power_green; + led-failsafe = &led_power_red; + led-running = &led_power_green; + led-upgrade = &led_power_green; + }; + + keys { + compatible = "gpio-keys-polled"; + poll-interval = <100>; + + rfkill { + label = "rfkill"; + gpios = <&gpio 10 GPIO_ACTIVE_LOW>; + linux,code = ; + debounce-interval = <60>; + }; + + reset { + label = "reset"; + gpios = <&gpio 12 GPIO_ACTIVE_LOW>; + linux,code = ; + debounce-interval = <60>; + }; + + wps { + label = "wps"; + gpios = <&gpio 35 GPIO_ACTIVE_LOW>; + linux,code = ; + debounce-interval = <60>; + }; + }; + + leds { + compatible = "gpio-leds"; + + led@2 { + label = "green:dsl"; + gpios = <&gpio 2 GPIO_ACTIVE_LOW>; + }; + + led@4 { + label = "red:wan"; + gpios = <&gpio 4 GPIO_ACTIVE_LOW>; + }; + + led@5 { + label = "green:wan"; + gpios = <&gpio 5 GPIO_ACTIVE_LOW>; + }; + + led@11 { + label = "green:wps"; + gpios = <&gpio 11 GPIO_ACTIVE_LOW>; + }; + + /* usb front */ + led@13 { + label = "green:usb2"; + gpios = <&gpio 13 GPIO_ACTIVE_LOW>; + }; + + /* usb back */ + led@14 { + label = "green:usb1"; + gpios = <&gpio 14 GPIO_ACTIVE_LOW>; + }; + + led_power_red: led@22 { + label = "red:power"; + gpios = <&gpio 22 GPIO_ACTIVE_LOW>; + panic-indicator; + }; + + led@23 { + label = "green:lan"; + gpios = <&gpio 23 GPIO_ACTIVE_LOW>; + }; + + led_power_green: led@24 { + label = "green:power"; + gpios = <&gpio 24 GPIO_ACTIVE_LOW>; + default-state = "on"; + }; + + led@26 { + label = "green:wifi2g"; + gpios = <&gpio 26 GPIO_ACTIVE_LOW>; + }; + + led@27 { + label = "blue:wifi5g"; + gpios = <&gpio 27 GPIO_ACTIVE_LOW>; + }; + }; +}; + +&ehci { + status = "okay"; +}; + +ðernet { + status = "okay"; + + nvmem-cells = <&macaddr_cfe_6a0>; + nvmem-cell-names = "mac-address"; +}; + +&lsspi { + status = "okay"; + + switch@1 { + compatible = "brcm,bcm53115"; + reg = <1>; + spi-max-frequency = <781000>; + dsa,member = <1 0>; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + wan@0 { + reg = <0>; + label = "wan"; + }; + + port@1 { + reg = <1>; + label = "lan4"; + }; + + port@2 { + reg = <2>; + label = "lan3"; + }; + + port@3 { + reg = <3>; + label = "lan2"; + }; + + port@4 { + reg = <4>; + label = "lan1"; + }; + + port@8 { + reg = <8>; + + phy-mode = "rgmii"; + ethernet = <&switch0port5>; + + fixed-link { + speed = <1000>; + full-duplex; + }; + }; + }; + }; +}; + +&nflash { + status = "okay"; + + nandcs@0 { + compatible = "brcm,nandcs"; + reg = <0>; + nand-ecc-step-size = <512>; + nand-ecc-strength = <15>; + nand-on-flash-bbt; + brcm,nand-oob-sector-size = <64>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "storage"; + reg = <0 0>; /* autodetected size */ + }; + }; + }; +}; + +&ohci { + status = "okay"; +}; + +&pci { + status = "okay"; +}; + +&pflash { + status = "okay"; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + cfe: partition@0 { + label = "CFE"; + reg = <0x0000000 0x0020000>; + read-only; + }; + + partition@20000 { + compatible = "brcm,bcm963xx-imagetag"; + label = "firmware"; + reg = <0x0020000 0x1e20000>; + }; + + partition@1e40000 { + label = "board_data"; + reg = <0x1e40000 0x1a0000>; + read-only; + }; + + partition@1fe0000 { + label = "nvram"; + reg = <0x1fe0000 0x020000>; + }; + }; +}; + +&switch0 { + dsa,member = <0 0>; + + ports { + switch0port5: port@5 { + reg = <5>; + label = "extsw"; + + phy-mode = "rgmii"; + + fixed-link { + speed = <1000>; + full-duplex; + }; + }; + }; +}; + +&uart0 { + status = "okay"; +}; + +&usbh { + status = "okay"; +}; + +&cfe { + compatible = "nvmem-cells"; + #address-cells = <1>; + #size-cells = <1>; + + macaddr_cfe_6a0: macaddr@6a0 { + reg = <0x6a0 0x6>; + }; +}; diff --git a/target/linux/bmips/dts/bcm6368-netgear-dgnd3800b.dts b/target/linux/bmips/dts/bcm6368-netgear-dgnd3800b.dts new file mode 100644 index 0000000000..350d3619c0 --- /dev/null +++ b/target/linux/bmips/dts/bcm6368-netgear-dgnd3800b.dts @@ -0,0 +1,8 @@ +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "bcm6368-netgear-dgnd3700.dtsi" + +/ { + model = "Netgear DGND3800B"; + compatible = "netgear,dgnd3800b", "brcm,bcm6368"; +}; diff --git a/target/linux/bmips/image/Makefile b/target/linux/bmips/image/Makefile index b5e3098fe7..58685dec74 100644 --- a/target/linux/bmips/image/Makefile +++ b/target/linux/bmips/image/Makefile @@ -313,6 +313,15 @@ define Device/bcm63xx-nand DEVICE_PACKAGES += nand-utils endef +define Device/bcm63xx_netgear + $(Device/bcm63xx-cfe) + DEVICE_VENDOR := NETGEAR + IMAGES := factory.chk sysupgrade.bin + IMAGE/factory.chk := cfe-bin | netgear-chk + NETGEAR_BOARD_ID := + NETGEAR_REGION := +endef + define Device/sercomm-nand $(Device/bcm63xx-nand) IMAGES := factory.img sysupgrade.bin diff --git a/target/linux/bmips/image/bcm6368.mk b/target/linux/bmips/image/bcm6368.mk index e3aa40d404..41bce9e938 100644 --- a/target/linux/bmips/image/bcm6368.mk +++ b/target/linux/bmips/image/bcm6368.mk @@ -14,6 +14,35 @@ define Device/comtrend_vr-3025u endef TARGET_DEVICES += comtrend_vr-3025u +define Device/netgear_dgnd3700-v1 + $(Device/bcm63xx_netgear) + DEVICE_VENDOR := NETGEAR + DEVICE_MODEL := DGND3700 + DEVICE_VARIANT := v1 + CFE_BOARD_ID := 96368MVWG + CHIP_ID := 6368 + BLOCKSIZE := 0x20000 + NETGEAR_BOARD_ID := U12L144T01_NETGEAR_NEWLED + NETGEAR_REGION := 1 + DEVICE_PACKAGES += $(USB2_PACKAGES) \ + $(B43_PACKAGES) +endef +TARGET_DEVICES += netgear_dgnd3700-v1 + +define Device/netgear_dgnd3800b + $(Device/bcm63xx_netgear) + DEVICE_VENDOR := NETGEAR + DEVICE_MODEL := DGND3800B + CFE_BOARD_ID := 96368MVWG + CHIP_ID := 6368 + BLOCKSIZE := 0x20000 + NETGEAR_BOARD_ID := U12L144T11_NETGEAR_NEWLED + NETGEAR_REGION := 1 + DEVICE_PACKAGES += $(USB2_PACKAGES) \ + $(B43_PACKAGES) +endef +TARGET_DEVICES += netgear_dgnd3800b + define Device/observa_vh4032n $(Device/bcm63xx-cfe) DEVICE_VENDOR := Observa From 1c058f9b183650453a2b29b3f56922c688991713 Mon Sep 17 00:00:00 2001 From: Christian Marangi Date: Fri, 9 Jun 2023 22:09:42 +0200 Subject: [PATCH 03/21] generic: backport PPC boot wrapper VDSO executable stack fix Backport upstream fix for PowerPC that fix VDSO executable stack warning for the boot wrapper. Fix the compilation error: powerpc-openwrt-linux-musl-ld.bin: warning: div64.o: missing .note.GNU-stack section implies executable stack powerpc-openwrt-linux-musl-ld.bin: NOTE: This behaviour is deprecated and will be removed in a future version of the linker powerpc-openwrt-linux-musl-ld.bin: warning: arch/powerpc/boot/simpleImage.ws-ap3825i has a LOAD segment with RWX permissions Signed-off-by: Christian Marangi --- ...-some-linker-warnings-in-recent-link.patch | 63 +++++++++++++++++++ ...-some-linker-warnings-in-recent-link.patch | 63 +++++++++++++++++++ 2 files changed, 126 insertions(+) create mode 100644 target/linux/generic/backport-5.15/303-v6.2-powerpc-suppress-some-linker-warnings-in-recent-link.patch create mode 100644 target/linux/generic/backport-6.1/300-v6.2-powerpc-suppress-some-linker-warnings-in-recent-link.patch diff --git a/target/linux/generic/backport-5.15/303-v6.2-powerpc-suppress-some-linker-warnings-in-recent-link.patch b/target/linux/generic/backport-5.15/303-v6.2-powerpc-suppress-some-linker-warnings-in-recent-link.patch new file mode 100644 index 0000000000..7c1507bba7 --- /dev/null +++ b/target/linux/generic/backport-5.15/303-v6.2-powerpc-suppress-some-linker-warnings-in-recent-link.patch @@ -0,0 +1,63 @@ +From 579aee9fc594af94c242068c011b0233563d4bbf Mon Sep 17 00:00:00 2001 +From: Stephen Rothwell +Date: Mon, 10 Oct 2022 16:57:21 +1100 +Subject: [PATCH] powerpc: suppress some linker warnings in recent linker + versions + +This is a follow on from commit + + 0d362be5b142 ("Makefile: link with -z noexecstack --no-warn-rwx-segments") + +for arch/powerpc/boot to address wanrings like: + + ld: warning: opal-calls.o: missing .note.GNU-stack section implies executable stack + ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker + ld: warning: arch/powerpc/boot/zImage.epapr has a LOAD segment with RWX permissions + +This fixes issue https://github.com/linuxppc/issues/issues/417 + +Signed-off-by: Stephen Rothwell +Signed-off-by: Michael Ellerman +Link: https://lore.kernel.org/r/20221010165721.106267e6@canb.auug.org.au +--- + arch/powerpc/boot/wrapper | 15 ++++++++++++++- + 1 file changed, 14 insertions(+), 1 deletion(-) + +--- a/arch/powerpc/boot/wrapper ++++ b/arch/powerpc/boot/wrapper +@@ -213,6 +213,11 @@ ld_version() + }' + } + ++ld_is_lld() ++{ ++ ${CROSS}ld -V 2>&1 | grep -q LLD ++} ++ + # Do not include PT_INTERP segment when linking pie. Non-pie linking + # just ignores this option. + LD_VERSION=$(${CROSS}ld --version | ld_version) +@@ -221,6 +226,14 @@ if [ "$LD_VERSION" -ge "$LD_NO_DL_MIN_VE + nodl="--no-dynamic-linker" + fi + ++# suppress some warnings in recent ld versions ++nowarn="-z noexecstack" ++if ! ld_is_lld; then ++ if [ "$LD_VERSION" -ge "$(echo 2.39 | ld_version)" ]; then ++ nowarn="$nowarn --no-warn-rwx-segments" ++ fi ++fi ++ + platformo=$object/"$platform".o + lds=$object/zImage.lds + ext=strip +@@ -502,7 +515,7 @@ if [ "$platform" != "miboot" ]; then + text_start="-Ttext $link_address" + fi + #link everything +- ${CROSS}ld -m $format -T $lds $text_start $pie $nodl $rodynamic $notext -o "$ofile" $map \ ++ ${CROSS}ld -m $format -T $lds $text_start $pie $nodl $nowarn $rodynamic $notext -o "$ofile" $map \ + $platformo $tmp $object/wrapper.a + rm $tmp + fi diff --git a/target/linux/generic/backport-6.1/300-v6.2-powerpc-suppress-some-linker-warnings-in-recent-link.patch b/target/linux/generic/backport-6.1/300-v6.2-powerpc-suppress-some-linker-warnings-in-recent-link.patch new file mode 100644 index 0000000000..d8d0cf9555 --- /dev/null +++ b/target/linux/generic/backport-6.1/300-v6.2-powerpc-suppress-some-linker-warnings-in-recent-link.patch @@ -0,0 +1,63 @@ +From 579aee9fc594af94c242068c011b0233563d4bbf Mon Sep 17 00:00:00 2001 +From: Stephen Rothwell +Date: Mon, 10 Oct 2022 16:57:21 +1100 +Subject: [PATCH] powerpc: suppress some linker warnings in recent linker + versions + +This is a follow on from commit + + 0d362be5b142 ("Makefile: link with -z noexecstack --no-warn-rwx-segments") + +for arch/powerpc/boot to address wanrings like: + + ld: warning: opal-calls.o: missing .note.GNU-stack section implies executable stack + ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker + ld: warning: arch/powerpc/boot/zImage.epapr has a LOAD segment with RWX permissions + +This fixes issue https://github.com/linuxppc/issues/issues/417 + +Signed-off-by: Stephen Rothwell +Signed-off-by: Michael Ellerman +Link: https://lore.kernel.org/r/20221010165721.106267e6@canb.auug.org.au +--- + arch/powerpc/boot/wrapper | 15 ++++++++++++++- + 1 file changed, 14 insertions(+), 1 deletion(-) + +--- a/arch/powerpc/boot/wrapper ++++ b/arch/powerpc/boot/wrapper +@@ -215,6 +215,11 @@ ld_version() + }' + } + ++ld_is_lld() ++{ ++ ${CROSS}ld -V 2>&1 | grep -q LLD ++} ++ + # Do not include PT_INTERP segment when linking pie. Non-pie linking + # just ignores this option. + LD_VERSION=$(${CROSS}ld --version | ld_version) +@@ -223,6 +228,14 @@ if [ "$LD_VERSION" -ge "$LD_NO_DL_MIN_VE + nodl="--no-dynamic-linker" + fi + ++# suppress some warnings in recent ld versions ++nowarn="-z noexecstack" ++if ! ld_is_lld; then ++ if [ "$LD_VERSION" -ge "$(echo 2.39 | ld_version)" ]; then ++ nowarn="$nowarn --no-warn-rwx-segments" ++ fi ++fi ++ + platformo=$object/"$platform".o + lds=$object/zImage.lds + ext=strip +@@ -504,7 +517,7 @@ if [ "$platform" != "miboot" ]; then + text_start="-Ttext $link_address" + fi + #link everything +- ${CROSS}ld -m $format -T $lds $text_start $pie $nodl $rodynamic $notext -o "$ofile" $map \ ++ ${CROSS}ld -m $format -T $lds $text_start $pie $nodl $nowarn $rodynamic $notext -o "$ofile" $map \ + $platformo $tmp $object/wrapper.a + rm $tmp + fi From 9dfade39f5d9e5ea5ff8bf75200adb0a15a3d7d6 Mon Sep 17 00:00:00 2001 From: Christian Marangi Date: Sat, 10 Jun 2023 05:33:44 +0200 Subject: [PATCH 04/21] generic: 5.15: backport patch supporting "big" kernel symbols Backport patch supporting "big" kernel symbols. This is needed for powerpc arch that seems to suffer from this problem when CONFIG_ALL_KMODS is selected and fail to compile with the error: Inconsistent kallsyms data Try make KALLSYMS_EXTRA_PASS=1 as a workaround Backport this patch to handle these corner case. Signed-off-by: Christian Marangi --- ...-kallsyms-support-big-kernel-symbols.patch | 128 ++++++++++++++++++ 1 file changed, 128 insertions(+) create mode 100644 target/linux/generic/backport-5.15/202-v6.1-kallsyms-support-big-kernel-symbols.patch diff --git a/target/linux/generic/backport-5.15/202-v6.1-kallsyms-support-big-kernel-symbols.patch b/target/linux/generic/backport-5.15/202-v6.1-kallsyms-support-big-kernel-symbols.patch new file mode 100644 index 0000000000..786a2d93b5 --- /dev/null +++ b/target/linux/generic/backport-5.15/202-v6.1-kallsyms-support-big-kernel-symbols.patch @@ -0,0 +1,128 @@ +From 73bbb94466fd3f8b313eeb0b0467314a262dddb3 Mon Sep 17 00:00:00 2001 +From: Miguel Ojeda +Date: Mon, 5 Apr 2021 04:58:39 +0200 +Subject: [PATCH] kallsyms: support "big" kernel symbols + +Rust symbols can become quite long due to namespacing introduced +by modules, types, traits, generics, etc. + +Increasing to 255 is not enough in some cases, therefore +introduce longer lengths to the symbol table. + +In order to avoid increasing all lengths to 2 bytes (since most +of them are small, including many Rust ones), use ULEB128 to +keep smaller symbols in 1 byte, with the rest in 2 bytes. + +Reviewed-by: Kees Cook +Reviewed-by: Greg Kroah-Hartman +Co-developed-by: Alex Gaynor +Signed-off-by: Alex Gaynor +Co-developed-by: Wedson Almeida Filho +Signed-off-by: Wedson Almeida Filho +Co-developed-by: Gary Guo +Signed-off-by: Gary Guo +Co-developed-by: Boqun Feng +Signed-off-by: Boqun Feng +Co-developed-by: Matthew Wilcox +Signed-off-by: Matthew Wilcox +Signed-off-by: Miguel Ojeda +--- + kernel/kallsyms.c | 26 ++++++++++++++++++++++---- + scripts/kallsyms.c | 29 ++++++++++++++++++++++++++--- + 2 files changed, 48 insertions(+), 7 deletions(-) + +--- a/kernel/kallsyms.c ++++ b/kernel/kallsyms.c +@@ -69,12 +69,20 @@ static unsigned int kallsyms_expand_symb + data = &kallsyms_names[off]; + len = *data; + data++; ++ off++; ++ ++ /* If MSB is 1, it is a "big" symbol, so needs an additional byte. */ ++ if ((len & 0x80) != 0) { ++ len = (len & 0x7F) | (*data << 7); ++ data++; ++ off++; ++ } + + /* + * Update the offset to return the offset for the next symbol on + * the compressed stream. + */ +- off += len + 1; ++ off += len; + + /* + * For every byte on the compressed symbol data, copy the table +@@ -127,7 +135,7 @@ static char kallsyms_get_symbol_type(uns + static unsigned int get_symbol_offset(unsigned long pos) + { + const u8 *name; +- int i; ++ int i, len; + + /* + * Use the closest marker we have. We have markers every 256 positions, +@@ -141,8 +149,18 @@ static unsigned int get_symbol_offset(un + * so we just need to add the len to the current pointer for every + * symbol we wish to skip. + */ +- for (i = 0; i < (pos & 0xFF); i++) +- name = name + (*name) + 1; ++ for (i = 0; i < (pos & 0xFF); i++) { ++ len = *name; ++ ++ /* ++ * If MSB is 1, it is a "big" symbol, so we need to look into ++ * the next byte (and skip it, too). ++ */ ++ if ((len & 0x80) != 0) ++ len = ((len & 0x7F) | (name[1] << 7)) + 1; ++ ++ name = name + len + 1; ++ } + + return name - kallsyms_names; + } +--- a/scripts/kallsyms.c ++++ b/scripts/kallsyms.c +@@ -470,12 +470,35 @@ static void write_src(void) + if ((i & 0xFF) == 0) + markers[i >> 8] = off; + +- printf("\t.byte 0x%02x", table[i]->len); ++ /* There cannot be any symbol of length zero. */ ++ if (table[i]->len == 0) { ++ fprintf(stderr, "kallsyms failure: " ++ "unexpected zero symbol length\n"); ++ exit(EXIT_FAILURE); ++ } ++ ++ /* Only lengths that fit in up-to-two-byte ULEB128 are supported. */ ++ if (table[i]->len > 0x3FFF) { ++ fprintf(stderr, "kallsyms failure: " ++ "unexpected huge symbol length\n"); ++ exit(EXIT_FAILURE); ++ } ++ ++ /* Encode length with ULEB128. */ ++ if (table[i]->len <= 0x7F) { ++ /* Most symbols use a single byte for the length. */ ++ printf("\t.byte 0x%02x", table[i]->len); ++ off += table[i]->len + 1; ++ } else { ++ /* "Big" symbols use two bytes. */ ++ printf("\t.byte 0x%02x, 0x%02x", ++ (table[i]->len & 0x7F) | 0x80, ++ (table[i]->len >> 7) & 0x7F); ++ off += table[i]->len + 2; ++ } + for (k = 0; k < table[i]->len; k++) + printf(", 0x%02x", table[i]->sym[k]); + printf("\n"); +- +- off += table[i]->len + 1; + } + printf("\n"); + From da59c757b48ef3f20872de7fedca3a8cdd8a2dec Mon Sep 17 00:00:00 2001 From: Christian Marangi Date: Sat, 10 Jun 2023 05:47:14 +0200 Subject: [PATCH 05/21] generic: 5.15: refresh patches Refresh kernel patches for generic 5.15 kernel version. Signed-off-by: Christian Marangi --- .../pending-5.15/203-kallsyms_uncompressed.patch | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/target/linux/generic/pending-5.15/203-kallsyms_uncompressed.patch b/target/linux/generic/pending-5.15/203-kallsyms_uncompressed.patch index 930d0ff0fe..e469b7229c 100644 --- a/target/linux/generic/pending-5.15/203-kallsyms_uncompressed.patch +++ b/target/linux/generic/pending-5.15/203-kallsyms_uncompressed.patch @@ -33,7 +33,7 @@ Signed-off-by: Felix Fietkau --- a/kernel/kallsyms.c +++ b/kernel/kallsyms.c -@@ -80,6 +80,11 @@ static unsigned int kallsyms_expand_symb +@@ -88,6 +88,11 @@ static unsigned int kallsyms_expand_symb * For every byte on the compressed symbol data, copy the table * entry for that byte. */ @@ -45,7 +45,7 @@ Signed-off-by: Felix Fietkau while (len) { tptr = &kallsyms_token_table[kallsyms_token_index[*data]]; data++; -@@ -112,6 +117,9 @@ tail: +@@ -120,6 +125,9 @@ tail: */ static char kallsyms_get_symbol_type(unsigned int off) { @@ -65,7 +65,7 @@ Signed-off-by: Felix Fietkau static int absolute_percpu; static int base_relative; -@@ -486,6 +487,9 @@ static void write_src(void) +@@ -509,6 +510,9 @@ static void write_src(void) free(markers); @@ -75,7 +75,7 @@ Signed-off-by: Felix Fietkau output_label("kallsyms_token_table"); off = 0; for (i = 0; i < 256; i++) { -@@ -537,6 +541,9 @@ static unsigned char *find_token(unsigne +@@ -560,6 +564,9 @@ static unsigned char *find_token(unsigne { int i; @@ -85,7 +85,7 @@ Signed-off-by: Felix Fietkau for (i = 0; i < len - 1; i++) { if (str[i] == token[0] && str[i+1] == token[1]) return &str[i]; -@@ -609,6 +616,9 @@ static void optimize_result(void) +@@ -632,6 +639,9 @@ static void optimize_result(void) { int i, best; @@ -95,7 +95,7 @@ Signed-off-by: Felix Fietkau /* using the '\0' symbol last allows compress_symbols to use standard * fast string functions */ for (i = 255; i >= 0; i--) { -@@ -773,6 +783,8 @@ int main(int argc, char **argv) +@@ -796,6 +806,8 @@ int main(int argc, char **argv) absolute_percpu = 1; else if (strcmp(argv[i], "--base-relative") == 0) base_relative = 1; From cc2f85ef7d69dd5fe49f7b9723418798591bf4fd Mon Sep 17 00:00:00 2001 From: Christian Marangi Date: Sat, 10 Jun 2023 05:47:57 +0200 Subject: [PATCH 06/21] mpc85xx: 5.15: refresh kernel patches Refresh kernel patches for 5.15 kernel version for mpc85xx. Signed-off-by: Christian Marangi --- .../patches-5.15/100-powerpc-85xx-tl-wdr4900-v1-support.patch | 2 +- .../patches-5.15/107-powerpc-85xx-add-ws-ap3825i-support.patch | 2 +- .../patches-5.15/109-powerpc-85xx-add-ws-ap3715i-support.patch | 2 +- .../patches-5.15/110-powerpc-85xx-br200-wp-support.patch | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/target/linux/mpc85xx/patches-5.15/100-powerpc-85xx-tl-wdr4900-v1-support.patch b/target/linux/mpc85xx/patches-5.15/100-powerpc-85xx-tl-wdr4900-v1-support.patch index e1e817c1f2..0ecbec3ca4 100644 --- a/target/linux/mpc85xx/patches-5.15/100-powerpc-85xx-tl-wdr4900-v1-support.patch +++ b/target/linux/mpc85xx/patches-5.15/100-powerpc-85xx-tl-wdr4900-v1-support.patch @@ -38,7 +38,7 @@ Signed-off-by: Pawel Dembicki --- a/arch/powerpc/boot/wrapper +++ b/arch/powerpc/boot/wrapper -@@ -326,6 +326,11 @@ adder875-redboot) +@@ -339,6 +339,11 @@ adder875-redboot) platformo="$object/fixed-head.o $object/redboot-8xx.o" binary=y ;; diff --git a/target/linux/mpc85xx/patches-5.15/107-powerpc-85xx-add-ws-ap3825i-support.patch b/target/linux/mpc85xx/patches-5.15/107-powerpc-85xx-add-ws-ap3825i-support.patch index b211f3cb30..bd731a2344 100644 --- a/target/linux/mpc85xx/patches-5.15/107-powerpc-85xx-add-ws-ap3825i-support.patch +++ b/target/linux/mpc85xx/patches-5.15/107-powerpc-85xx-add-ws-ap3825i-support.patch @@ -55,7 +55,7 @@ WS-AP3825i AP. --- a/arch/powerpc/boot/wrapper +++ b/arch/powerpc/boot/wrapper -@@ -326,6 +326,7 @@ adder875-redboot) +@@ -339,6 +339,7 @@ adder875-redboot) platformo="$object/fixed-head.o $object/redboot-8xx.o" binary=y ;; diff --git a/target/linux/mpc85xx/patches-5.15/109-powerpc-85xx-add-ws-ap3715i-support.patch b/target/linux/mpc85xx/patches-5.15/109-powerpc-85xx-add-ws-ap3715i-support.patch index 8272d9dd2a..692cef0417 100644 --- a/target/linux/mpc85xx/patches-5.15/109-powerpc-85xx-add-ws-ap3715i-support.patch +++ b/target/linux/mpc85xx/patches-5.15/109-powerpc-85xx-add-ws-ap3715i-support.patch @@ -40,7 +40,7 @@ image-$(CONFIG_MVME7100) += dtbImage.mvme7100 --- a/arch/powerpc/boot/wrapper +++ b/arch/powerpc/boot/wrapper -@@ -326,6 +326,7 @@ adder875-redboot) +@@ -339,6 +339,7 @@ adder875-redboot) platformo="$object/fixed-head.o $object/redboot-8xx.o" binary=y ;; diff --git a/target/linux/mpc85xx/patches-5.15/110-powerpc-85xx-br200-wp-support.patch b/target/linux/mpc85xx/patches-5.15/110-powerpc-85xx-br200-wp-support.patch index 8d510759dc..eb70a4c4c4 100644 --- a/target/linux/mpc85xx/patches-5.15/110-powerpc-85xx-br200-wp-support.patch +++ b/target/linux/mpc85xx/patches-5.15/110-powerpc-85xx-br200-wp-support.patch @@ -47,7 +47,7 @@ image-$(CONFIG_WS_AP3825I) += simpleImage.ws-ap3825i --- a/arch/powerpc/boot/wrapper +++ b/arch/powerpc/boot/wrapper -@@ -326,6 +326,7 @@ adder875-redboot) +@@ -339,6 +339,7 @@ adder875-redboot) platformo="$object/fixed-head.o $object/redboot-8xx.o" binary=y ;; From feab4a804e303364c127335a91afc67e62fadda2 Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Wed, 7 Jun 2023 14:31:58 +0200 Subject: [PATCH 07/21] kernel: qca-ssdk: drop 5.15 support There is no need for SSDK to support 5.15 anymore since the only user and possible future ones are on 6.1. Signed-off-by: Robert Marko --- .../0005-SSDK-config-add-kernel-5.15.patch | 56 ------------------- ...010-QSDK-config-Avoid-Werror-heroics.patch | 8 +-- .../0015-SSDK-config-add-kernel-6.1.patch | 22 ++++---- 3 files changed, 15 insertions(+), 71 deletions(-) delete mode 100644 package/kernel/qca-ssdk/patches/0005-SSDK-config-add-kernel-5.15.patch diff --git a/package/kernel/qca-ssdk/patches/0005-SSDK-config-add-kernel-5.15.patch b/package/kernel/qca-ssdk/patches/0005-SSDK-config-add-kernel-5.15.patch deleted file mode 100644 index 7b19f5d12c..0000000000 --- a/package/kernel/qca-ssdk/patches/0005-SSDK-config-add-kernel-5.15.patch +++ /dev/null @@ -1,56 +0,0 @@ -From 0c509f8d8e5a6a03933a112d4487fd1c005442d6 Mon Sep 17 00:00:00 2001 -From: Robert Marko -Date: Fri, 24 Dec 2021 19:39:02 +0100 -Subject: [PATCH 05/11] SSDK: config: add kernel 5.15 - -This is purely to identify it and be able to set -flags correctly. - -Signed-off-by: Robert Marko ---- - config | 6 +++++- - make/linux_opt.mk | 4 ++-- - 2 files changed, 7 insertions(+), 3 deletions(-) - ---- a/config -+++ b/config -@@ -24,6 +24,10 @@ ifeq ($(KVER),$(filter 5.4%,$(KVER))) - OS_VER=5_4 - endif - -+ifeq ($(KVER),$(filter 5.15%,$(KVER))) -+OS_VER=5_15 -+endif -+ - ifeq ($(KVER), 3.4.0) - OS_VER=3_4 - endif -@@ -132,7 +136,7 @@ ifeq ($(ARCH), arm) - endif - - ifeq ($(ARCH), arm64) -- ifeq ($(KVER),$(filter 4.1% 4.4% 4.9% 5.4%,$(KVER))) -+ ifeq ($(KVER),$(filter 4.1% 4.4% 4.9% 5.4% 5.15%,$(KVER))) - CPU_CFLAG= -DMODULE -Os -pipe -march=armv8-a -mcpu=cortex-a53+crypto -fno-caller-saves -fno-strict-aliasing -Werror -fno-common -Wno-format-security -Wno-pointer-sign -Wno-unused-but-set-variable -Wno-error=unused-result -mcmodel=large - endif - endif ---- a/make/linux_opt.mk -+++ b/make/linux_opt.mk -@@ -437,7 +437,7 @@ ifeq (KSLIB, $(MODULE_TYPE)) - KASAN_SHADOW_SCALE_SHIFT := 3 - endif - -- ifeq (5_4, $(OS_VER)) -+ ifeq (5_4 5_15, $(OS_VER)) - ifeq ($(ARCH), arm64) - KASAN_OPTION += -DKASAN_SHADOW_SCALE_SHIFT=$(KASAN_SHADOW_SCALE_SHIFT) - endif -@@ -468,7 +468,7 @@ ifeq (KSLIB, $(MODULE_TYPE)) - - endif - -- ifeq ($(OS_VER),$(filter 4_4 5_4, $(OS_VER))) -+ ifeq ($(OS_VER),$(filter 4_4 5_4 5_15, $(OS_VER))) - MODULE_CFLAG += -DKVER34 - MODULE_CFLAG += -DKVER32 - MODULE_CFLAG += -DLNX26_22 diff --git a/package/kernel/qca-ssdk/patches/0010-QSDK-config-Avoid-Werror-heroics.patch b/package/kernel/qca-ssdk/patches/0010-QSDK-config-Avoid-Werror-heroics.patch index 8eff0a9958..f9c913fadf 100644 --- a/package/kernel/qca-ssdk/patches/0010-QSDK-config-Avoid-Werror-heroics.patch +++ b/package/kernel/qca-ssdk/patches/0010-QSDK-config-Avoid-Werror-heroics.patch @@ -1,7 +1,7 @@ -From ecd1e0c57fdf7f8916fa20f085e08bb4b6ba0396 Mon Sep 17 00:00:00 2001 +From d70d013ac1090565ebb71875f5bdc70840807428 Mon Sep 17 00:00:00 2001 From: Alexandru Gagniuc Date: Fri, 23 Sep 2022 08:21:13 -0500 -Subject: [PATCH 10/11] QSDK: config: Avoid -Werror heroics +Subject: [PATCH] QSDK: config: Avoid -Werror heroics Trying to compile the QSDK with warnings as errors is a very brave endeavor. It's also stupid as it doesn't work on ipq60xx: @@ -19,10 +19,10 @@ Signed-off-by: Alexandru Gagniuc --- a/config +++ b/config -@@ -137,7 +137,7 @@ endif +@@ -133,7 +133,7 @@ endif ifeq ($(ARCH), arm64) - ifeq ($(KVER),$(filter 4.1% 4.4% 4.9% 5.4% 5.15%,$(KVER))) + ifeq ($(KVER),$(filter 4.1% 4.4% 4.9% 5.4%,$(KVER))) - CPU_CFLAG= -DMODULE -Os -pipe -march=armv8-a -mcpu=cortex-a53+crypto -fno-caller-saves -fno-strict-aliasing -Werror -fno-common -Wno-format-security -Wno-pointer-sign -Wno-unused-but-set-variable -Wno-error=unused-result -mcmodel=large + CPU_CFLAG= -DMODULE -Os -pipe -march=armv8-a -mcpu=cortex-a53+crypto -fno-caller-saves -fno-strict-aliasing -fno-common -Wno-format-security -Wno-pointer-sign -Wno-unused-but-set-variable -Wno-error=unused-result -mcmodel=large endif diff --git a/package/kernel/qca-ssdk/patches/0015-SSDK-config-add-kernel-6.1.patch b/package/kernel/qca-ssdk/patches/0015-SSDK-config-add-kernel-6.1.patch index 77c54979a9..d0cf143562 100644 --- a/package/kernel/qca-ssdk/patches/0015-SSDK-config-add-kernel-6.1.patch +++ b/package/kernel/qca-ssdk/patches/0015-SSDK-config-add-kernel-6.1.patch @@ -1,4 +1,4 @@ -From 1f9eb43f118b86c0b68e9d82bfae77471d6c3921 Mon Sep 17 00:00:00 2001 +From 05aba6d6dfd49fe10b33cf221b7e81250a67033c Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Thu, 29 Sep 2022 09:59:20 +0200 Subject: [PATCH] SSDK: config: add kernel 6.1 @@ -13,23 +13,23 @@ Signed-off-by: Robert Marko --- a/config +++ b/config -@@ -28,6 +28,10 @@ ifeq ($(KVER),$(filter 5.15%,$(KVER))) - OS_VER=5_15 +@@ -24,6 +24,10 @@ ifeq ($(KVER),$(filter 5.4%,$(KVER))) + OS_VER=5_4 endif +ifeq ($(KVER),$(filter 6.1%,$(KVER))) -+OS_VER=6_1 ++ OS_VER=6_1 +endif + ifeq ($(KVER), 3.4.0) OS_VER=3_4 endif -@@ -136,7 +140,7 @@ ifeq ($(ARCH), arm) +@@ -132,7 +136,7 @@ ifeq ($(ARCH), arm) endif ifeq ($(ARCH), arm64) -- ifeq ($(KVER),$(filter 4.1% 4.4% 4.9% 5.4% 5.15%,$(KVER))) -+ ifeq ($(KVER),$(filter 4.1% 4.4% 4.9% 5.4% 5.15% 6.1%,$(KVER))) +- ifeq ($(KVER),$(filter 4.1% 4.4% 4.9% 5.4%,$(KVER))) ++ ifeq ($(KVER),$(filter 4.1% 4.4% 4.9% 5.4% 6.1%,$(KVER))) CPU_CFLAG= -DMODULE -Os -pipe -march=armv8-a -mcpu=cortex-a53+crypto -fno-caller-saves -fno-strict-aliasing -fno-common -Wno-format-security -Wno-pointer-sign -Wno-unused-but-set-variable -Wno-error=unused-result -mcmodel=large endif endif @@ -39,8 +39,8 @@ Signed-off-by: Robert Marko KASAN_SHADOW_SCALE_SHIFT := 3 endif -- ifeq (5_4 5_15, $(OS_VER)) -+ ifeq (5_4 5_15 6_1, $(OS_VER)) +- ifeq (5_4, $(OS_VER)) ++ ifeq (5_4 6_1, $(OS_VER)) ifeq ($(ARCH), arm64) KASAN_OPTION += -DKASAN_SHADOW_SCALE_SHIFT=$(KASAN_SHADOW_SCALE_SHIFT) endif @@ -48,8 +48,8 @@ Signed-off-by: Robert Marko endif -- ifeq ($(OS_VER),$(filter 4_4 5_4 5_15, $(OS_VER))) -+ ifeq ($(OS_VER),$(filter 4_4 5_4 5_15 6_1, $(OS_VER))) +- ifeq ($(OS_VER),$(filter 4_4 5_4, $(OS_VER))) ++ ifeq ($(OS_VER),$(filter 4_4 5_4 6_1, $(OS_VER))) MODULE_CFLAG += -DKVER34 MODULE_CFLAG += -DKVER32 MODULE_CFLAG += -DLNX26_22 From ff0465b26e6365a5c9e55eaa706c77667b25fb34 Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Wed, 7 Jun 2023 14:33:35 +0200 Subject: [PATCH 08/21] kernel: qca-ssdk: renumber patches Lets reexport the patches in order to have them renumbered from 0 again. Signed-off-by: Robert Marko --- ...0001-SSDK-replace-ioremap_nocache-with-ioremap.patch} | 4 ++-- ...-platform-use-of_mdio_find_bus-to-get-MDIO-bus.patch} | 4 ++-- ....patch => 0003-SSDK-dts-fix-of_get_mac_address.patch} | 4 ++-- ...atch => 0004-qca8081-convert-to-5.11-IRQ-model.patch} | 4 ++-- ...0005-qca807x-add-a-LED-quirk-for-Xiaomi-AX9000.patch} | 4 ++-- ...0006-qca807x-add-a-LED-quirk-for-Xiaomi-AX3600.patch} | 4 ++-- ...ude-fix-compilation-error-for-parse_uci_option.patch} | 4 ++-- ...patch => 0008-QSDK-config-Avoid-Werror-heroics.patch} | 2 +- ...-qca-ssdk-remove-bridge-fdb-entry-for-the-auth.patch} | 4 ++-- ... => 0010-Support-Linux-Style-Makefile-for-SSDK.patch} | 9 ++------- ...-fix-compilation-issue-in-Linux-Style-Makefile.patch} | 5 ++--- ...h => 0012-fix-compilation-issue-in-Miami-yocto.patch} | 4 ++-- ...l-6.1.patch => 0013-SSDK-config-add-kernel-6.1.patch} | 2 +- ....patch => 0014-SSDK-qca808x-use-get_random_u32.patch} | 4 ++-- 14 files changed, 26 insertions(+), 32 deletions(-) rename package/kernel/qca-ssdk/patches/{0002-SSDK-replace-ioremap_nocache-with-ioremap.patch => 0001-SSDK-replace-ioremap_nocache-with-ioremap.patch} (96%) rename package/kernel/qca-ssdk/patches/{0003-SSDK-platform-use-of_mdio_find_bus-to-get-MDIO-bus.patch => 0002-SSDK-platform-use-of_mdio_find_bus-to-get-MDIO-bus.patch} (91%) rename package/kernel/qca-ssdk/patches/{0004-SSDK-dts-fix-of_get_mac_address.patch => 0003-SSDK-dts-fix-of_get_mac_address.patch} (91%) rename package/kernel/qca-ssdk/patches/{0006-qca8081-convert-to-5.11-IRQ-model.patch => 0004-qca8081-convert-to-5.11-IRQ-model.patch} (94%) rename package/kernel/qca-ssdk/patches/{0007-qca807x-add-a-LED-quirk-for-Xiaomi-AX9000.patch => 0005-qca807x-add-a-LED-quirk-for-Xiaomi-AX9000.patch} (95%) rename package/kernel/qca-ssdk/patches/{0008-qca807x-add-a-LED-quirk-for-Xiaomi-AX3600.patch => 0006-qca807x-add-a-LED-quirk-for-Xiaomi-AX3600.patch} (89%) rename package/kernel/qca-ssdk/patches/{0009-include-fix-compilation-error-for-parse_uci_option.patch => 0007-include-fix-compilation-error-for-parse_uci_option.patch} (78%) rename package/kernel/qca-ssdk/patches/{0010-QSDK-config-Avoid-Werror-heroics.patch => 0008-QSDK-config-Avoid-Werror-heroics.patch} (95%) rename package/kernel/qca-ssdk/patches/{0011-Revert-qca-ssdk-remove-bridge-fdb-entry-for-the-auth.patch => 0009-Revert-qca-ssdk-remove-bridge-fdb-entry-for-the-auth.patch} (91%) rename package/kernel/qca-ssdk/patches/{0012-qca-ssdk-Support-Linux-Style-Makefile-for-SSDK.patch => 0010-Support-Linux-Style-Makefile-for-SSDK.patch} (96%) rename package/kernel/qca-ssdk/patches/{0013-qca-ssdk-fix-compilation-issue-in-Linux-Style-Makefi.patch => 0011-fix-compilation-issue-in-Linux-Style-Makefile.patch} (82%) rename package/kernel/qca-ssdk/patches/{0014-qca-ssdk-fix-compilation-issue-in-Miami-yocto.patch => 0012-fix-compilation-issue-in-Miami-yocto.patch} (84%) rename package/kernel/qca-ssdk/patches/{0015-SSDK-config-add-kernel-6.1.patch => 0013-SSDK-config-add-kernel-6.1.patch} (96%) rename package/kernel/qca-ssdk/patches/{0016-SSDK-qca808x-use-get_random_u32.patch => 0014-SSDK-qca808x-use-get_random_u32.patch} (88%) diff --git a/package/kernel/qca-ssdk/patches/0002-SSDK-replace-ioremap_nocache-with-ioremap.patch b/package/kernel/qca-ssdk/patches/0001-SSDK-replace-ioremap_nocache-with-ioremap.patch similarity index 96% rename from package/kernel/qca-ssdk/patches/0002-SSDK-replace-ioremap_nocache-with-ioremap.patch rename to package/kernel/qca-ssdk/patches/0001-SSDK-replace-ioremap_nocache-with-ioremap.patch index 5589c8e229..2b659e1322 100644 --- a/package/kernel/qca-ssdk/patches/0002-SSDK-replace-ioremap_nocache-with-ioremap.patch +++ b/package/kernel/qca-ssdk/patches/0001-SSDK-replace-ioremap_nocache-with-ioremap.patch @@ -1,7 +1,7 @@ -From 845a89b05aae807fb837f8e8f27f95c89de6023f Mon Sep 17 00:00:00 2001 +From 1e46d596701fedb751a669666a74677344fb8724 Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Wed, 12 May 2021 13:45:45 +0200 -Subject: [PATCH 02/11] SSDK: replace ioremap_nocache with ioremap +Subject: [PATCH 01/14] SSDK: replace ioremap_nocache with ioremap ioremap_nocache was dropped upstream, simply use the generic variety. diff --git a/package/kernel/qca-ssdk/patches/0003-SSDK-platform-use-of_mdio_find_bus-to-get-MDIO-bus.patch b/package/kernel/qca-ssdk/patches/0002-SSDK-platform-use-of_mdio_find_bus-to-get-MDIO-bus.patch similarity index 91% rename from package/kernel/qca-ssdk/patches/0003-SSDK-platform-use-of_mdio_find_bus-to-get-MDIO-bus.patch rename to package/kernel/qca-ssdk/patches/0002-SSDK-platform-use-of_mdio_find_bus-to-get-MDIO-bus.patch index f9535fb387..21b3491c6f 100644 --- a/package/kernel/qca-ssdk/patches/0003-SSDK-platform-use-of_mdio_find_bus-to-get-MDIO-bus.patch +++ b/package/kernel/qca-ssdk/patches/0002-SSDK-platform-use-of_mdio_find_bus-to-get-MDIO-bus.patch @@ -1,7 +1,7 @@ -From 85f988dbc15559a5a2fee606e6ef400aa39fe444 Mon Sep 17 00:00:00 2001 +From 60d2b72cacd43796def9b4bd69a9e0e84be9d2e1 Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Wed, 12 May 2021 17:15:46 +0200 -Subject: [PATCH 03/11] SSDK: platform: use of_mdio_find_bus() to get MDIO bus +Subject: [PATCH 02/14] SSDK: platform: use of_mdio_find_bus() to get MDIO bus Kernel has a generic of_mdio_find_bus() which can get the appropriate MDIO bus based on the DT node. diff --git a/package/kernel/qca-ssdk/patches/0004-SSDK-dts-fix-of_get_mac_address.patch b/package/kernel/qca-ssdk/patches/0003-SSDK-dts-fix-of_get_mac_address.patch similarity index 91% rename from package/kernel/qca-ssdk/patches/0004-SSDK-dts-fix-of_get_mac_address.patch rename to package/kernel/qca-ssdk/patches/0003-SSDK-dts-fix-of_get_mac_address.patch index 1dd948643f..c004f4acd8 100644 --- a/package/kernel/qca-ssdk/patches/0004-SSDK-dts-fix-of_get_mac_address.patch +++ b/package/kernel/qca-ssdk/patches/0003-SSDK-dts-fix-of_get_mac_address.patch @@ -1,7 +1,7 @@ -From 079c20aa182c6b623d49e1f375e022dedac7373c Mon Sep 17 00:00:00 2001 +From c1b6fa42a160763b574dd52aa4845718e4cd0ea6 Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Fri, 13 Aug 2021 20:03:21 +0200 -Subject: [PATCH 04/11] SSDK: dts: fix of_get_mac_address() +Subject: [PATCH 03/14] SSDK: dts: fix of_get_mac_address() Recently OpenWrt backported the updated of_get_mac_address() function which returns and error code instead. diff --git a/package/kernel/qca-ssdk/patches/0006-qca8081-convert-to-5.11-IRQ-model.patch b/package/kernel/qca-ssdk/patches/0004-qca8081-convert-to-5.11-IRQ-model.patch similarity index 94% rename from package/kernel/qca-ssdk/patches/0006-qca8081-convert-to-5.11-IRQ-model.patch rename to package/kernel/qca-ssdk/patches/0004-qca8081-convert-to-5.11-IRQ-model.patch index 4eb7483d2b..1e496ad981 100644 --- a/package/kernel/qca-ssdk/patches/0006-qca8081-convert-to-5.11-IRQ-model.patch +++ b/package/kernel/qca-ssdk/patches/0004-qca8081-convert-to-5.11-IRQ-model.patch @@ -1,7 +1,7 @@ -From 9278b2794d984f5a8ec2350b9607a35aea2cc106 Mon Sep 17 00:00:00 2001 +From aaac91b5e8756dce1c0242d58074a0b5d4607b57 Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Fri, 24 Dec 2021 20:02:32 +0100 -Subject: [PATCH 06/11] qca8081: convert to 5.11 IRQ model +Subject: [PATCH 04/14] qca8081: convert to 5.11 IRQ model Kernel 5.11 introduced new IRQ handling model for PHY-s, so provide those if 5.11 or later is used. diff --git a/package/kernel/qca-ssdk/patches/0007-qca807x-add-a-LED-quirk-for-Xiaomi-AX9000.patch b/package/kernel/qca-ssdk/patches/0005-qca807x-add-a-LED-quirk-for-Xiaomi-AX9000.patch similarity index 95% rename from package/kernel/qca-ssdk/patches/0007-qca807x-add-a-LED-quirk-for-Xiaomi-AX9000.patch rename to package/kernel/qca-ssdk/patches/0005-qca807x-add-a-LED-quirk-for-Xiaomi-AX9000.patch index b8ebb08047..6ff92ab95a 100644 --- a/package/kernel/qca-ssdk/patches/0007-qca807x-add-a-LED-quirk-for-Xiaomi-AX9000.patch +++ b/package/kernel/qca-ssdk/patches/0005-qca807x-add-a-LED-quirk-for-Xiaomi-AX9000.patch @@ -1,7 +1,7 @@ -From 20a7945b82a4aefcb9ca0a14978412e4ae0057c9 Mon Sep 17 00:00:00 2001 +From 37255b97a9170f6dd1604931f0d7a8f847be5b5d Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Tue, 11 Jan 2022 00:28:42 +0100 -Subject: [PATCH 07/11] qca807x: add a LED quirk for Xiaomi AX9000 +Subject: [PATCH 05/14] qca807x: add a LED quirk for Xiaomi AX9000 Xiaomi AX9000 has a single LED for each of 4 gigabit ethernet ports that are connected to QCA8075, and that LED is connected to the 100M LED pin. diff --git a/package/kernel/qca-ssdk/patches/0008-qca807x-add-a-LED-quirk-for-Xiaomi-AX3600.patch b/package/kernel/qca-ssdk/patches/0006-qca807x-add-a-LED-quirk-for-Xiaomi-AX3600.patch similarity index 89% rename from package/kernel/qca-ssdk/patches/0008-qca807x-add-a-LED-quirk-for-Xiaomi-AX3600.patch rename to package/kernel/qca-ssdk/patches/0006-qca807x-add-a-LED-quirk-for-Xiaomi-AX3600.patch index 27423af7ea..6e044c7466 100644 --- a/package/kernel/qca-ssdk/patches/0008-qca807x-add-a-LED-quirk-for-Xiaomi-AX3600.patch +++ b/package/kernel/qca-ssdk/patches/0006-qca807x-add-a-LED-quirk-for-Xiaomi-AX3600.patch @@ -1,7 +1,7 @@ -From bad774f43ec253e7e743e23bde87444c9d9cefdc Mon Sep 17 00:00:00 2001 +From 1eaed6c8d72cb07e221a94d05615ae45b60ffd82 Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Wed, 26 Jan 2022 14:47:33 +0100 -Subject: [PATCH 08/11] qca807x: add a LED quirk for Xiaomi AX3600 +Subject: [PATCH 06/14] qca807x: add a LED quirk for Xiaomi AX3600 AX3600 requires the same LED quirk so that PHY LED-s will blink even once Linux resets the PHY. diff --git a/package/kernel/qca-ssdk/patches/0009-include-fix-compilation-error-for-parse_uci_option.patch b/package/kernel/qca-ssdk/patches/0007-include-fix-compilation-error-for-parse_uci_option.patch similarity index 78% rename from package/kernel/qca-ssdk/patches/0009-include-fix-compilation-error-for-parse_uci_option.patch rename to package/kernel/qca-ssdk/patches/0007-include-fix-compilation-error-for-parse_uci_option.patch index 1cdb47b2c1..6b084a844d 100644 --- a/package/kernel/qca-ssdk/patches/0009-include-fix-compilation-error-for-parse_uci_option.patch +++ b/package/kernel/qca-ssdk/patches/0007-include-fix-compilation-error-for-parse_uci_option.patch @@ -1,7 +1,7 @@ -From be352dd54d163c005611906ac6b87692c9b8a1e6 Mon Sep 17 00:00:00 2001 +From adc75660a50c5b7a16032921a30a0eaedc8b826f Mon Sep 17 00:00:00 2001 From: Ansuel Smith Date: Sat, 7 May 2022 19:03:55 +0200 -Subject: [PATCH 09/11] include: fix compilation error for parse_uci_option +Subject: [PATCH 07/14] include: fix compilation error for parse_uci_option Fix missing include for parse_uci_option diff --git a/package/kernel/qca-ssdk/patches/0010-QSDK-config-Avoid-Werror-heroics.patch b/package/kernel/qca-ssdk/patches/0008-QSDK-config-Avoid-Werror-heroics.patch similarity index 95% rename from package/kernel/qca-ssdk/patches/0010-QSDK-config-Avoid-Werror-heroics.patch rename to package/kernel/qca-ssdk/patches/0008-QSDK-config-Avoid-Werror-heroics.patch index f9c913fadf..30b4e4be4f 100644 --- a/package/kernel/qca-ssdk/patches/0010-QSDK-config-Avoid-Werror-heroics.patch +++ b/package/kernel/qca-ssdk/patches/0008-QSDK-config-Avoid-Werror-heroics.patch @@ -1,7 +1,7 @@ From d70d013ac1090565ebb71875f5bdc70840807428 Mon Sep 17 00:00:00 2001 From: Alexandru Gagniuc Date: Fri, 23 Sep 2022 08:21:13 -0500 -Subject: [PATCH] QSDK: config: Avoid -Werror heroics +Subject: [PATCH 08/14] QSDK: config: Avoid -Werror heroics Trying to compile the QSDK with warnings as errors is a very brave endeavor. It's also stupid as it doesn't work on ipq60xx: diff --git a/package/kernel/qca-ssdk/patches/0011-Revert-qca-ssdk-remove-bridge-fdb-entry-for-the-auth.patch b/package/kernel/qca-ssdk/patches/0009-Revert-qca-ssdk-remove-bridge-fdb-entry-for-the-auth.patch similarity index 91% rename from package/kernel/qca-ssdk/patches/0011-Revert-qca-ssdk-remove-bridge-fdb-entry-for-the-auth.patch rename to package/kernel/qca-ssdk/patches/0009-Revert-qca-ssdk-remove-bridge-fdb-entry-for-the-auth.patch index 14db66876a..92c46a815e 100644 --- a/package/kernel/qca-ssdk/patches/0011-Revert-qca-ssdk-remove-bridge-fdb-entry-for-the-auth.patch +++ b/package/kernel/qca-ssdk/patches/0009-Revert-qca-ssdk-remove-bridge-fdb-entry-for-the-auth.patch @@ -1,7 +1,7 @@ -From c06e6edfb740d0ba0b804fa16d6222e257349089 Mon Sep 17 00:00:00 2001 +From 0582c76ce9c35ce8d49cba598e0e17073dd875b5 Mon Sep 17 00:00:00 2001 From: Alexandru Gagniuc Date: Fri, 23 Sep 2022 08:30:03 -0500 -Subject: [PATCH 11/11] Revert "qca-ssdk: remove bridge fdb entry for the +Subject: [PATCH 09/14] Revert "qca-ssdk: remove bridge fdb entry for the authentication failed mac" This change causes an undefined reference to "br_fdb_delete_by_netdev". diff --git a/package/kernel/qca-ssdk/patches/0012-qca-ssdk-Support-Linux-Style-Makefile-for-SSDK.patch b/package/kernel/qca-ssdk/patches/0010-Support-Linux-Style-Makefile-for-SSDK.patch similarity index 96% rename from package/kernel/qca-ssdk/patches/0012-qca-ssdk-Support-Linux-Style-Makefile-for-SSDK.patch rename to package/kernel/qca-ssdk/patches/0010-Support-Linux-Style-Makefile-for-SSDK.patch index 91b7d570d8..180701bb14 100644 --- a/package/kernel/qca-ssdk/patches/0012-qca-ssdk-Support-Linux-Style-Makefile-for-SSDK.patch +++ b/package/kernel/qca-ssdk/patches/0010-Support-Linux-Style-Makefile-for-SSDK.patch @@ -1,7 +1,7 @@ -From edd3d4347cc73a99c7cf59aceeb1e8ad4d4dd303 Mon Sep 17 00:00:00 2001 +From 2276a0b93751f015ef719dedf9a0d4b55ae684d5 Mon Sep 17 00:00:00 2001 From: crao Date: Tue, 15 Nov 2022 18:50:01 +0800 -Subject: [PATCH] [qca-ssdk]: Support Linux-Style Makefile for SSDK +Subject: [PATCH 10/14] Support Linux-Style Makefile for SSDK Change-Id: I8c4399433b6422ef6192f70bf08b0d3023cc94b6 Signed-off-by: crao @@ -13,12 +13,7 @@ Signed-off-by: crao make/target.mk | 12 +++++++++++ src/api/Makefile | 2 +- 6 files changed, 77 insertions(+), 23 deletions(-) - mode change 100755 => 100644 Makefile create mode 100644 Makefile.modules - mode change 100755 => 100644 make/defs.mk - mode change 100755 => 100644 make/linux_opt.mk - mode change 100755 => 100644 make/target.mk - mode change 100755 => 100644 src/api/Makefile --- a/Makefile +++ b/Makefile diff --git a/package/kernel/qca-ssdk/patches/0013-qca-ssdk-fix-compilation-issue-in-Linux-Style-Makefi.patch b/package/kernel/qca-ssdk/patches/0011-fix-compilation-issue-in-Linux-Style-Makefile.patch similarity index 82% rename from package/kernel/qca-ssdk/patches/0013-qca-ssdk-fix-compilation-issue-in-Linux-Style-Makefi.patch rename to package/kernel/qca-ssdk/patches/0011-fix-compilation-issue-in-Linux-Style-Makefile.patch index 792cd9e31b..f7d07a7baf 100644 --- a/package/kernel/qca-ssdk/patches/0013-qca-ssdk-fix-compilation-issue-in-Linux-Style-Makefi.patch +++ b/package/kernel/qca-ssdk/patches/0011-fix-compilation-issue-in-Linux-Style-Makefile.patch @@ -1,14 +1,13 @@ -From 3026f89b06049df01d5fe19c5fccc972637aa344 Mon Sep 17 00:00:00 2001 +From 46a5dd73195081b5d78582f2a13f83e49f36e917 Mon Sep 17 00:00:00 2001 From: crao Date: Tue, 7 Mar 2023 17:15:07 +0800 -Subject: [PATCH] [qca-ssdk]: fix compilation issue in Linux-Style Makefile +Subject: [PATCH 11/14] fix compilation issue in Linux-Style Makefile Change-Id: If38251fc0a2bf4abc666d30f4812c0d9507310dc Signed-off-by: crao --- Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) - mode change 100644 => 100755 Makefile --- a/Makefile +++ b/Makefile diff --git a/package/kernel/qca-ssdk/patches/0014-qca-ssdk-fix-compilation-issue-in-Miami-yocto.patch b/package/kernel/qca-ssdk/patches/0012-fix-compilation-issue-in-Miami-yocto.patch similarity index 84% rename from package/kernel/qca-ssdk/patches/0014-qca-ssdk-fix-compilation-issue-in-Miami-yocto.patch rename to package/kernel/qca-ssdk/patches/0012-fix-compilation-issue-in-Miami-yocto.patch index 53c0c34131..7670d7f354 100644 --- a/package/kernel/qca-ssdk/patches/0014-qca-ssdk-fix-compilation-issue-in-Miami-yocto.patch +++ b/package/kernel/qca-ssdk/patches/0012-fix-compilation-issue-in-Miami-yocto.patch @@ -1,7 +1,7 @@ -From 6e4efd68e6e560a1994bc273fe6f7a72139f3957 Mon Sep 17 00:00:00 2001 +From 0060aa1b0d2530672e64708d8062b3f33d007ed3 Mon Sep 17 00:00:00 2001 From: crao Date: Wed, 15 Mar 2023 11:19:39 +0800 -Subject: [PATCH] [qca-ssdk]: fix compilation issue in Miami yocto +Subject: [PATCH 12/14] fix compilation issue in Miami yocto Change-Id: I8526b9e43667d72ae9afa4ef8a13167088d194ba Signed-off-by: crao diff --git a/package/kernel/qca-ssdk/patches/0015-SSDK-config-add-kernel-6.1.patch b/package/kernel/qca-ssdk/patches/0013-SSDK-config-add-kernel-6.1.patch similarity index 96% rename from package/kernel/qca-ssdk/patches/0015-SSDK-config-add-kernel-6.1.patch rename to package/kernel/qca-ssdk/patches/0013-SSDK-config-add-kernel-6.1.patch index d0cf143562..44b5e625ee 100644 --- a/package/kernel/qca-ssdk/patches/0015-SSDK-config-add-kernel-6.1.patch +++ b/package/kernel/qca-ssdk/patches/0013-SSDK-config-add-kernel-6.1.patch @@ -1,7 +1,7 @@ From 05aba6d6dfd49fe10b33cf221b7e81250a67033c Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Thu, 29 Sep 2022 09:59:20 +0200 -Subject: [PATCH] SSDK: config: add kernel 6.1 +Subject: [PATCH 13/14] SSDK: config: add kernel 6.1 Allow kernel 6.1 to be recognized and compiled under it. diff --git a/package/kernel/qca-ssdk/patches/0016-SSDK-qca808x-use-get_random_u32.patch b/package/kernel/qca-ssdk/patches/0014-SSDK-qca808x-use-get_random_u32.patch similarity index 88% rename from package/kernel/qca-ssdk/patches/0016-SSDK-qca808x-use-get_random_u32.patch rename to package/kernel/qca-ssdk/patches/0014-SSDK-qca808x-use-get_random_u32.patch index d8cd89b744..f5aa0e907c 100644 --- a/package/kernel/qca-ssdk/patches/0016-SSDK-qca808x-use-get_random_u32.patch +++ b/package/kernel/qca-ssdk/patches/0014-SSDK-qca808x-use-get_random_u32.patch @@ -1,7 +1,7 @@ -From 55ea8c9b278aafe3211f7250986b1f9d9a06cd21 Mon Sep 17 00:00:00 2001 +From 6a49dd6bb2e40ce49351adb6100599f176d80494 Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Fri, 21 Oct 2022 13:40:15 +0200 -Subject: [PATCH] SSDK: qca808x: use get_random_u32 +Subject: [PATCH 14/14] SSDK: qca808x: use get_random_u32 prandom has been removed from the kernel in 6.1-rc1, so use get_random_u32 instead as its the drop-in replacement. From c2bb9f055b252f167d58540bddb9e5e9586fa986 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20=C5=A0tetiar?= Date: Mon, 5 Jun 2023 12:06:41 +0200 Subject: [PATCH 09/21] ipq-wifi: update to version 2023-06-03 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Contains following updates: * ipq8074: update RegDB in new submitted BDF * Revert "ipq8074: update RegDB in new submitted BDF" * qcn9074: update RegDB in new submitted BDF * ipq8074: update RegDB in new submitted BDF * qca-wireless: ipq40xx: add BDFs for ZTE MF287+ * Add BDFs for prpl Foundation Haze board Signed-off-by: Petr Štetiar --- package/firmware/ipq-wifi/Makefile | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/package/firmware/ipq-wifi/Makefile b/package/firmware/ipq-wifi/Makefile index afdb49b2e9..0c6941050b 100644 --- a/package/firmware/ipq-wifi/Makefile +++ b/package/firmware/ipq-wifi/Makefile @@ -6,9 +6,9 @@ PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/firmware/qca-wireless.git -PKG_SOURCE_DATE:=2023-05-22 -PKG_SOURCE_VERSION:=0f73d32e641c4f17e64597da0e6c40ed3cbebe69 -PKG_MIRROR_HASH:=70bd8ecda004528ec74de078d00df792f92322c58c4ec4b0630d1da097a8bc89 +PKG_SOURCE_DATE:=2023-06-03 +PKG_SOURCE_VERSION:=cd9c30ca47b8e5388b770c523a7f6b8b969e2f92 +PKG_MIRROR_HASH:=45e623fcc512b514ade0f22e217275536aa8de4afba7dfdb11696482b8fa71a2 PKG_FLAGS:=nonshared @@ -34,6 +34,7 @@ ALLWIFIBOARDS:= \ edgecore_eap102 \ edimax_cax1800 \ netgear_wax218 \ + prpl_haze \ qnap_301w \ redmi_ax6 \ wallys_dr40x9 \ @@ -120,6 +121,7 @@ $(eval $(call generate-ipq-wifi-package,edgecore_eap102,Edgecore EAP102)) $(eval $(call generate-ipq-wifi-package,edimax_cax1800,Edimax CAX1800)) $(eval $(call generate-ipq-wifi-package,netgear_wax218,Netgear WAX218)) $(eval $(call generate-ipq-wifi-package,qnap_301w,QNAP 301w)) +$(eval $(call generate-ipq-wifi-package,prpl_haze,prpl Haze)) $(eval $(call generate-ipq-wifi-package,redmi_ax6,Redmi AX6)) $(eval $(call generate-ipq-wifi-package,wallys_dr40x9,Wallys DR40X9)) $(eval $(call generate-ipq-wifi-package,xiaomi_ax3600,Xiaomi AX3600)) From 2e910039dd7170fd28641e7686c376dba6f0d8a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20=C5=A0tetiar?= Date: Mon, 5 Jun 2023 12:13:04 +0200 Subject: [PATCH 10/21] ipq807x: add initial support for prpl Foundation Haze board MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Haze is prpl Foundation's reference board (WNC LVRP). Board info: - IPQ8072A SoC - 2 GiB RAM - 4 GiB eMMC - 8MiB SPI NOR (MX25U6435F) - 3x 1GigE ports (QCA8075) - 1x 10GigE port (AQR113C) - 1x SFP cage - WiFi 6GHz 160MHz (QCN9074) - WiFi 5GHz 80+80MHz (QCN5054) - WiFi 2.4G (QCN5024) - ARM Standard 20-pin 2.54mm/0.1" JTAG (1V8 !!!) - Bluetooth v5.0 + EDR with integrated Class 1 PA (CYW20704) - 1x M.2 B-key socket with PCIe 3.0 - 1x USB 3.0 port - UART marked J6 is 4-pin 2.54mm/0.1" connector 3V3(arrow),RX,TX,GND (115200 8N1) - Reset and WPS buttons Flashing instructions: 1. From U-Boot boot OpenWrt using initramfs image: IPQ807x# tftpboot openwrt-ipq807x-generic-prpl_haze-initramfs-uImage.itb && bootm 2. In OpenWrt running from initramfs execute sysupgrade: root@OpenWrt:/# sysupgrade -n /tmp/openwrt-ipq807x-generic-prpl_haze-squashfs-sysupgrade.bin Work in progress/known issues: * SFP feature not implemented/tested * M.2 feature not implemented/tested * Bluetooth feature not implemented/tested * 6GHz wireless should be working, but not tested * MAC address assigments for LAN interfaces Signed-off-by: Petr Štetiar --- package/boot/uboot-envtools/files/ipq807x | 5 + .../ipq807x/base-files/etc/board.d/02_network | 3 + .../etc/hotplug.d/firmware/11-ath11k-caldata | 9 +- .../base-files/lib/upgrade/platform.sh | 1 + .../arch/arm64/boot/dts/qcom/ipq8072-haze.dts | 308 ++++++++++++++++++ target/linux/ipq807x/image/generic.mk | 11 + 6 files changed, 336 insertions(+), 1 deletion(-) create mode 100644 target/linux/ipq807x/files/arch/arm64/boot/dts/qcom/ipq8072-haze.dts diff --git a/package/boot/uboot-envtools/files/ipq807x b/package/boot/uboot-envtools/files/ipq807x index 0185c2c8e6..345cdadebe 100644 --- a/package/boot/uboot-envtools/files/ipq807x +++ b/package/boot/uboot-envtools/files/ipq807x @@ -36,6 +36,11 @@ xiaomi,ax9000) [ -n "$idx2" ] && \ ubootenv_add_uci_sys_config "/dev/mtd$idx2" "0x0" "0x10000" "0x20000" ;; +prpl,haze) + mmcpart="$(find_mmc_part 0:APPSBLENV)" + [ -n "$mmcpart" ] && \ + ubootenv_add_uci_config "$mmcpart" "0x0" "0x40000" "0x400" "0x100" + ;; qnap,301w) idx="$(find_mtd_index 0:appsblenv)" [ -n "$idx" ] && \ diff --git a/target/linux/ipq807x/base-files/etc/board.d/02_network b/target/linux/ipq807x/base-files/etc/board.d/02_network index edd1e131b6..8175a99f97 100644 --- a/target/linux/ipq807x/base-files/etc/board.d/02_network +++ b/target/linux/ipq807x/base-files/etc/board.d/02_network @@ -25,6 +25,9 @@ ipq807x_setup_interfaces() netgear,wax218) ucidef_set_interface_lan "lan" "dhcp" ;; + prpl,haze) + ucidef_set_interfaces_lan_wan "lan1 lan2 lan3" "wan" + ;; qnap,301w) ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4 10g-2" "10g-1" ;; diff --git a/target/linux/ipq807x/base-files/etc/hotplug.d/firmware/11-ath11k-caldata b/target/linux/ipq807x/base-files/etc/hotplug.d/firmware/11-ath11k-caldata index ddb0737d20..f9315573ec 100644 --- a/target/linux/ipq807x/base-files/etc/hotplug.d/firmware/11-ath11k-caldata +++ b/target/linux/ipq807x/base-files/etc/hotplug.d/firmware/11-ath11k-caldata @@ -22,10 +22,17 @@ case "$FIRMWARE" in zyxel,nbg7815) caldata_extract "0:art" 0x1000 0x20000 ;; + prpl,haze) + caldata_extract_mmc "0:ART" 0x1000 0x20000 + ;; esac ;; -"ath11k/QCN9074/hw1.0/cal-pci-0000:01:00.0.bin") +"ath11k/QCN9074/hw1.0/cal-pci-0000:01:00.0.bin"|\ +"ath11k/QCN9074/hw1.0/cal-pci-0001:01:00.0.bin") case "$board" in + prpl,haze) + caldata_extract_mmc "0:ART" 0x26800 0x20000 + ;; xiaomi,ax9000) caldata_extract "0:art" 0x26800 0x20000 ;; diff --git a/target/linux/ipq807x/base-files/lib/upgrade/platform.sh b/target/linux/ipq807x/base-files/lib/upgrade/platform.sh index f7c4772315..458eb16b79 100644 --- a/target/linux/ipq807x/base-files/lib/upgrade/platform.sh +++ b/target/linux/ipq807x/base-files/lib/upgrade/platform.sh @@ -71,6 +71,7 @@ platform_do_upgrade() { netgear,wax218) nand_do_upgrade "$1" ;; + prpl,haze|\ qnap,301w) kernelname="0:HLOS" rootfsname="rootfs" diff --git a/target/linux/ipq807x/files/arch/arm64/boot/dts/qcom/ipq8072-haze.dts b/target/linux/ipq807x/files/arch/arm64/boot/dts/qcom/ipq8072-haze.dts new file mode 100644 index 0000000000..8a5200b4eb --- /dev/null +++ b/target/linux/ipq807x/files/arch/arm64/boot/dts/qcom/ipq8072-haze.dts @@ -0,0 +1,308 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +/dts-v1/; + +#include "ipq8074.dtsi" +#include "ipq8074-hk-cpu.dtsi" +#include "ipq8074-ess.dtsi" +#include +#include +#include + +/ { + model = "prpl Foundation Haze"; + compatible = "prpl,haze", "qcom,ipq8074"; + + aliases { + serial0 = &blsp1_uart5; + /* Aliases are required by U-Boot to patch MAC addresses */ + ethernet0 = &dp6_syn; + ethernet1 = &dp4; + ethernet2 = &dp3; + ethernet3 = &dp2; + label-mac-device = &dp6_syn; + }; + + chosen { + stdout-path = "serial0:115200n8"; + }; + + keys { + compatible = "gpio-keys"; + pinctrl-0 = <&button_pins>; + pinctrl-names = "default"; + + wps-button { + label = "wps"; + gpios = <&tlmm 42 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + + reset-button { + label = "reset"; + gpios = <&tlmm 44 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + }; +}; + +&tlmm { + mdio_pins: mdio-state { + mdc-pins { + pins = "gpio68"; + function = "mdc"; + drive-strength = <8>; + bias-pull-up; + }; + + mdio-pins { + pins = "gpio69"; + function = "mdio"; + drive-strength = <8>; + bias-pull-up; + }; + }; + + button_pins: button-state { + wps-pins { + pins = "gpio42"; + function = "gpio"; + drive-strength = <8>; + bias-pull-up; + }; + + rst-pins { + pins = "gpio44"; + function = "gpio"; + drive-strength = <8>; + bias-pull-up; + }; + }; +}; + +&blsp1_uart5 { + status = "okay"; +}; + +&prng { + status = "okay"; +}; + +&ssphy_0 { + status = "okay"; +}; + +&qusb_phy_0 { + status = "okay"; +}; + +&ssphy_1 { + status = "okay"; +}; + +&qusb_phy_1 { + status = "okay"; +}; + +&usb_0 { + status = "okay"; +}; + +&usb_1 { + status = "okay"; +}; + +&cryptobam { + status = "okay"; +}; + +&crypto { + status = "okay"; +}; + +&qpic_bam { + status = "okay"; +}; + +&blsp1_spi1 { /* BLSP1 QUP1 */ + pinctrl-0 = <&spi_0_pins>; + pinctrl-names = "default"; + cs-gpios = <0>; + status = "okay"; + + flash@0 { + #address-cells = <1>; + #size-cells = <1>; + reg = <0>; + compatible = "jedec,spi-nor"; + spi-max-frequency = <50000000>; + + partitions { + compatible = "qcom,smem-part"; + }; + }; +}; + +&mdio { + status = "okay"; + + pinctrl-0 = <&mdio_pins>; + pinctrl-names = "default"; + reset-gpios = <&tlmm 22 GPIO_ACTIVE_LOW>; + + qca8075_1: ethernet-phy@0 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <0>; + }; + + qca8075_2: ethernet-phy@1 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <1>; + }; + + qca8075_3: ethernet-phy@2 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <2>; + }; + + qca8075_4: ethernet-phy@3 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <3>; + }; + + aqr113c: ethernet-phy@5 { + compatible ="ethernet-phy-ieee802.3-c45"; + reg = <8>; + reset-gpios = <&tlmm 43 GPIO_ACTIVE_LOW>; + }; +}; + +&sdhc_1 { + status = "okay"; + + vqmmc-supply = <&l11>; +}; + +&switch { + status = "okay"; + + switch_cpu_bmp = <0x1>; /* cpu port bitmap */ + switch_lan_bmp = <0x1e>; /* lan port bitmap */ + switch_wan_bmp = <0x60>; /* wan port bitmap */ + switch_mac_mode = <0x0>; /* mac mode for uniphy instance0*/ + switch_mac_mode1 = <0xe>; /* mac mode for uniphy instance1*/ + switch_mac_mode2 = <0xd>; /* mac mode for uniphy instance2*/ + bm_tick_mode = <0>; /* bm tick mode */ + tm_tick_mode = <0>; /* tm tick mode */ + + qcom,port_phyinfo { + port@0 { + port_id = <1>; + phy_address = <0>; + }; + port@1 { + port_id = <2>; + phy_address = <1>; + }; + port@2 { + port_id = <3>; + phy_address = <2>; + }; + port@3 { + port_id = <4>; + phy_address = <3>; + }; + port@4 { + port_id = <6>; + phy_address = <8>; + compatible = "ethernet-phy-ieee802.3-c45"; + ethernet-phy-ieee802.3-c45; + }; + }; +}; + +&edma { + status = "okay"; +}; + +/* Dummy LAN port */ +&dp1 { + status = "disabled"; + phy-handle = <&qca8075_1>; + label = "lan4"; +}; + +&dp2 { + status = "okay"; + phy-handle = <&qca8075_2>; + label = "lan3"; +}; + +&dp3 { + status = "okay"; + phy-handle = <&qca8075_3>; + label = "lan2"; +}; + +&dp4 { + status = "okay"; + phy-handle = <&qca8075_4>; + label = "lan1"; +}; + +&dp6_syn { + status = "okay"; + qcom,mactype = <1>; + phy-handle = <&aqr113c>; + label = "wan"; +}; + +&pcie_qmp0 { + status = "okay"; +}; + +&pcie0 { + status = "okay"; + + perst-gpio = <&tlmm 58 GPIO_ACTIVE_LOW>; + + bridge@0,0 { + reg = <0x00020000 0 0 0 0>; + #address-cells = <3>; + #size-cells = <2>; + ranges; + }; +}; + +&pcie_qmp1 { + status = "okay"; +}; + +&pcie1 { + status = "okay"; + + perst-gpio = <&tlmm 61 GPIO_ACTIVE_LOW>; + + bridge@1,0 { + reg = <0x00010000 0 0 0 0>; + #address-cells = <3>; + #size-cells = <2>; + ranges; + + wifi@1,0 { + status = "okay"; + + /* ath11k has no DT compatible for PCI cards */ + compatible = "pci17cb,1104"; + reg = <0x00010000 0 0 0 0>; + + qcom,ath11k-calibration-variant = "prpl-Haze"; + }; + }; +}; + +&wifi { + status = "okay"; + + qcom,ath11k-calibration-variant = "prpl-Haze"; +}; diff --git a/target/linux/ipq807x/image/generic.mk b/target/linux/ipq807x/image/generic.mk index 1ea42845f0..039fa3b1ad 100644 --- a/target/linux/ipq807x/image/generic.mk +++ b/target/linux/ipq807x/image/generic.mk @@ -108,6 +108,17 @@ define Device/netgear_wax218 endef TARGET_DEVICES += netgear_wax218 +define Device/prpl_haze + $(call Device/FitImage) + $(call Device/EmmcImage) + DEVICE_VENDOR := prpl Foundation + DEVICE_MODEL := Haze + DEVICE_DTS_CONFIG := config@hk09 + SOC := ipq8072 + DEVICE_PACKAGES += ath11k-firmware-qcn9074 ipq-wifi-prpl_haze kmod-ath11k-pci +endef +TARGET_DEVICES += prpl_haze + define Device/qnap_301w $(call Device/FitImage) $(call Device/EmmcImage) From 07fe8bc62a866e78e131c3f63a08554a94e931f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20=C5=A0tetiar?= Date: Mon, 5 Jun 2023 14:10:44 +0200 Subject: [PATCH 11/21] ipq807x: image: fix eMMC flashing/recovery from within initramfs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Having initramfs image built with same config as on buildbots: CONFIG_TARGET_MULTI_PROFILE=y CONFIG_TARGET_ALL_PROFILES=y CONFIG_TARGET_PER_DEVICE_ROOTFS=y Its currently impossible to flash/recover the device using that image as losetup is missing: root@OpenWrt:/# sysupgrade -v /tmp/openwrt-ipq807x-generic-prpl_haze-squashfs-sysupgrade.bin ... /lib/upgrade/do_stage2: line 38: losetup: not found Failed to detach all loop devices. Skip this try. So lets fix it by including the needed utils for sysupgrade in DEFAULT_PACKAGES set. Signed-off-by: Petr Štetiar --- target/linux/ipq807x/Makefile | 3 ++- target/linux/ipq807x/image/generic.mk | 1 - 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/target/linux/ipq807x/Makefile b/target/linux/ipq807x/Makefile index 2f076279b7..e434288395 100644 --- a/target/linux/ipq807x/Makefile +++ b/target/linux/ipq807x/Makefile @@ -16,6 +16,7 @@ DEFAULT_PACKAGES += \ kmod-leds-gpio kmod-gpio-button-hotplug \ kmod-phy-aquantia kmod-qca-nss-dp \ ath11k-firmware-ipq8074 kmod-ath11k-ahb \ - wpad-basic-mbedtls uboot-envtools + wpad-basic-mbedtls uboot-envtools \ + e2fsprogs kmod-fs-ext4 losetup $(eval $(call BuildTarget)) diff --git a/target/linux/ipq807x/image/generic.mk b/target/linux/ipq807x/image/generic.mk index 039fa3b1ad..6003f2a5c0 100644 --- a/target/linux/ipq807x/image/generic.mk +++ b/target/linux/ipq807x/image/generic.mk @@ -14,7 +14,6 @@ define Device/EmmcImage IMAGES += factory.bin sysupgrade.bin IMAGE/factory.bin := append-rootfs | pad-rootfs | pad-to 64k IMAGE/sysupgrade.bin/squashfs := append-rootfs | pad-to 64k | sysupgrade-tar rootfs=$$$$@ | append-metadata - DEVICE_PACKAGES := e2fsprogs kmod-fs-ext4 losetup endef define Device/UbiFit From ee92550245dad2ab33e24d32fd5cfc923989b32d Mon Sep 17 00:00:00 2001 From: Mathew McBride Date: Wed, 7 Jun 2023 04:48:51 +0000 Subject: [PATCH 12/21] armvirt: remove 5.15 configs armvirt was migrated to 6.1 as part of the EFI implementation. As we are renaming the target, there is no need to take the old kernel configs with us. See abcb30d ("armvirt: switch to kernel 6.1") for the previous change. Signed-off-by: Mathew McBride --- target/linux/armvirt/32/config-5.15 | 77 -------------- target/linux/armvirt/64/config-5.15 | 154 --------------------------- target/linux/armvirt/config-5.15 | 155 ---------------------------- 3 files changed, 386 deletions(-) delete mode 100644 target/linux/armvirt/32/config-5.15 delete mode 100644 target/linux/armvirt/64/config-5.15 delete mode 100644 target/linux/armvirt/config-5.15 diff --git a/target/linux/armvirt/32/config-5.15 b/target/linux/armvirt/32/config-5.15 deleted file mode 100644 index 91a0c61ddd..0000000000 --- a/target/linux/armvirt/32/config-5.15 +++ /dev/null @@ -1,77 +0,0 @@ -CONFIG_ALIGNMENT_TRAP=y -CONFIG_ARCH_32BIT_OFF_T=y -CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y -CONFIG_ARCH_MULTIPLATFORM=y -CONFIG_ARCH_MULTI_V6_V7=y -CONFIG_ARCH_MULTI_V7=y -CONFIG_ARCH_NR_GPIO=0 -CONFIG_ARCH_OPTIONAL_KERNEL_RWX=y -CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT=y -CONFIG_ARCH_SELECT_MEMORY_MODEL=y -CONFIG_ARCH_VIRT=y -CONFIG_ARM=y -CONFIG_ARM_CPU_SUSPEND=y -CONFIG_ARM_CRYPTO=y -CONFIG_ARM_HAS_SG_CHAIN=y -CONFIG_ARM_HEAVY_MB=y -CONFIG_ARM_L1_CACHE_SHIFT=6 -CONFIG_ARM_L1_CACHE_SHIFT_6=y -CONFIG_ARM_LPAE=y -CONFIG_ARM_PATCH_IDIV=y -CONFIG_ARM_PATCH_PHYS_VIRT=y -CONFIG_ARM_PSCI=y -CONFIG_ARM_THUMB=y -CONFIG_ARM_UNWIND=y -CONFIG_ARM_VIRT_EXT=y -CONFIG_AUTO_ZRELADDR=y -CONFIG_BINFMT_FLAT_ARGVP_ENVP_ON_STACK=y -CONFIG_CACHE_L2X0=y -CONFIG_COMPAT_32BIT_TIME=y -CONFIG_CPU_32v6K=y -CONFIG_CPU_32v7=y -CONFIG_CPU_ABRT_EV7=y -CONFIG_CPU_CACHE_V7=y -CONFIG_CPU_CACHE_VIPT=y -CONFIG_CPU_COPY_V6=y -CONFIG_CPU_CP15=y -CONFIG_CPU_CP15_MMU=y -CONFIG_CPU_HAS_ASID=y -CONFIG_CPU_PABRT_V7=y -CONFIG_CPU_SPECTRE=y -CONFIG_CPU_THUMB_CAPABLE=y -CONFIG_CPU_TLB_V7=y -CONFIG_CPU_V7=y -CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y -CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S" -CONFIG_DMA_OPS=y -CONFIG_EDAC_ATOMIC_SCRUB=y -CONFIG_GENERIC_IRQ_MULTI_HANDLER=y -CONFIG_GENERIC_VDSO_32=y -CONFIG_HARDEN_BRANCH_PREDICTOR=y -CONFIG_HAVE_SMP=y -CONFIG_HZ_FIXED=0 -CONFIG_HZ_PERIODIC=y -CONFIG_MIGHT_HAVE_CACHE_L2X0=y -CONFIG_MODULES_USE_ELF_REL=y -CONFIG_NEON=y -CONFIG_NR_CPUS=4 -CONFIG_OLD_SIGACTION=y -CONFIG_OLD_SIGSUSPEND3=y -CONFIG_OUTER_CACHE=y -CONFIG_OUTER_CACHE_SYNC=y -CONFIG_PAGE_OFFSET=0xC0000000 -CONFIG_PERF_USE_VMALLOC=y -CONFIG_RTC_MC146818_LIB=y -CONFIG_SERIAL_OF_PLATFORM=y -CONFIG_SMP_ON_UP=y -CONFIG_SWP_EMULATE=y -CONFIG_SYS_SUPPORTS_APM_EMULATION=y -CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h" -CONFIG_UNWINDER_ARM=y -CONFIG_USE_OF=y -CONFIG_VFP=y -CONFIG_VFPv3=y -CONFIG_XZ_DEC_ARM=y -CONFIG_XZ_DEC_BCJ=y -CONFIG_ZBOOT_ROM_BSS=0 -CONFIG_ZBOOT_ROM_TEXT=0 diff --git a/target/linux/armvirt/64/config-5.15 b/target/linux/armvirt/64/config-5.15 deleted file mode 100644 index eb5405eb1e..0000000000 --- a/target/linux/armvirt/64/config-5.15 +++ /dev/null @@ -1,154 +0,0 @@ -CONFIG_64BIT=y -CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y -CONFIG_ARCH_MMAP_RND_BITS=18 -CONFIG_ARCH_MMAP_RND_BITS_MAX=24 -CONFIG_ARCH_MMAP_RND_BITS_MIN=18 -CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=11 -CONFIG_ARCH_PROC_KCORE_TEXT=y -CONFIG_ARCH_STACKWALK=y -CONFIG_ARCH_VEXPRESS=y -CONFIG_ARCH_WANTS_NO_INSTR=y -CONFIG_ARM64=y -CONFIG_ARM64_4K_PAGES=y -CONFIG_ARM64_CNP=y -CONFIG_ARM64_CRYPTO=y -CONFIG_ARM64_EPAN=y -CONFIG_ARM64_ERRATUM_1165522=y -CONFIG_ARM64_ERRATUM_1286807=y -CONFIG_ARM64_ERRATUM_819472=y -CONFIG_ARM64_ERRATUM_824069=y -CONFIG_ARM64_ERRATUM_826319=y -CONFIG_ARM64_ERRATUM_827319=y -CONFIG_ARM64_ERRATUM_832075=y -CONFIG_ARM64_ERRATUM_843419=y -CONFIG_ARM64_HW_AFDBM=y -CONFIG_ARM64_LD_HAS_FIX_ERRATUM_843419=y -CONFIG_ARM64_PAGE_SHIFT=12 -CONFIG_ARM64_PAN=y -CONFIG_ARM64_PA_BITS=48 -CONFIG_ARM64_PA_BITS_48=y -CONFIG_ARM64_PTR_AUTH=y -CONFIG_ARM64_PTR_AUTH_KERNEL=y -CONFIG_ARM64_SVE=y -CONFIG_ARM64_TAGGED_ADDR_ABI=y -CONFIG_ARM64_VA_BITS=39 -CONFIG_ARM64_VA_BITS_39=y -CONFIG_ARM64_WORKAROUND_CLEAN_CACHE=y -CONFIG_ARM64_WORKAROUND_REPEAT_TLBI=y -CONFIG_ARM64_WORKAROUND_SPECULATIVE_AT=y -CONFIG_ARM_ARCH_TIMER_OOL_WORKAROUND=y -CONFIG_ARM_SBSA_WATCHDOG=y -CONFIG_ATOMIC64_SELFTEST=y -CONFIG_AUDIT_ARCH_COMPAT_GENERIC=y -CONFIG_BACKLIGHT_CLASS_DEVICE=y -CONFIG_BLK_PM=y -CONFIG_CAVIUM_TX2_ERRATUM_219=y -CONFIG_CC_HAVE_STACKPROTECTOR_SYSREG=y -CONFIG_CLK_SP810=y -CONFIG_CLK_VEXPRESS_OSC=y -# CONFIG_COMPAT_32BIT_TIME is not set -CONFIG_CPU_IDLE=y -CONFIG_CPU_IDLE_GOV_MENU=y -CONFIG_CPU_LITTLE_ENDIAN=y -CONFIG_CPU_PM=y -CONFIG_CRYPTO_AES_ARM64=y -CONFIG_CRYPTO_AES_ARM64_BS=y -CONFIG_CRYPTO_AES_ARM64_CE=y -CONFIG_CRYPTO_AES_ARM64_CE_BLK=y -CONFIG_CRYPTO_AES_ARM64_CE_CCM=y -CONFIG_CRYPTO_AES_ARM64_NEON_BLK=y -CONFIG_CRYPTO_ARCH_HAVE_LIB_CHACHA=y -CONFIG_CRYPTO_BLAKE2S=y -CONFIG_CRYPTO_CHACHA20=y -CONFIG_CRYPTO_CHACHA20_NEON=y -CONFIG_CRYPTO_CRYPTD=y -CONFIG_CRYPTO_GHASH_ARM64_CE=y -CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y -CONFIG_CRYPTO_LIB_CHACHA_GENERIC=y -CONFIG_CRYPTO_SHA1=y -CONFIG_CRYPTO_SHA1_ARM64_CE=y -CONFIG_CRYPTO_SHA256_ARM64=y -CONFIG_CRYPTO_SHA2_ARM64_CE=y -CONFIG_CRYPTO_SHA512_ARM64=y -CONFIG_CRYPTO_SIMD=y -CONFIG_DMA_DIRECT_REMAP=y -CONFIG_DMA_SHARED_BUFFER=y -CONFIG_DRM=y -CONFIG_DRM_BOCHS=y -CONFIG_DRM_BRIDGE=y -CONFIG_DRM_GEM_SHMEM_HELPER=y -CONFIG_DRM_KMS_HELPER=y -CONFIG_DRM_PANEL=y -CONFIG_DRM_PANEL_BRIDGE=y -CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y -CONFIG_DRM_QXL=y -CONFIG_DRM_TTM=y -CONFIG_DRM_TTM_HELPER=y -CONFIG_DRM_VIRTIO_GPU=y -CONFIG_DRM_VRAM_HELPER=y -CONFIG_FB=y -CONFIG_FB_ARMCLCD=y -CONFIG_FB_CFB_COPYAREA=y -CONFIG_FB_CFB_FILLRECT=y -CONFIG_FB_CFB_IMAGEBLIT=y -CONFIG_FB_CMDLINE=y -CONFIG_FB_MODE_HELPERS=y -CONFIG_FRAME_POINTER=y -CONFIG_FSL_ERRATUM_A008585=y -CONFIG_FUJITSU_ERRATUM_010001=y -CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y -CONFIG_GENERIC_CSUM=y -CONFIG_GENERIC_FIND_FIRST_BIT=y -CONFIG_GPIO_GENERIC=y -CONFIG_GPIO_GENERIC_PLATFORM=y -CONFIG_HDMI=y -CONFIG_HW_RANDOM=y -CONFIG_HW_RANDOM_ARM_SMCCC_TRNG=y -CONFIG_HW_RANDOM_VIRTIO=y -CONFIG_I2C=y -CONFIG_I2C_ALGOBIT=y -CONFIG_I2C_BOARDINFO=y -CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000 -CONFIG_KCMP=y -CONFIG_LCD_CLASS_DEVICE=m -# CONFIG_LCD_PLATFORM is not set -CONFIG_MFD_CORE=y -CONFIG_MFD_SYSCON=y -CONFIG_MFD_VEXPRESS_SYSREG=y -CONFIG_MMC=y -CONFIG_MMC_ARMMMCI=y -CONFIG_MODULES_USE_ELF_RELA=y -CONFIG_NEED_SG_DMA_LENGTH=y -CONFIG_NO_HZ=y -CONFIG_NO_HZ_COMMON=y -CONFIG_NO_HZ_IDLE=y -CONFIG_NR_CPUS=64 -CONFIG_NVIDIA_CARMEL_CNP_ERRATUM=y -CONFIG_PM=y -CONFIG_PM_CLK=y -CONFIG_PM_GENERIC_DOMAINS=y -CONFIG_PM_GENERIC_DOMAINS_OF=y -CONFIG_POWER_RESET=y -CONFIG_POWER_RESET_VEXPRESS=y -CONFIG_POWER_SUPPLY=y -CONFIG_QUEUED_RWLOCKS=y -CONFIG_QUEUED_SPINLOCKS=y -CONFIG_REGMAP=y -CONFIG_REGMAP_MMIO=y -CONFIG_RODATA_FULL_DEFAULT_ENABLED=y -CONFIG_RTC_I2C_AND_SPI=y -CONFIG_SMC91X=y -CONFIG_SPARSEMEM=y -CONFIG_SPARSEMEM_EXTREME=y -CONFIG_SPARSEMEM_VMEMMAP=y -CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y -CONFIG_SYNC_FILE=y -CONFIG_SYSCTL_EXCEPTION_TRACE=y -CONFIG_THREAD_INFO_IN_TASK=y -CONFIG_UNMAP_KERNEL_AT_EL0=y -CONFIG_VEXPRESS_CONFIG=y -CONFIG_VIDEOMODE_HELPERS=y -CONFIG_VIRTIO_DMA_SHARED_BUFFER=y -CONFIG_VMAP_STACK=y -CONFIG_WATCHDOG_CORE=y -CONFIG_ZONE_DMA32=y diff --git a/target/linux/armvirt/config-5.15 b/target/linux/armvirt/config-5.15 deleted file mode 100644 index 36f7d9f01e..0000000000 --- a/target/linux/armvirt/config-5.15 +++ /dev/null @@ -1,155 +0,0 @@ -CONFIG_9P_FS=y -# CONFIG_9P_FS_POSIX_ACL is not set -# CONFIG_9P_FS_SECURITY is not set -CONFIG_ARCH_DMA_ADDR_T_64BIT=y -CONFIG_ARCH_HIBERNATION_POSSIBLE=y -CONFIG_ARCH_KEEP_MEMBLOCK=y -CONFIG_ARCH_SPARSEMEM_ENABLE=y -CONFIG_ARCH_SUSPEND_POSSIBLE=y -CONFIG_ARM_AMBA=y -CONFIG_ARM_ARCH_TIMER=y -CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y -CONFIG_ARM_GIC=y -CONFIG_ARM_GIC_V2M=y -CONFIG_ARM_GIC_V3=y -CONFIG_ARM_GIC_V3_ITS=y -CONFIG_ARM_GIC_V3_ITS_PCI=y -CONFIG_ARM_PSCI_FW=y -CONFIG_BALLOON_COMPACTION=y -CONFIG_BLK_DEV_LOOP=y -CONFIG_BLK_MQ_PCI=y -CONFIG_BLK_MQ_VIRTIO=y -CONFIG_CLONE_BACKWARDS=y -CONFIG_COMMON_CLK=y -CONFIG_CPU_RMAP=y -CONFIG_CRC16=y -CONFIG_CRYPTO_CRC32=y -CONFIG_CRYPTO_CRC32C=y -CONFIG_CRYPTO_RNG2=y -CONFIG_DCACHE_WORD_ACCESS=y -CONFIG_DEBUG_BUGVERBOSE=y -CONFIG_DMADEVICES=y -CONFIG_DMA_ENGINE=y -CONFIG_DMA_OF=y -CONFIG_DMA_REMAP=y -CONFIG_DTC=y -CONFIG_EDAC_SUPPORT=y -CONFIG_EXT4_FS=y -CONFIG_F2FS_FS=y -CONFIG_FAILOVER=y -CONFIG_FIX_EARLYCON_MEM=y -CONFIG_FS_IOMAP=y -CONFIG_FS_MBCACHE=y -CONFIG_FW_LOADER_PAGED_BUF=y -CONFIG_GENERIC_ALLOCATOR=y -CONFIG_GENERIC_ARCH_TOPOLOGY=y -CONFIG_GENERIC_BUG=y -CONFIG_GENERIC_CLOCKEVENTS=y -CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y -CONFIG_GENERIC_CPU_AUTOPROBE=y -CONFIG_GENERIC_CPU_VULNERABILITIES=y -CONFIG_GENERIC_EARLY_IOREMAP=y -CONFIG_GENERIC_GETTIMEOFDAY=y -CONFIG_GENERIC_IDLE_POLL_SETUP=y -CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y -CONFIG_GENERIC_IRQ_MIGRATION=y -CONFIG_GENERIC_IRQ_SHOW=y -CONFIG_GENERIC_IRQ_SHOW_LEVEL=y -CONFIG_GENERIC_LIB_DEVMEM_IS_ALLOWED=y -CONFIG_GENERIC_MSI_IRQ=y -CONFIG_GENERIC_MSI_IRQ_DOMAIN=y -CONFIG_GENERIC_PCI_IOMAP=y -CONFIG_GENERIC_SCHED_CLOCK=y -CONFIG_GENERIC_SMP_IDLE_THREAD=y -CONFIG_GENERIC_STRNCPY_FROM_USER=y -CONFIG_GENERIC_STRNLEN_USER=y -CONFIG_GENERIC_TIME_VSYSCALL=y -CONFIG_GPIOLIB_IRQCHIP=y -CONFIG_GPIO_CDEV=y -CONFIG_GPIO_PL061=y -CONFIG_HANDLE_DOMAIN_IRQ=y -CONFIG_HARDIRQS_SW_RESEND=y -CONFIG_HAS_DMA=y -CONFIG_HAS_IOMEM=y -CONFIG_HAS_IOPORT_MAP=y -CONFIG_HOTPLUG_CPU=y -CONFIG_HVC_DRIVER=y -CONFIG_INITRAMFS_SOURCE="" -CONFIG_IRQCHIP=y -CONFIG_IRQ_DOMAIN=y -CONFIG_IRQ_DOMAIN_HIERARCHY=y -CONFIG_IRQ_FORCED_THREADING=y -CONFIG_IRQ_WORK=y -CONFIG_JBD2=y -CONFIG_LIBFDT=y -CONFIG_LOCK_DEBUGGING_SUPPORT=y -CONFIG_LOCK_SPIN_ON_OWNER=y -CONFIG_MEMFD_CREATE=y -CONFIG_MEMORY_BALLOON=y -CONFIG_MIGRATION=y -CONFIG_MUTEX_SPIN_ON_OWNER=y -CONFIG_NEED_DMA_MAP_STATE=y -CONFIG_NET_9P=y -# CONFIG_NET_9P_DEBUG is not set -CONFIG_NET_9P_VIRTIO=y -CONFIG_NET_FAILOVER=y -CONFIG_NET_FLOW_LIMIT=y -CONFIG_NLS=y -CONFIG_NVMEM=y -CONFIG_OF=y -CONFIG_OF_ADDRESS=y -CONFIG_OF_EARLY_FLATTREE=y -CONFIG_OF_FLATTREE=y -CONFIG_OF_GPIO=y -CONFIG_OF_IRQ=y -CONFIG_OF_KOBJ=y -CONFIG_PADATA=y -CONFIG_PAGE_REPORTING=y -CONFIG_PARTITION_PERCPU=y -CONFIG_PCI=y -CONFIG_PCI_DOMAINS=y -CONFIG_PCI_DOMAINS_GENERIC=y -CONFIG_PCI_ECAM=y -CONFIG_PCI_HOST_COMMON=y -CONFIG_PCI_HOST_GENERIC=y -CONFIG_PCI_MSI=y -CONFIG_PCI_MSI_IRQ_DOMAIN=y -CONFIG_PGTABLE_LEVELS=3 -CONFIG_PHYS_ADDR_T_64BIT=y -CONFIG_PTP_1588_CLOCK_OPTIONAL=y -CONFIG_RATIONAL=y -CONFIG_RFS_ACCEL=y -CONFIG_RPS=y -CONFIG_RTC_CLASS=y -CONFIG_RTC_DRV_PL031=y -CONFIG_RWSEM_SPIN_ON_OWNER=y -CONFIG_SCSI=y -CONFIG_SCSI_COMMON=y -CONFIG_SCSI_VIRTIO=y -CONFIG_SERIAL_8250_FSL=y -CONFIG_SERIAL_AMBA_PL011=y -CONFIG_SERIAL_AMBA_PL011_CONSOLE=y -CONFIG_SERIAL_MCTRL_GPIO=y -CONFIG_SG_POOL=y -CONFIG_SMP=y -CONFIG_SOCK_RX_QUEUE_MAPPING=y -CONFIG_SPARSE_IRQ=y -CONFIG_SRCU=y -CONFIG_SWIOTLB=y -CONFIG_TICK_CPU_ACCOUNTING=y -CONFIG_TIMER_OF=y -CONFIG_TIMER_PROBE=y -CONFIG_TREE_RCU=y -CONFIG_TREE_SRCU=y -CONFIG_USB_SUPPORT=y -CONFIG_VIRTIO=y -CONFIG_VIRTIO_BALLOON=y -CONFIG_VIRTIO_BLK=y -CONFIG_VIRTIO_CONSOLE=y -CONFIG_VIRTIO_MMIO=y -CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y -CONFIG_VIRTIO_NET=y -CONFIG_VIRTIO_PCI=y -CONFIG_VIRTIO_PCI_LEGACY=y -CONFIG_VIRTIO_PCI_LIB=y -CONFIG_XPS=y From 40b02a230167626def69389452f19b7109aaeac1 Mon Sep 17 00:00:00 2001 From: Mathew McBride Date: Tue, 6 Jun 2023 23:19:16 +0000 Subject: [PATCH 13/21] armsr: rename from armvirt Now that the armvirt target supports real hardware, not just VMs, thanks to the addition of EFI, rename it to something more appropriate. 'armsr' (Arm SystemReady) was chosen after the name of the Arm standards program. The 32 and 64 bit targets have also been renamed armv7 and armv8 respectively, to allow future profiles where required (such as armv9). See https://developer.arm.com/documentation/102858/0100/Introduction for more information. Signed-off-by: Mathew McBride --- target/linux/{armvirt => armsr}/Makefile | 4 +-- target/linux/{armvirt => armsr}/README | 30 +++++++++++-------- .../{armvirt/32 => armsr/armv7}/config-6.1 | 0 .../{armvirt/32 => armsr/armv7}/target.mk | 4 +-- .../{armvirt/64 => armsr/armv8}/config-6.1 | 0 .../{armvirt/64 => armsr/armv8}/target.mk | 4 +-- .../base-files/etc/board.d/01_led | 0 .../base-files/etc/board.d/02_network | 0 .../base-files/etc/board.d/03_gpio_switches | 0 .../{armvirt => armsr}/base-files/etc/inittab | 0 .../base-files/lib/preinit/01_sysinfo_acpi | 0 .../base-files/lib/upgrade/platform.sh | 0 target/linux/{armvirt => armsr}/config-6.1 | 0 .../linux/{armvirt => armsr}/image/Makefile | 0 .../{armvirt => armsr}/image/grub-efi.cfg | 0 target/linux/{armvirt => armsr}/modules.mk | 30 +++++++++---------- ...221-armsr-disable_gc_sections_armv7.patch} | 0 ...a2-eth-don-t-use-ENOTSUPP-error-code.patch | 0 ...e-dpaa2_mac_is_type_fixed-with-dpaa2.patch | 0 ...sorb-phylink_start-call-into-dpaa2_m.patch | 0 ...move-defensive-check-in-dpaa2_mac_di.patch | 0 ...sign-priv-mac-after-dpaa2_mac_connec.patch | 0 ...-assign-port_priv-mac-after-dpaa2_ma.patch | 0 ...h-MAC-stringset-to-ethtool-S-even-if.patch | 0 ...-replace-direct-MAC-access-with-dpaa.patch | 0 ...nnect-to-MAC-before-requesting-the-e.patch | 0 ...rialize-changes-to-priv-mac-with-a-m.patch | 0 ...h-serialize-changes-to-priv-mac-with.patch | 0 ...c-move-rtnl_lock-only-around-phylink.patch | 0 29 files changed, 38 insertions(+), 34 deletions(-) rename target/linux/{armvirt => armsr}/Makefile (88%) rename target/linux/{armvirt => armsr}/README (63%) rename target/linux/{armvirt/32 => armsr/armv7}/config-6.1 (100%) rename target/linux/{armvirt/32 => armsr/armv7}/target.mk (70%) rename target/linux/{armvirt/64 => armsr/armv8}/config-6.1 (100%) rename target/linux/{armvirt/64 => armsr/armv8}/target.mk (69%) rename target/linux/{armvirt => armsr}/base-files/etc/board.d/01_led (100%) rename target/linux/{armvirt => armsr}/base-files/etc/board.d/02_network (100%) rename target/linux/{armvirt => armsr}/base-files/etc/board.d/03_gpio_switches (100%) rename target/linux/{armvirt => armsr}/base-files/etc/inittab (100%) rename target/linux/{armvirt => armsr}/base-files/lib/preinit/01_sysinfo_acpi (100%) rename target/linux/{armvirt => armsr}/base-files/lib/upgrade/platform.sh (100%) rename target/linux/{armvirt => armsr}/config-6.1 (100%) rename target/linux/{armvirt => armsr}/image/Makefile (100%) rename target/linux/{armvirt => armsr}/image/grub-efi.cfg (100%) rename target/linux/{armvirt => armsr}/modules.mk (89%) rename target/linux/{armvirt/patches-6.1/221-armvirt-disable-gc_sections.patch => armsr/patches-6.1/221-armsr-disable_gc_sections_armv7.patch} (100%) rename target/linux/{armvirt => armsr}/patches-6.1/701-v6.2-0001-net-dpaa2-eth-don-t-use-ENOTSUPP-error-code.patch (100%) rename target/linux/{armvirt => armsr}/patches-6.1/701-v6.2-0002-net-dpaa2-replace-dpaa2_mac_is_type_fixed-with-dpaa2.patch (100%) rename target/linux/{armvirt => armsr}/patches-6.1/701-v6.2-0003-net-dpaa2-mac-absorb-phylink_start-call-into-dpaa2_m.patch (100%) rename target/linux/{armvirt => armsr}/patches-6.1/701-v6.2-0004-net-dpaa2-mac-remove-defensive-check-in-dpaa2_mac_di.patch (100%) rename target/linux/{armvirt => armsr}/patches-6.1/701-v6.2-0005-net-dpaa2-eth-assign-priv-mac-after-dpaa2_mac_connec.patch (100%) rename target/linux/{armvirt => armsr}/patches-6.1/701-v6.2-0006-net-dpaa2-switch-assign-port_priv-mac-after-dpaa2_ma.patch (100%) rename target/linux/{armvirt => armsr}/patches-6.1/701-v6.2-0007-net-dpaa2-publish-MAC-stringset-to-ethtool-S-even-if.patch (100%) rename target/linux/{armvirt => armsr}/patches-6.1/701-v6.2-0008-net-dpaa2-switch-replace-direct-MAC-access-with-dpaa.patch (100%) rename target/linux/{armvirt => armsr}/patches-6.1/701-v6.2-0009-net-dpaa2-eth-connect-to-MAC-before-requesting-the-e.patch (100%) rename target/linux/{armvirt => armsr}/patches-6.1/701-v6.2-0010-net-dpaa2-eth-serialize-changes-to-priv-mac-with-a-m.patch (100%) rename target/linux/{armvirt => armsr}/patches-6.1/701-v6.2-0011-net-dpaa2-switch-serialize-changes-to-priv-mac-with.patch (100%) rename target/linux/{armvirt => armsr}/patches-6.1/701-v6.2-0012-net-dpaa2-mac-move-rtnl_lock-only-around-phylink.patch (100%) diff --git a/target/linux/armvirt/Makefile b/target/linux/armsr/Makefile similarity index 88% rename from target/linux/armvirt/Makefile rename to target/linux/armsr/Makefile index 0ae51597bc..b34500ed8a 100644 --- a/target/linux/armvirt/Makefile +++ b/target/linux/armsr/Makefile @@ -4,8 +4,8 @@ include $(TOPDIR)/rules.mk -BOARD:=armvirt -BOARDNAME:=QEMU ARM Virtual Machine +BOARD:=armsr +BOARDNAME:=Arm SystemReady (EFI) compliant FEATURES:=fpu pci pcie rtc usb boot-part rootfs-part FEATURES+=cpiogz ext4 ramdisk squashfs targz vmdk diff --git a/target/linux/armvirt/README b/target/linux/armsr/README similarity index 63% rename from target/linux/armvirt/README rename to target/linux/armsr/README index b4409f8f11..bce839ddfc 100644 --- a/target/linux/armvirt/README +++ b/target/linux/armsr/README @@ -1,37 +1,41 @@ This target generates images that can be used on ARM machines with EFI support (e.g EDKII/TianoCore or U-Boot with bootefi). +There are two subtargets: +- armv7 for 32-bit machines +- armv8 for 64-bit machines + The kernel and filesystem images can also be used directly by QEMU: Run with qemu-system-arm # boot with initramfs embedded in - qemu-system-arm -nographic -M virt -m 64 -kernel openwrt-armvirt-32-generic-initramfs-kernel.bin + qemu-system-arm -nographic -M virt -m 64 -kernel openwrt-armsr-armv7-generic-initramfs-kernel.bin # boot with accel=kvm qemu-system-arm -nographic -M virt,accel=kvm -cpu host -m 64 -kernel - openwrt-armvirt-32-generic-initramfs-kernel.bin + openwrt-armsr-armv7-generic-initramfs-kernel.bin # boot with a separate rootfs - qemu-system-arm -nographic -M virt -m 64 -kernel openwrt-armvirt-32-generic-kernel.bin \ - -drive file=openwrt-armvirt-32-generic-ext4-rootfs.img,format=raw,if=virtio -append 'root=/dev/vda rootwait' + qemu-system-arm -nographic -M virt -m 64 -kernel openwrt-armsr-armv7-generic-kernel.bin \ + -drive file=openwrt-armsr-armv7-generic-ext4-rootfs.img,format=raw,if=virtio -append 'root=/dev/vda rootwait' # boot with local dir as rootfs - qemu-system-arm -nographic -M virt -m 64 -kernel openwrt-armvirt-32-generic-kernel.bin \ - -fsdev local,id=rootdev,path=root-armvirt/,security_model=none \ + qemu-system-arm -nographic -M virt -m 64 -kernel openwrt-armsr-armv7-generic-kernel.bin \ + -fsdev local,id=rootdev,path=root-armsr/,security_model=none \ -device virtio-9p-pci,fsdev=rootdev,mount_tag=/dev/root \ -append 'rootflags=trans=virtio,version=9p2000.L,cache=loose rootfstype=9p' Run with kvmtool # start a named machine - lkvm run -k openwrt-armvirt-32-zImage -i openwrt-armvirt-32-rootfs.cpio --name armvirt0 + lkvm run -k openwrt-armsr-armv7-zImage -i openwrt-armsr-armv7-rootfs.cpio --name armsr0 # start with virtio-9p rootfs - lkvm run -k openwrt-armvirt-32-zImage -d root-armvirt/ + lkvm run -k openwrt-armsr-armv7-zImage -d root-armsr/ - # stop "armvirt0" - lkvm stop --name armvirt0 + # stop "armsr0" + lkvm stop --name armsr0 # stop all lkvm stop --all @@ -39,13 +43,13 @@ Run with kvmtool The multi-platform ARMv8 target can be used with QEMU: qemu-system-aarch64 -machine virt -cpu cortex-a57 -nographic \ - -kernel openwrt-armvirt-64-generic-initramfs-kernel.bin \ + -kernel openwrt-armsr-armv8-generic-initramfs-kernel.bin \ With a EDKII or U-Boot binary for the QEMU ARM virtual machines, you can use these images in EFI mode: 32-bit: -gunzip -c bin/targets/armvirt/32/openwrt-armvirt-32-generic-ext4-combined.img.gz > openwrt-arm-32.img +gunzip -c bin/targets/armsr/armv7/openwrt-armsr-armv7-generic-ext4-combined.img.gz > openwrt-arm-32.img qemu-system-arm -nographic \ -cpu cortex-a15 -machine virt \ -bios QEMU_EFI_32.fd \ @@ -56,7 +60,7 @@ qemu-system-arm -nographic \ -netdev user,id=testwan -net nic,netdev=testwan 64-bit: -gunzip -c bin/targets/armvirt/64/openwrt-armvirt-64-generic-ext4-combined.img.gz > openwrt-arm-64.img +gunzip -c bin/targets/armsr/armv8/openwrt-armsr-armv8-generic-ext4-combined.img.gz > openwrt-arm-64.img qemu-system-aarch64 -nographic \ -cpu cortex-a53 -machine virt \ -bios QEMU_EFI_64.fd \ diff --git a/target/linux/armvirt/32/config-6.1 b/target/linux/armsr/armv7/config-6.1 similarity index 100% rename from target/linux/armvirt/32/config-6.1 rename to target/linux/armsr/armv7/config-6.1 diff --git a/target/linux/armvirt/32/target.mk b/target/linux/armsr/armv7/target.mk similarity index 70% rename from target/linux/armvirt/32/target.mk rename to target/linux/armsr/armv7/target.mk index df22040241..fbad3abb26 100644 --- a/target/linux/armvirt/32/target.mk +++ b/target/linux/armsr/armv7/target.mk @@ -1,6 +1,6 @@ ARCH:=arm -SUBTARGET:=32 -BOARDNAME:=32-bit ARM QEMU Virtual Machine +SUBTARGET:=armv7 +BOARDNAME:=32-bit (armv7) machines CPU_TYPE:=cortex-a15 CPU_SUBTYPE:=neon-vfpv4 KERNELNAME:=zImage diff --git a/target/linux/armvirt/64/config-6.1 b/target/linux/armsr/armv8/config-6.1 similarity index 100% rename from target/linux/armvirt/64/config-6.1 rename to target/linux/armsr/armv8/config-6.1 diff --git a/target/linux/armvirt/64/target.mk b/target/linux/armsr/armv8/target.mk similarity index 69% rename from target/linux/armvirt/64/target.mk rename to target/linux/armsr/armv8/target.mk index ac5a60d848..654e5976ca 100644 --- a/target/linux/armvirt/64/target.mk +++ b/target/linux/armsr/armv8/target.mk @@ -1,6 +1,6 @@ ARCH:=aarch64 -SUBTARGET:=64 -BOARDNAME:=64-bit ARM machines +SUBTARGET:=armv8 +BOARDNAME:=64-bit (armv8) machines define Target/Description Build multi-platform images for the ARMv8 instruction set architecture diff --git a/target/linux/armvirt/base-files/etc/board.d/01_led b/target/linux/armsr/base-files/etc/board.d/01_led similarity index 100% rename from target/linux/armvirt/base-files/etc/board.d/01_led rename to target/linux/armsr/base-files/etc/board.d/01_led diff --git a/target/linux/armvirt/base-files/etc/board.d/02_network b/target/linux/armsr/base-files/etc/board.d/02_network similarity index 100% rename from target/linux/armvirt/base-files/etc/board.d/02_network rename to target/linux/armsr/base-files/etc/board.d/02_network diff --git a/target/linux/armvirt/base-files/etc/board.d/03_gpio_switches b/target/linux/armsr/base-files/etc/board.d/03_gpio_switches similarity index 100% rename from target/linux/armvirt/base-files/etc/board.d/03_gpio_switches rename to target/linux/armsr/base-files/etc/board.d/03_gpio_switches diff --git a/target/linux/armvirt/base-files/etc/inittab b/target/linux/armsr/base-files/etc/inittab similarity index 100% rename from target/linux/armvirt/base-files/etc/inittab rename to target/linux/armsr/base-files/etc/inittab diff --git a/target/linux/armvirt/base-files/lib/preinit/01_sysinfo_acpi b/target/linux/armsr/base-files/lib/preinit/01_sysinfo_acpi similarity index 100% rename from target/linux/armvirt/base-files/lib/preinit/01_sysinfo_acpi rename to target/linux/armsr/base-files/lib/preinit/01_sysinfo_acpi diff --git a/target/linux/armvirt/base-files/lib/upgrade/platform.sh b/target/linux/armsr/base-files/lib/upgrade/platform.sh similarity index 100% rename from target/linux/armvirt/base-files/lib/upgrade/platform.sh rename to target/linux/armsr/base-files/lib/upgrade/platform.sh diff --git a/target/linux/armvirt/config-6.1 b/target/linux/armsr/config-6.1 similarity index 100% rename from target/linux/armvirt/config-6.1 rename to target/linux/armsr/config-6.1 diff --git a/target/linux/armvirt/image/Makefile b/target/linux/armsr/image/Makefile similarity index 100% rename from target/linux/armvirt/image/Makefile rename to target/linux/armsr/image/Makefile diff --git a/target/linux/armvirt/image/grub-efi.cfg b/target/linux/armsr/image/grub-efi.cfg similarity index 100% rename from target/linux/armvirt/image/grub-efi.cfg rename to target/linux/armsr/image/grub-efi.cfg diff --git a/target/linux/armvirt/modules.mk b/target/linux/armsr/modules.mk similarity index 89% rename from target/linux/armvirt/modules.mk rename to target/linux/armsr/modules.mk index c59301aae7..7a349337d8 100644 --- a/target/linux/armvirt/modules.mk +++ b/target/linux/armsr/modules.mk @@ -1,7 +1,7 @@ define KernelPackage/acpi-mdio SUBMENU:=$(NETWORK_DEVICES_MENU) TITLE:=ACPI MDIO support - DEPENDS:=@(TARGET_armvirt_64) +kmod-libphy +kmod-mdio-devres + DEPENDS:=@(TARGET_armsr_armv8) +kmod-libphy +kmod-mdio-devres KCONFIG:=CONFIG_ACPI_MDIO FILES:=$(LINUX_DIR)/drivers/net/mdio/acpi_mdio.ko AUTOLOAD:=$(call AutoLoad,11,acpi_mdio) @@ -15,7 +15,7 @@ $(eval $(call KernelPackage,acpi-mdio)) define KernelPackage/fsl-pcs-lynx SUBMENU=$(NETWORK_DEVICES_MENU) - DEPENDS:=@(TARGET_armvirt_64) +kmod-libphy +kmod-of-mdio +kmod-phylink + DEPENDS:=@(TARGET_armsr_armv8) +kmod-libphy +kmod-of-mdio +kmod-phylink TITLE:=NXP (Freescale) Lynx PCS HIDDEN:=1 KCONFIG:=CONFIG_PCS_LYNX @@ -28,7 +28,7 @@ $(eval $(call KernelPackage,fsl-pcs-lynx)) define KernelPackage/pcs-xpcs SUBMENU:=$(NETWORK_DEVICES_MENU) TITLE:=Synopsis DesignWare PCS driver - DEPENDS:=@(TARGET_armvirt_64) +kmod-phylink + DEPENDS:=@(TARGET_armsr_armv8) +kmod-phylink KCONFIG:=CONFIG_PCS_XPCS FILES:=$(LINUX_DIR)/drivers/net/pcs/pcs_xpcs.ko AUTOLOAD:=$(call AutoLoad,20,pcs_xpcs) @@ -38,7 +38,7 @@ $(eval $(call KernelPackage,pcs-xpcs)) define KernelPackage/fsl-fec SUBMENU:=$(NETWORK_DEVICES_MENU) - DEPENDS:=@(TARGET_armvirt_64) +kmod-libphy +kmod-of-mdio \ + DEPENDS:=@(TARGET_armsr_armv8) +kmod-libphy +kmod-of-mdio \ +kmod-ptp +kmod-net-selftests TITLE:=NXP (Freescale) FEC Ethernet controller (i.MX) KCONFIG:=CONFIG_FEC @@ -50,7 +50,7 @@ $(eval $(call KernelPackage,fsl-fec)) define KernelPackage/fsl-xgmac-mdio SUBMENU=$(NETWORK_DEVICES_MENU) - DEPENDS:=@(TARGET_armvirt_64) +kmod-libphy +kmod-of-mdio +kmod-acpi-mdio + DEPENDS:=@(TARGET_armsr_armv8) +kmod-libphy +kmod-of-mdio +kmod-acpi-mdio TITLE:=NXP (Freescale) MDIO bus KCONFIG:=CONFIG_FSL_XGMAC_MDIO FILES=$(LINUX_DIR)/drivers/net/ethernet/freescale/xgmac_mdio.ko @@ -74,7 +74,7 @@ $(eval $(call KernelPackage,fsl-mc-dpio)) define KernelPackage/fsl-enetc-net SUBMENU:=$(NETWORK_DEVICES_MENU) TITLE:=:NXP ENETC (LS1028A) Ethernet - DEPENDS:=@(TARGET_armvirt_64) +kmod-phylink +kmod-fsl-pcs-lynx + DEPENDS:=@(TARGET_armsr_armv8) +kmod-phylink +kmod-fsl-pcs-lynx KCONFIG:= \ CONFIG_FSL_ENETC \ CONFIG_FSL_ENETC_VF \ @@ -92,7 +92,7 @@ $(eval $(call KernelPackage,fsl-enetc-net)) define KernelPackage/fsl-dpaa1-net SUBMENU:=$(NETWORK_DEVICES_MENU) TITLE:=NXP DPAA1 (LS1043/LS1046) Ethernet - DEPENDS:=@(TARGET_armvirt_64) +kmod-fsl-xgmac-mdio +kmod-libphy +kmod-crypto-crc32 + DEPENDS:=@(TARGET_armsr_armv8) +kmod-fsl-xgmac-mdio +kmod-libphy +kmod-crypto-crc32 KCONFIG:= \ CONFIG_FSL_DPAA=y \ CONFIG_FSL_DPAA_ETH \ @@ -112,7 +112,7 @@ $(eval $(call KernelPackage,fsl-dpaa1-net)) define KernelPackage/fsl-dpaa2-net SUBMENU:=$(NETWORK_DEVICES_MENU) TITLE:=NXP DPAA2 Ethernet - DEPENDS:=@(TARGET_armvirt_64) +kmod-fsl-xgmac-mdio +kmod-phylink \ + DEPENDS:=@(TARGET_armsr_armv8) +kmod-fsl-xgmac-mdio +kmod-phylink \ +kmod-fsl-pcs-lynx +kmod-fsl-mc-dpio KCONFIG:= \ CONFIG_FSL_MC_UAPI_SUPPORT=y \ @@ -127,7 +127,7 @@ $(eval $(call KernelPackage,fsl-dpaa2-net)) define KernelPackage/fsl-dpaa2-console SUBMENU:=$(OTHER_MENU) TITLE:=NXP DPAA2 Debug console - DEPENDS:=@(TARGET_armvirt_64) + DEPENDS:=@(TARGET_armsr_armv8) KCONFIG:=CONFIG_DPAA2_CONSOLE FILES=$(LINUX_DIR)/drivers/soc/fsl/dpaa2-console.ko AUTOLOAD=$(call AutoLoad,40,dpaa2-console) @@ -143,7 +143,7 @@ $(eval $(call KernelPackage,fsl-dpaa2-console)) define KernelPackage/marvell-mdio SUBMENU:=$(NETWORK_DEVICES_MENU) TITLE:=Marvell Armada platform MDIO driver - DEPENDS:=@(TARGET_armvirt_64) +kmod-libphy +kmod-of-mdio +kmod-acpi-mdio + DEPENDS:=@(TARGET_armsr_armv8) +kmod-libphy +kmod-of-mdio +kmod-acpi-mdio KCONFIG:=CONFIG_MVMDIO FILES=$(LINUX_DIR)/drivers/net/ethernet/marvell/mvmdio.ko AUTOLOAD=$(call AutoLoad,30,marvell-mdio) @@ -154,7 +154,7 @@ $(eval $(call KernelPackage,marvell-mdio)) define KernelPackage/phy-marvell-10g SUBMENU:=$(NETWORK_DEVICES_MENU) TITLE:=Marvell Alaska 10G PHY driver - DEPENDS:=@(TARGET_armvirt_64) +kmod-libphy + DEPENDS:=@(TARGET_armsr_armv8) +kmod-libphy KCONFIG:=CONFIG_MARVELL_10G_PHY FILES=$(LINUX_DIR)/drivers/net/phy/marvell10g.ko AUTOLOAD=$(call AutoLoad,35,marvell10g) @@ -165,7 +165,7 @@ $(eval $(call KernelPackage,phy-marvell-10g)) define KernelPackage/mvneta SUBMENU:=$(NETWORK_DEVICES_MENU) TITLE:=Marvell Armada 370/38x/XP/37xx network driver - DEPENDS:=@(TARGET_armvirt_64) +kmod-marvell-mdio +kmod-phylink + DEPENDS:=@(TARGET_armsr_armv8) +kmod-marvell-mdio +kmod-phylink KCONFIG:=CONFIG_MVNETA FILES:=$(LINUX_DIR)/drivers/net/ethernet/marvell/mvneta.ko AUTOLOAD=$(call AutoLoad,30,mvneta) @@ -176,7 +176,7 @@ $(eval $(call KernelPackage,mvneta)) define KernelPackage/mvpp2 SUBMENU:=$(NETWORK_DEVICES_MENU) TITLE:=Marvell Armada 375/7K/8K network driver - DEPENDS:=@(TARGET_armvirt_64) +kmod-marvell-mdio +kmod-phylink + DEPENDS:=@(TARGET_armsr_armv8) +kmod-marvell-mdio +kmod-phylink KCONFIG:=CONFIG_MVPP2 \ CONFIG_MVPP2_PTP=n FILES=$(LINUX_DIR)/drivers/net/ethernet/marvell/mvpp2/mvpp2.ko @@ -208,7 +208,7 @@ $(eval $(call KernelPackage,imx7-ulp-wdt)) define KernelPackage/stmmac-core SUBMENU=$(NETWORK_DEVICES_MENU) TITLE:=Synopsis Ethernet Controller core (NXP,STMMicro,others) - DEPENDS:=@(TARGET_armvirt_64) +kmod-pcs-xpcs +kmod-ptp \ + DEPENDS:=@(TARGET_armsr_armv8) +kmod-pcs-xpcs +kmod-ptp \ +kmod-of-mdio KCONFIG:=CONFIG_STMMAC_ETH \ CONFIG_STMMAC_SELFTESTS=n \ @@ -259,7 +259,7 @@ $(eval $(call KernelPackage,dwmac-rockchip)) define KernelPackage/thunderx-net SUBMENU:=$(NETWORK_DEVICES_MENU) TITLE:=Marvell (Cavium) ThunderX/2 network drivers - DEPENDS:=@(TARGET_armvirt_64) +kmod-phylink +kmod-of-mdio + DEPENDS:=@(TARGET_armsr_armv8) +kmod-phylink +kmod-of-mdio KCONFIG:=CONFIG_NET_VENDOR_CAVIUM \ CONFIG_THUNDER_NIC_PF \ CONFIG_THUNDER_NIC_VF \ diff --git a/target/linux/armvirt/patches-6.1/221-armvirt-disable-gc_sections.patch b/target/linux/armsr/patches-6.1/221-armsr-disable_gc_sections_armv7.patch similarity index 100% rename from target/linux/armvirt/patches-6.1/221-armvirt-disable-gc_sections.patch rename to target/linux/armsr/patches-6.1/221-armsr-disable_gc_sections_armv7.patch diff --git a/target/linux/armvirt/patches-6.1/701-v6.2-0001-net-dpaa2-eth-don-t-use-ENOTSUPP-error-code.patch b/target/linux/armsr/patches-6.1/701-v6.2-0001-net-dpaa2-eth-don-t-use-ENOTSUPP-error-code.patch similarity index 100% rename from target/linux/armvirt/patches-6.1/701-v6.2-0001-net-dpaa2-eth-don-t-use-ENOTSUPP-error-code.patch rename to target/linux/armsr/patches-6.1/701-v6.2-0001-net-dpaa2-eth-don-t-use-ENOTSUPP-error-code.patch diff --git a/target/linux/armvirt/patches-6.1/701-v6.2-0002-net-dpaa2-replace-dpaa2_mac_is_type_fixed-with-dpaa2.patch b/target/linux/armsr/patches-6.1/701-v6.2-0002-net-dpaa2-replace-dpaa2_mac_is_type_fixed-with-dpaa2.patch similarity index 100% rename from target/linux/armvirt/patches-6.1/701-v6.2-0002-net-dpaa2-replace-dpaa2_mac_is_type_fixed-with-dpaa2.patch rename to target/linux/armsr/patches-6.1/701-v6.2-0002-net-dpaa2-replace-dpaa2_mac_is_type_fixed-with-dpaa2.patch diff --git a/target/linux/armvirt/patches-6.1/701-v6.2-0003-net-dpaa2-mac-absorb-phylink_start-call-into-dpaa2_m.patch b/target/linux/armsr/patches-6.1/701-v6.2-0003-net-dpaa2-mac-absorb-phylink_start-call-into-dpaa2_m.patch similarity index 100% rename from target/linux/armvirt/patches-6.1/701-v6.2-0003-net-dpaa2-mac-absorb-phylink_start-call-into-dpaa2_m.patch rename to target/linux/armsr/patches-6.1/701-v6.2-0003-net-dpaa2-mac-absorb-phylink_start-call-into-dpaa2_m.patch diff --git a/target/linux/armvirt/patches-6.1/701-v6.2-0004-net-dpaa2-mac-remove-defensive-check-in-dpaa2_mac_di.patch b/target/linux/armsr/patches-6.1/701-v6.2-0004-net-dpaa2-mac-remove-defensive-check-in-dpaa2_mac_di.patch similarity index 100% rename from target/linux/armvirt/patches-6.1/701-v6.2-0004-net-dpaa2-mac-remove-defensive-check-in-dpaa2_mac_di.patch rename to target/linux/armsr/patches-6.1/701-v6.2-0004-net-dpaa2-mac-remove-defensive-check-in-dpaa2_mac_di.patch diff --git a/target/linux/armvirt/patches-6.1/701-v6.2-0005-net-dpaa2-eth-assign-priv-mac-after-dpaa2_mac_connec.patch b/target/linux/armsr/patches-6.1/701-v6.2-0005-net-dpaa2-eth-assign-priv-mac-after-dpaa2_mac_connec.patch similarity index 100% rename from target/linux/armvirt/patches-6.1/701-v6.2-0005-net-dpaa2-eth-assign-priv-mac-after-dpaa2_mac_connec.patch rename to target/linux/armsr/patches-6.1/701-v6.2-0005-net-dpaa2-eth-assign-priv-mac-after-dpaa2_mac_connec.patch diff --git a/target/linux/armvirt/patches-6.1/701-v6.2-0006-net-dpaa2-switch-assign-port_priv-mac-after-dpaa2_ma.patch b/target/linux/armsr/patches-6.1/701-v6.2-0006-net-dpaa2-switch-assign-port_priv-mac-after-dpaa2_ma.patch similarity index 100% rename from target/linux/armvirt/patches-6.1/701-v6.2-0006-net-dpaa2-switch-assign-port_priv-mac-after-dpaa2_ma.patch rename to target/linux/armsr/patches-6.1/701-v6.2-0006-net-dpaa2-switch-assign-port_priv-mac-after-dpaa2_ma.patch diff --git a/target/linux/armvirt/patches-6.1/701-v6.2-0007-net-dpaa2-publish-MAC-stringset-to-ethtool-S-even-if.patch b/target/linux/armsr/patches-6.1/701-v6.2-0007-net-dpaa2-publish-MAC-stringset-to-ethtool-S-even-if.patch similarity index 100% rename from target/linux/armvirt/patches-6.1/701-v6.2-0007-net-dpaa2-publish-MAC-stringset-to-ethtool-S-even-if.patch rename to target/linux/armsr/patches-6.1/701-v6.2-0007-net-dpaa2-publish-MAC-stringset-to-ethtool-S-even-if.patch diff --git a/target/linux/armvirt/patches-6.1/701-v6.2-0008-net-dpaa2-switch-replace-direct-MAC-access-with-dpaa.patch b/target/linux/armsr/patches-6.1/701-v6.2-0008-net-dpaa2-switch-replace-direct-MAC-access-with-dpaa.patch similarity index 100% rename from target/linux/armvirt/patches-6.1/701-v6.2-0008-net-dpaa2-switch-replace-direct-MAC-access-with-dpaa.patch rename to target/linux/armsr/patches-6.1/701-v6.2-0008-net-dpaa2-switch-replace-direct-MAC-access-with-dpaa.patch diff --git a/target/linux/armvirt/patches-6.1/701-v6.2-0009-net-dpaa2-eth-connect-to-MAC-before-requesting-the-e.patch b/target/linux/armsr/patches-6.1/701-v6.2-0009-net-dpaa2-eth-connect-to-MAC-before-requesting-the-e.patch similarity index 100% rename from target/linux/armvirt/patches-6.1/701-v6.2-0009-net-dpaa2-eth-connect-to-MAC-before-requesting-the-e.patch rename to target/linux/armsr/patches-6.1/701-v6.2-0009-net-dpaa2-eth-connect-to-MAC-before-requesting-the-e.patch diff --git a/target/linux/armvirt/patches-6.1/701-v6.2-0010-net-dpaa2-eth-serialize-changes-to-priv-mac-with-a-m.patch b/target/linux/armsr/patches-6.1/701-v6.2-0010-net-dpaa2-eth-serialize-changes-to-priv-mac-with-a-m.patch similarity index 100% rename from target/linux/armvirt/patches-6.1/701-v6.2-0010-net-dpaa2-eth-serialize-changes-to-priv-mac-with-a-m.patch rename to target/linux/armsr/patches-6.1/701-v6.2-0010-net-dpaa2-eth-serialize-changes-to-priv-mac-with-a-m.patch diff --git a/target/linux/armvirt/patches-6.1/701-v6.2-0011-net-dpaa2-switch-serialize-changes-to-priv-mac-with.patch b/target/linux/armsr/patches-6.1/701-v6.2-0011-net-dpaa2-switch-serialize-changes-to-priv-mac-with.patch similarity index 100% rename from target/linux/armvirt/patches-6.1/701-v6.2-0011-net-dpaa2-switch-serialize-changes-to-priv-mac-with.patch rename to target/linux/armsr/patches-6.1/701-v6.2-0011-net-dpaa2-switch-serialize-changes-to-priv-mac-with.patch diff --git a/target/linux/armvirt/patches-6.1/701-v6.2-0012-net-dpaa2-mac-move-rtnl_lock-only-around-phylink.patch b/target/linux/armsr/patches-6.1/701-v6.2-0012-net-dpaa2-mac-move-rtnl_lock-only-around-phylink.patch similarity index 100% rename from target/linux/armvirt/patches-6.1/701-v6.2-0012-net-dpaa2-mac-move-rtnl_lock-only-around-phylink.patch rename to target/linux/armsr/patches-6.1/701-v6.2-0012-net-dpaa2-mac-move-rtnl_lock-only-around-phylink.patch From 40ce6a7920a8f56d07228795a526576a8762aead Mon Sep 17 00:00:00 2001 From: Mathew McBride Date: Tue, 6 Jun 2023 23:22:01 +0000 Subject: [PATCH 14/21] config: change references from armvirt to armsr armvirt target has been renamed to armsr (Arm SystemReady), so the config defaults need to be changed as well. Signed-off-by: Mathew McBride --- config/Config-images.in | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/config/Config-images.in b/config/Config-images.in index d92c31ec5f..ea7b3d37c3 100644 --- a/config/Config-images.in +++ b/config/Config-images.in @@ -204,12 +204,12 @@ menu "Target Images" config GRUB_EFI_IMAGES bool "Build GRUB EFI images (Linux x86 or x86_64 host only)" - depends on TARGET_x86 || TARGET_armvirt + depends on TARGET_x86 || TARGET_armsr depends on TARGET_ROOTFS_EXT4FS || TARGET_ROOTFS_JFFS2 || TARGET_ROOTFS_SQUASHFS select PACKAGE_grub2 if TARGET_x86 select PACKAGE_grub2-efi if TARGET_x86 select PACKAGE_grub2-bios-setup if TARGET_x86 - select PACKAGE_grub2-efi-arm if TARGET_armvirt + select PACKAGE_grub2-efi-arm if TARGET_armsr select PACKAGE_kmod-fs-vfat default y @@ -267,7 +267,7 @@ menu "Target Images" config VMDK_IMAGES bool "Build VMware image files (VMDK)" - depends on TARGET_x86 || TARGET_armvirt + depends on TARGET_x86 || TARGET_armsr depends on GRUB_IMAGES || GRUB_EFI_IMAGES select PACKAGE_kmod-e1000 @@ -279,7 +279,7 @@ menu "Target Images" config TARGET_IMAGES_GZIP bool "GZip images" - depends on TARGET_ROOTFS_EXT4FS || TARGET_x86 || TARGET_armvirt || TARGET_malta + depends on TARGET_ROOTFS_EXT4FS || TARGET_x86 || TARGET_armsr || TARGET_malta default y comment "Image Options" @@ -292,7 +292,7 @@ menu "Target Images" depends on USES_BOOT_PART default 8 if TARGET_apm821xx_sata default 64 if TARGET_bcm27xx - default 128 if TARGET_armvirt + default 128 if TARGET_armsr default 16 config TARGET_ROOTFS_PARTSIZE From 4ce7d6c8885a0e1873011f8f48b67e2ecd18e43d Mon Sep 17 00:00:00 2001 From: Mathew McBride Date: Tue, 6 Jun 2023 23:22:36 +0000 Subject: [PATCH 15/21] grub2: change armvirt reference to armsr The armvirt target has been renamed to armsr (Arm SystemReady), so the GRUB configuration also needs to change. Signed-off-by: Mathew McBride --- package/boot/grub2/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/boot/grub2/Makefile b/package/boot/grub2/Makefile index 50bf96360d..865feee9ad 100644 --- a/package/boot/grub2/Makefile +++ b/package/boot/grub2/Makefile @@ -41,7 +41,7 @@ endef Package/grub2=$(call Package/grub2/Default,x86,pc) Package/grub2-efi=$(call Package/grub2/Default,x86,efi) -Package/grub2-efi-arm=$(call Package/grub2/Default,armvirt,efi) +Package/grub2-efi-arm=$(call Package/grub2/Default,armsr,efi) define Package/grub2-editenv CATEGORY:=Utilities From c0bcfde58e751d674adfac51944df9e20ab978e4 Mon Sep 17 00:00:00 2001 From: Mathew McBride Date: Tue, 6 Jun 2023 23:23:33 +0000 Subject: [PATCH 16/21] kernel: netdevices: change armvirt references to armsr armvirt target has been renamed to armsr (Arm SystemReady) Signed-off-by: Mathew McBride --- package/kernel/linux/modules/netdevices.mk | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/package/kernel/linux/modules/netdevices.mk b/package/kernel/linux/modules/netdevices.mk index d2cc67d164..33e7f1bc30 100644 --- a/package/kernel/linux/modules/netdevices.mk +++ b/package/kernel/linux/modules/netdevices.mk @@ -142,7 +142,7 @@ $(eval $(call KernelPackage,mii)) define KernelPackage/mdio-devres SUBMENU:=$(NETWORK_DEVICES_MENU) TITLE:=Supports MDIO device registration - DEPENDS:=+kmod-libphy +(TARGET_armvirt||TARGET_bcm27xx_bcm2708||TARGET_malta||TARGET_tegra):kmod-of-mdio + DEPENDS:=+kmod-libphy +(TARGET_armsr||TARGET_bcm27xx_bcm2708||TARGET_malta||TARGET_tegra):kmod-of-mdio KCONFIG:=CONFIG_MDIO_DEVRES HIDDEN:=1 FILES:=$(LINUX_DIR)/drivers/net/phy/mdio_devres.ko @@ -159,7 +159,7 @@ $(eval $(call KernelPackage,mdio-devres)) define KernelPackage/mdio-gpio SUBMENU:=$(NETWORK_DEVICES_MENU) TITLE:= Supports GPIO lib-based MDIO busses - DEPENDS:=+kmod-libphy @GPIO_SUPPORT +(TARGET_armvirt||TARGET_bcm27xx_bcm2708||TARGET_malta||TARGET_tegra):kmod-of-mdio + DEPENDS:=+kmod-libphy @GPIO_SUPPORT +(TARGET_armsr||TARGET_bcm27xx_bcm2708||TARGET_malta||TARGET_tegra):kmod-of-mdio KCONFIG:= \ CONFIG_MDIO_BITBANG \ CONFIG_MDIO_GPIO @@ -438,7 +438,7 @@ $(eval $(call KernelPackage,switch-rtl8306)) define KernelPackage/switch-rtl8366-smi SUBMENU:=$(NETWORK_DEVICES_MENU) TITLE:=Realtek RTL8366 SMI switch interface support - DEPENDS:=@GPIO_SUPPORT +kmod-swconfig +(TARGET_armvirt||TARGET_bcm27xx_bcm2708||TARGET_malta||TARGET_tegra):kmod-of-mdio + DEPENDS:=@GPIO_SUPPORT +kmod-swconfig +(TARGET_armsr||TARGET_bcm27xx_bcm2708||TARGET_malta||TARGET_tegra):kmod-of-mdio KCONFIG:=CONFIG_RTL8366_SMI FILES:=$(LINUX_DIR)/drivers/net/phy/rtl8366_smi.ko AUTOLOAD:=$(call AutoLoad,42,rtl8366_smi,1) @@ -1544,7 +1544,7 @@ $(eval $(call KernelPackage,lan743x)) define KernelPackage/amazon-ena SUBMENU:=$(NETWORK_DEVICES_MENU) TITLE:=Elastic Network Adapter (for Amazon AWS) - DEPENDS:=@TARGET_x86_64||TARGET_armvirt_64 + DEPENDS:=@TARGET_x86_64||TARGET_armsr_armv8 KCONFIG:=CONFIG_ENA_ETHERNET FILES:=$(LINUX_DIR)/drivers/net/ethernet/amazon/ena/ena.ko AUTOLOAD:=$(call AutoLoad,12,ena) From 203deef82cdcb2c4deb01e2a4cee62a600723320 Mon Sep 17 00:00:00 2001 From: Mathew McBride Date: Tue, 6 Jun 2023 23:24:18 +0000 Subject: [PATCH 17/21] wolfssl: change armvirt reference to armsr armvirt target has been renamed to armsr (Arm SystemReady). Signed-off-by: Mathew McBride --- package/libs/wolfssl/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package/libs/wolfssl/Makefile b/package/libs/wolfssl/Makefile index 260335c34f..d9426d75fc 100644 --- a/package/libs/wolfssl/Makefile +++ b/package/libs/wolfssl/Makefile @@ -100,8 +100,8 @@ This variant uses AES CPU instructions (Intel AESNI or ARMv8 Crypto Extension) endef define Package/libwolfsslcpu-crypto/config - if TARGET_armvirt && PACKAGE_libwolfsslcpu-crypto = y - comment "You are about to build libwolfsslcpu-crypto into an armvirt_64 image." + if TARGET_armsr && PACKAGE_libwolfsslcpu-crypto = y + comment "You are about to build libwolfsslcpu-crypto into an armsr_64 image." comment "Ensure all of your installation targets support the Crypto Extension. " comment "Look for the 'aes' feature in /proc/cpuinfo. This library does not do " comment "run-time detection and will crash if the CPU does not support it. " From 36bf9d861082d30fdb1cf1d00f819e60b8bb84a7 Mon Sep 17 00:00:00 2001 From: Mathew McBride Date: Fri, 9 Jun 2023 02:19:40 +0000 Subject: [PATCH 18/21] scripts: qemustart: change armvirt references to armsr The armvirt target has been renamed to 'armsr' (Arm SystemReady) after inclusion of EFI support. Change references (including subtargets) accordingly. Signed-off-by: Mathew McBride --- scripts/qemustart | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/scripts/qemustart b/scripts/qemustart index 764b0e65af..f6a4655129 100755 --- a/scripts/qemustart +++ b/scripts/qemustart @@ -109,10 +109,10 @@ Examples $SELF malta be -m 64 $SELF malta le64 $SELF malta be-glibc - $SELF armvirt 32 \\ + $SELF armsr armv7 \\ --machine virt,highmem=off \\ - --kernel bin/targets/armvirt/32/openwrt-armvirt-32-zImage \\ - --rootfs bin/targets/armvirt/32/openwrt-armvirt-32-root.ext4 + --kernel bin/targets/armsr/armv7/openwrt-armsr-armv7-generic-kernel.bin \\ + --rootfs bin/targets/armsr/armv7/openwrt-armsr-armv7-generic-ext4-rootfs.img EOF } @@ -162,7 +162,7 @@ parse_args() { o_bindir="${CONFIG_BINARY_FOLDER:-bin}/targets/$o_target/$o_subtarget" } -start_qemu_armvirt() { +start_qemu_armsr() { local kernel="$o_kernel" local rootfs="$o_rootfs" local mach="${o_mach:-virt}" @@ -170,15 +170,15 @@ start_qemu_armvirt() { local qemu_exe case "${o_subtarget%-*}" in - 32) + armv7) qemu_exe="qemu-system-arm" cpu="cortex-a15" - [ -n "$kernel" ] || kernel="$o_bindir/openwrt-$o_target-${o_subtarget%-*}-zImage-initramfs" + [ -n "$kernel" ] || kernel="$o_bindir/openwrt-$o_target-${o_subtarget%-*}-generic-initramfs-kernel.bin" ;; - 64) + armv8) qemu_exe="qemu-system-aarch64" cpu="cortex-a57" - [ -n "$kernel" ] || kernel="$o_bindir/openwrt-$o_target-${o_subtarget%-*}-Image-initramfs" + [ -n "$kernel" ] || kernel="$o_bindir/openwrt-$o_target-${o_subtarget%-*}-generic-initramfs-kernel.bin" ;; *) __errmsg "target $o_target: unknown subtarget $o_subtarget" @@ -328,7 +328,7 @@ start_qemu_x86() { start_qemu() { case "$o_target" in - armvirt) start_qemu_armvirt ;; + armsr) start_qemu_armsr ;; malta) start_qemu_malta ;; x86) start_qemu_x86 ;; *) From 3df01b1aa40a8e783dbbebdbe6088a49aed186f8 Mon Sep 17 00:00:00 2001 From: Mathew McBride Date: Fri, 9 Jun 2023 03:57:52 +0000 Subject: [PATCH 19/21] CI: change armvirt reference to armsr The armvirt target has been renamed to armsr. Signed-off-by: Mathew McBride --- .github/labeler.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/labeler.yml b/.github/labeler.yml index c0ffdaf05d..6303fdf7b7 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -5,8 +5,8 @@ - "target/linux/apm821xx/**" "target/archs38": - "target/linux/archs38/**" -"target/armvirt": - - "target/linux/armvirt/**" +"target/armsr": + - "target/linux/armsr/**" "target/at91": - "target/linux/at91/**" - "package/boot/at91bootstrap/**" From 186b97590b9b2f47abc535c9df0687e00e60f78e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20=C5=A0tetiar?= Date: Fri, 2 Jun 2023 13:54:20 +0200 Subject: [PATCH 20/21] u-boot.mk: add support for config customization MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Make it possible to easily customize U-Boot config options via new `UBOOT_CUSTOMIZE_CONFIG` variable, so we don't need to patch config files or override config step with shell hackery. This generic approach uses `config` CLI to tweak the .config as needed, for example: UBOOT_CUSTOMIZE_CONFIG := \ --enable CMD_EFIDEBUG \ --enable CMD_BOOTMENU \ --enable AUTOBOOT \ --enable AUTOBOOT_MENU_SHOW \ --disable AUTOBOOT_KEYED \ --disable AUTOBOOT_USE_MENUKEY \ --disable BOOTMENU_DISABLE_UBOOT_CONSOLE \ --set-val BOOTDELAY 2 Signed-off-by: Petr Štetiar --- include/u-boot.mk | 3 +++ 1 file changed, 3 insertions(+) diff --git a/include/u-boot.mk b/include/u-boot.mk index 8945e8e2b8..2b8106410f 100644 --- a/include/u-boot.mk +++ b/include/u-boot.mk @@ -83,6 +83,9 @@ endef define Build/Configure/U-Boot +$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) $(UBOOT_CONFIGURE_VARS) $(UBOOT_CONFIG)_config + $(if $(strip $(UBOOT_CUSTOMIZE_CONFIG)), + $(PKG_BUILD_DIR)/scripts/config --file $(PKG_BUILD_DIR)/.config $(UBOOT_CUSTOMIZE_CONFIG) + +$(MAKE) $(PKG_JOBS) -C $(PKG_BUILD_DIR) $(UBOOT_CONFIGURE_VARS) oldconfig) endef DTC=$(wildcard $(LINUX_DIR)/scripts/dtc/dtc) From b8e3fa2d1205213c71bc356744e9bed6cd8e69f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20=C5=A0tetiar?= Date: Fri, 2 Jun 2023 13:48:38 +0200 Subject: [PATCH 21/21] uboot-armsr: add support for QEMU armv7/armv8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add new package so we can use self-compiled bootloader during QEMU based testing and development. Backported fix[1] is needed for EFI boot from virtio devices. 1. https://patchwork.ozlabs.org/project/uboot/patch/20230424134946.v10.7.Ia5f5e39c882ac22b5f71c4d576941b34e868eeba@changeid/ Signed-off-by: Petr Štetiar --- package/boot/uboot-armsr/Makefile | 36 +++++++++++ ...ss-device-numbers-to-set-efi-bootdev.patch | 62 +++++++++++++++++++ target/linux/armsr/README | 9 ++- target/linux/armsr/image/Makefile | 3 +- 4 files changed, 104 insertions(+), 6 deletions(-) create mode 100644 package/boot/uboot-armsr/Makefile create mode 100644 package/boot/uboot-armsr/patches/001-v2023.07-bootstd-Use-blk-uclass-device-numbers-to-set-efi-bootdev.patch diff --git a/package/boot/uboot-armsr/Makefile b/package/boot/uboot-armsr/Makefile new file mode 100644 index 0000000000..ce53d19b79 --- /dev/null +++ b/package/boot/uboot-armsr/Makefile @@ -0,0 +1,36 @@ +include $(TOPDIR)/rules.mk + +PKG_VERSION:=2023.04 +PKG_RELEASE:=1 + +PKG_HASH:=e31cac91545ff41b71cec5d8c22afd695645cd6e2a442ccdacacd60534069341 + +include $(INCLUDE_DIR)/u-boot.mk +include $(INCLUDE_DIR)/package.mk + +define U-Boot/Default + BUILD_TARGET:=armsr +endef + +define U-Boot/qemu_armv7 + NAME:=QEMU ARM Virtual Machine 32-bit + BUILD_SUBTARGET:=armv7 + BUILD_DEVICES:=generic + UBOOT_CONFIG:=qemu_arm +endef + +define U-Boot/qemu_armv8 + NAME:=QEMU ARM Virtual Machine 64-bit + BUILD_SUBTARGET:=armv8 + BUILD_DEVICES:=generic + UBOOT_CONFIG:=qemu_arm64 +endef + +UBOOT_TARGETS := \ + qemu_armv7 \ + qemu_armv8 + +UBOOT_CUSTOMIZE_CONFIG := \ + --enable CMD_EFIDEBUG + +$(eval $(call BuildPackage/U-Boot)) diff --git a/package/boot/uboot-armsr/patches/001-v2023.07-bootstd-Use-blk-uclass-device-numbers-to-set-efi-bootdev.patch b/package/boot/uboot-armsr/patches/001-v2023.07-bootstd-Use-blk-uclass-device-numbers-to-set-efi-bootdev.patch new file mode 100644 index 0000000000..f4c8118952 --- /dev/null +++ b/package/boot/uboot-armsr/patches/001-v2023.07-bootstd-Use-blk-uclass-device-numbers-to-set-efi-bootdev.patch @@ -0,0 +1,62 @@ +From: Simon Glass +To: U-Boot Mailing List +Subject: [PATCH v10 7/9] bootstd: Use blk uclass device numbers to set efi + bootdev +Date: Mon, 24 Apr 2023 13:49:50 +1200 +Message-ID: + <20230424134946.v10.7.Ia5f5e39c882ac22b5f71c4d576941b34e868eeba@changeid> + +From: Mathew McBride + +When loading a file from a block device, efiload_read_file +was using the seq_num of the device (e.g "35" of virtio_blk#35) +instead of the block device id (e.g what you get from running +the corresponding device scan command, like "virtio 0") + +This cause EFI booting from these devices to fail as an +invalid device number is passed to blk_get_device_part_str: + + Scanning bootdev 'virtio-blk#35.bootdev': + distro_efi_read_bootflow_file start (efi,fname=) + distro_efi_read_bootflow_file start (efi,fname=) + setting bootdev virtio, 35, efi/boot/bootaa64.efi, 00000000beef9a40, 170800 + efi_dp_from_name calling blk_get_device_part_str + dev=virtio devnr=35 path=efi/boot/bootaa64.efi + blk_get_device_part_str (virtio,35) + blk_get_device_by_str (virtio, 35) + ** Bad device specification virtio 35 ** + Using default device tree: dtb/qemu-arm.dtb + No device tree available + 0 efi ready virtio 1 virtio-blk#35.bootdev.par efi/boot/bootaa64.efi + ** Booting bootflow 'virtio-blk#35.bootdev.part_1' with efi + blk_get_device_part_str (virtio,0:1) + blk_get_device_by_str (virtio, 0) + No UEFI binary known at beef9a40 (image buf=00000000beef9a40,addr=0000000000000000) + Boot failed (err=-22) + +Signed-off-by: Mathew McBride +Signed-off-by: Simon Glass +Signed-off-by: Petr Štetiar [backport to 2023.04] +--- + +(no changes since v8) + +Changes in v8: +- Add new patch to use blk uclass device numbers to set efi bootdev + + boot/bootmeth_efi.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +--- a/boot/bootmeth_efi.c ++++ b/boot/bootmeth_efi.c +@@ -117,7 +117,9 @@ static int efiload_read_file(struct blk_ + * this can go away. + */ + media_dev = dev_get_parent(bflow->dev); +- snprintf(devnum_str, sizeof(devnum_str), "%x", dev_seq(media_dev)); ++ snprintf(devnum_str, sizeof(devnum_str), "%x:%x", ++ desc ? desc->devnum : dev_seq(media_dev), ++ bflow->part); + + strlcpy(dirname, bflow->fname, sizeof(dirname)); + last_slash = strrchr(dirname, '/'); diff --git a/target/linux/armsr/README b/target/linux/armsr/README index bce839ddfc..b4b9012826 100644 --- a/target/linux/armsr/README +++ b/target/linux/armsr/README @@ -52,7 +52,7 @@ images in EFI mode: gunzip -c bin/targets/armsr/armv7/openwrt-armsr-armv7-generic-ext4-combined.img.gz > openwrt-arm-32.img qemu-system-arm -nographic \ -cpu cortex-a15 -machine virt \ - -bios QEMU_EFI_32.fd \ + -bios bin/targets/armsr/armv7/u-boot-qemu_armv7/u-boot.bin \ -smp 1 -m 1024 \ -device virtio-rng-pci \ -drive file=openwrt-arm-32.img,format=raw,index=0,media=disk \ @@ -63,14 +63,13 @@ qemu-system-arm -nographic \ gunzip -c bin/targets/armsr/armv8/openwrt-armsr-armv8-generic-ext4-combined.img.gz > openwrt-arm-64.img qemu-system-aarch64 -nographic \ -cpu cortex-a53 -machine virt \ - -bios QEMU_EFI_64.fd \ + -bios bin/targets/armsr/armv8/u-boot-qemu_armv8/u-boot.bin \ -smp 1 -m 1024 \ -device virtio-rng-pci \ -drive file=openwrt-arm-64.img,format=raw,index=0,media=disk \ -netdev user,id=testlan -net nic,netdev=testlan \ -netdev user,id=testwan -net nic,netdev=testwan -One can find EFI/BIOS binaries from: -- Compile mainline U-Boot for the QEMU ARM virtual machine (qemu_arm_defconfig/qemu_arm64_defconfig) -- From distribution packages (such as qemu-efi-arm and qemu-efi-aarch64 in Debian) +One can obtain other EFI/BIOS binaries from: +- Distribution packages (such as qemu-efi-arm and qemu-efi-aarch64 in Debian) - Community builds, like retrage/edk2-nightly: https://retrage.github.io/edk2-nightly/ diff --git a/target/linux/armsr/image/Makefile b/target/linux/armsr/image/Makefile index 8642c88a49..a6f045d24f 100644 --- a/target/linux/armsr/image/Makefile +++ b/target/linux/armsr/image/Makefile @@ -73,7 +73,7 @@ define Build/grub-install $(INSTALL_DIR) $@.grub2 endef -DEVICE_VARS += GRUB2_VARIANT +DEVICE_VARS += GRUB2_VARIANT UBOOT define Device/efi-default IMAGE/rootfs.img := append-rootfs | pad-to $(ROOTFS_PARTSIZE) IMAGE/rootfs.img.gz := append-rootfs | pad-to $(ROOTFS_PARTSIZE) | gzip @@ -105,6 +105,7 @@ define Device/generic DEVICE_TITLE := Generic EFI Boot GRUB2_VARIANT := generic FILESYSTEMS := ext4 squashfs + UBOOT := $(if $(CONFIG_aarch64),qemu_armv8,qemu_armv7) DEVICE_PACKAGES += kmod-amazon-ena kmod-e1000e kmod-vmxnet3 kmod-rtc-rx8025 \ kmod-i2c-mux-pca954x kmod-gpio-pca953x partx-utils kmod-wdt-sp805 \ kmod-mvneta kmod-mvpp2 kmod-fsl-dpaa1-net kmod-fsl-dpaa2-net \