From dbc4be142e206e681ac53afa3fd1e4018e7843b7 Mon Sep 17 00:00:00 2001 From: David Bauer Date: Sat, 6 May 2023 16:51:18 +0200 Subject: [PATCH 01/14] ipq40xx: move Teltonika RUT STM32 IO to specific DTS Prepare to re-use the DTS for the RUTX50. Signed-off-by: David Bauer --- .../arch/arm/boot/dts/qcom-ipq4018-rutx.dtsi | 37 ------------------- .../arch/arm/boot/dts/qcom-ipq4018-rutx10.dts | 37 +++++++++++++++++++ 2 files changed, 37 insertions(+), 37 deletions(-) diff --git a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-rutx.dtsi b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-rutx.dtsi index 230b62a94e..df9425b12a 100644 --- a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-rutx.dtsi +++ b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-rutx.dtsi @@ -44,43 +44,6 @@ linux,code = ; }; }; - - gpio_export { - compatible = "gpio-export"; - #size-cells = <0>; - - gpio_out { - gpio-export,name = "gpio_out"; - gpio-export,output = <0>; - gpio-export,direction_may_change = <0>; - gpios = <&stm32_io 23 GPIO_ACTIVE_HIGH>; - }; - - gpio_in { - gpio-export,name = "gpio_in"; - gpio-export,input = <0>; - gpio-export,direction_may_change = <0>; - gpios = <&stm32_io 24 GPIO_ACTIVE_LOW>; - }; - }; - }; -}; - -&blsp1_i2c3 { - status = "okay"; - pinctrl-0 = <&i2c_0_pins>; - pinctrl-names = "default"; - clock-frequency = <400000>; - - stm32_io: stm32@74 { - compatible = "tlt,stm32v1"; - #gpio-cells = <2>; - #interrupt-cells = <2>; - gpio-controller; - interrupt-controller; - interrupt-parent = <&tlmm>; - interrupts = <5 2>; - reg = <0x74>; }; }; diff --git a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-rutx10.dts b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-rutx10.dts index 31d14aa6ae..8fc976a11b 100644 --- a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-rutx10.dts +++ b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-rutx10.dts @@ -22,6 +22,43 @@ linux,default-trigger = "phy1tpt"; }; }; + + gpio_export { + compatible = "gpio-export"; + #size-cells = <0>; + + gpio_out { + gpio-export,name = "gpio_out"; + gpio-export,output = <0>; + gpio-export,direction_may_change = <0>; + gpios = <&stm32_io 23 GPIO_ACTIVE_HIGH>; + }; + + gpio_in { + gpio-export,name = "gpio_in"; + gpio-export,input = <0>; + gpio-export,direction_may_change = <0>; + gpios = <&stm32_io 24 GPIO_ACTIVE_LOW>; + }; + }; + }; +}; + +&blsp1_i2c3 { + status = "okay"; + pinctrl-0 = <&i2c_0_pins>; + pinctrl-names = "default"; + clock-frequency = <400000>; + + stm32_io: stm32@74 { + compatible = "tlt,stm32v1"; + #gpio-cells = <2>; + #interrupt-cells = <2>; + gpio-controller; + interrupt-controller; + interrupt-parent = <&tlmm>; + interrupts = <5 2>; + reg = <0x74>; }; }; From 844bb4bfad84cc6267f9b138d1f63b07ed3b77d0 Mon Sep 17 00:00:00 2001 From: David Bauer Date: Sat, 6 May 2023 16:57:18 +0200 Subject: [PATCH 02/14] ipq40xx: add support for Teltonika RUTX50 Hardware -------- CPU: Qualcomm IPQ4018 RAM: 256M Flash: 16MB SPI-NOR (W25Q128) 128MB SPI-NAND (XTX) WiFi: 2T2R (2GHz 802.11n ; 5 GHz 802.11ac) ETH: 4x LAN ; 1x WAN (Gigabit) CELL: Quectel RG501Q 3G/4G/5G UART: Available on the goldfinger connector (Pinout silkscreened) 115200 8N1 3V3 - Only connect RX / TX / GND Installation ------------ 1. Enable SSH in the Teltonika UI (System --> Administration --> Access Control) 2. Check from which partition set the device is currently running from. $ cat /proc/boot_info/rootfs/primaryboot In case this output reads 0, install a Software update from Teltonika first. After upgrade completion, check this file now reads 1 before continuing. 2. Transfer the OpenWrt factory image to the device using scp. Use the same password (user root!) as used for the Web-UI. $ scp -O openwrt-factory.bin root@192.168.1.1:/tmp 3. Connect to the device using ssh as the root user. 4. Install OpenWrt by writing the factory image to flash. $ ubiformat /dev/mtd16 -y -f /tmp/openwrt-factory.bin 5. Instruct the bootloaer to boot from the first partition set. $ echo 0 > /proc/boot_info/rootfs/primaryboot $ cat /proc/boot_info/getbinary_bootconfig > /tmp/bootconfig.bin $ cat /proc/boot_info/getbinary_bootconfig1 > /tmp/bootconfig1.bin $ mtd write /tmp/bootconfig.bin /dev/mtd2 $ mtd write /tmp/bootconfig1.bin /dev/mtd3 6. Reboot the device. $ reboot Signed-off-by: David Bauer --- .../ipq40xx/base-files/etc/board.d/02_network | 1 + .../etc/hotplug.d/firmware/11-ath10k-caldata | 6 +- .../base-files/lib/upgrade/platform.sh | 1 + .../arch/arm/boot/dts/qcom-ipq4018-rutx50.dts | 181 ++++++++++++++++++ target/linux/ipq40xx/image/generic.mk | 16 ++ 5 files changed, 203 insertions(+), 2 deletions(-) create mode 100644 target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-rutx50.dts diff --git a/target/linux/ipq40xx/base-files/etc/board.d/02_network b/target/linux/ipq40xx/base-files/etc/board.d/02_network index 1a74fb792c..c297566dd8 100644 --- a/target/linux/ipq40xx/base-files/etc/board.d/02_network +++ b/target/linux/ipq40xx/base-files/etc/board.d/02_network @@ -24,6 +24,7 @@ ipq40xx_setup_interfaces() p2w,r619ac-64m|\ p2w,r619ac-128m|\ pakedge,wr-1|\ + teltonika,rutx50|\ zyxel,nbg6617) ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4" "wan" ;; diff --git a/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata index 7f41bdcfcc..c8cf297e81 100644 --- a/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata +++ b/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata @@ -131,7 +131,8 @@ case "$FIRMWARE" in caldata_extract "0:ART" 0x1000 0x2f20 ath10k_patch_mac $(macaddr_add $(get_mac_label) 2) ;; - teltonika,rutx10) + teltonika,rutx10|\ + teltonika,rutx50) caldata_extract "0:ART" 0x1000 0x2f20 ath10k_patch_mac $(macaddr_add $(mtd_get_mac_binary "0:CONFIG" 0x0) 2) ;; @@ -227,7 +228,8 @@ case "$FIRMWARE" in caldata_extract "0:ART" 0x5000 0x2f20 ath10k_patch_mac $(macaddr_add $(get_mac_label) 4) ;; - teltonika,rutx10) + teltonika,rutx10|\ + teltonika,rutx50) caldata_extract "0:ART" 0x5000 0x2f20 ath10k_patch_mac $(macaddr_add $(mtd_get_mac_binary "0:CONFIG" 0x0) 3) ;; diff --git a/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh b/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh index e6e99b9d21..8807f844e5 100644 --- a/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh +++ b/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh @@ -207,6 +207,7 @@ platform_do_upgrade() { sony_emmc_do_upgrade "$1" ;; teltonika,rutx10 |\ + teltonika,rutx50 |\ zte,mf18a |\ zte,mf286d |\ zte,mf287plus |\ diff --git a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-rutx50.dts b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-rutx50.dts new file mode 100644 index 0000000000..ea2102f7d6 --- /dev/null +++ b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4018-rutx50.dts @@ -0,0 +1,181 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +#include "qcom-ipq4018-rutx.dtsi" + +/ { + model = "Teltonika RUTX50"; + compatible = "teltonika,rutx50"; + + aliases { + led-boot = &led_rssi0; + led-failsafe = &led_rssi0; + led-running = &led_rssi0; + led-upgrade = &led_rssi0; + label-mac-device = &gmac; + }; + + soc { + gpio-export { + compatible = "gpio-export"; + #size-cells = <0>; + + gpio_modem_reset { + gpio-export,name = "modem_reset"; + gpio-export,output = <0>; + gpios = <&shift_io 8 GPIO_ACTIVE_HIGH>; + }; + + gpio_modem_power { + gpio-export,name = "modem_power"; + gpio-export,output = <0>; + gpios = <&shift_io 9 GPIO_ACTIVE_HIGH>; + }; + + gpio_out_1 { + gpio-export,name = "sim-select"; + /* 0 = SIM1 ; 1 = SIM2 */ + gpio-export,output = <0>; + gpios = <&shift_io 10 GPIO_ACTIVE_HIGH>; + }; + + gpio_in_1 { + gpio-export,name = "sim-detect"; + gpio-export,input = <0>; + gpios = <&tlmm 0 GPIO_ACTIVE_HIGH>; + }; + }; + + leds { + compatible = "gpio-leds"; + + led-0 { + label = "green:sim1"; + gpios = <&shift_io 14 GPIO_ACTIVE_HIGH>; + }; + + led-1 { + label = "green:sim2"; + gpios = <&shift_io 15 GPIO_ACTIVE_HIGH>; + }; + + led-2 { + label = "green:eth"; + gpios = <&shift_io 6 GPIO_ACTIVE_HIGH>; + }; + + led-3 { + label = "green:wifi"; + gpios = <&shift_io 7 GPIO_ACTIVE_HIGH>; + }; + + led-4 { + label = "green:3g"; + gpios = <&shift_io 5 GPIO_ACTIVE_HIGH>; + }; + + led-5 { + label = "green:4g"; + gpios = <&shift_io 4 GPIO_ACTIVE_HIGH>; + }; + + led-6 { + label = "green:5g"; + gpios = <&shift_io 3 GPIO_ACTIVE_HIGH>; + }; + + led_rssi0: led-7 { + label = "green:rssi0"; + gpios = <&shift_io 0 GPIO_ACTIVE_HIGH>; + }; + + led-8 { + label = "green:rssi1"; + gpios = <&shift_io 1 GPIO_ACTIVE_HIGH>; + }; + + led-9 { + label = "green:rssi2"; + gpios = <&shift_io 2 GPIO_ACTIVE_HIGH>; + }; + + led-10 { + label = "green:wifi2g"; + gpios = <&shift_io 12 GPIO_ACTIVE_HIGH>; + }; + + led-11 { + label = "green:wifi5g"; + gpios = <&shift_io 13 GPIO_ACTIVE_HIGH>; + }; + }; + + spi-gpio { + compatible = "spi-gpio"; + #address-cells = <1>; + #size-cells = <0>; + + gpio-sck = <&tlmm 1 GPIO_ACTIVE_HIGH>; + gpio-mosi = <&tlmm 3 GPIO_ACTIVE_HIGH>; + cs-gpios = <&tlmm 2 GPIO_ACTIVE_HIGH>; + num-chipselects = <1>; + + shift_io: shift_io@0 { + compatible = "fairchild,74hc595"; + reg = <0>; + gpio-controller; + #gpio-cells = <2>; + /* Attn: This is specific to RUTX50 in Teltonika GPL */ + registers-number = <2>; + spi-max-frequency = <10000000>; + }; + }; + }; +}; + +&wifi0 { + status = "okay"; + qcom,ath10k-calibration-variant = "Teltonika-RUTX10"; +}; + +&wifi1 { + status = "okay"; + qcom,ath10k-calibration-variant = "Teltonika-RUTX10"; +}; + +&gmac { + status = "okay"; +}; + +&switch { + status = "okay"; +}; + +&swport1 { + status = "okay"; + + label = "lan1"; +}; + +&swport2 { + status = "okay"; + + label = "lan2"; +}; + +&swport3 { + status = "okay"; + + label = "lan3"; +}; + +&swport4 { + status = "okay"; + + label = "lan4"; +}; + +&swport5 { + status = "okay"; + + label = "wan"; +}; diff --git a/target/linux/ipq40xx/image/generic.mk b/target/linux/ipq40xx/image/generic.mk index f15463ae8c..a9dd2aa091 100644 --- a/target/linux/ipq40xx/image/generic.mk +++ b/target/linux/ipq40xx/image/generic.mk @@ -1076,6 +1076,22 @@ endef # Missing DSA Setup #TARGET_DEVICES += teltonika_rutx10 +define Device/teltonika_rutx50 + $(call Device/FitImage) + $(call Device/UbiFit) + DEVICE_VENDOR := Teltonika + DEVICE_MODEL := RUTX50 + SOC := qcom-ipq4018 + DEVICE_DTS_CONFIG := config@5 + KERNEL_INSTALL := 1 + BLOCKSIZE := 128k + PAGESIZE := 2048 + FILESYSTEMS := squashfs + IMAGE/factory.ubi := append-ubi + DEVICE_PACKAGES := ipq-wifi-teltonika_rutx kmod-usb-net-qmi-wwan kmod-usb-serial-option uqmi +endef +TARGET_DEVICES += teltonika_rutx50 + define Device/tel_x1pro $(call Device/FitImage) DEVICE_VENDOR := Telco From 906616d20183bb7be4eb71812ef5e76cb3af56a0 Mon Sep 17 00:00:00 2001 From: Christophe Sokol Date: Sun, 16 Jul 2023 08:01:17 +0000 Subject: [PATCH 03/14] openssl: opt-out of lto usage This fixes building with USE_LTO enabled: aarch64-openwrt-linux-musl-gcc -fPIC -pthread -Wa,--noexecstack -Wall -O3 -Os -pipe -mcpu=cortex-a53 -fno-caller-saves -fno-plt -fhonour-copts -fmacro-prefix-map=/build_dir/target-aarch64_cortex-a53_musl/openssl-3.0.9=openssl-3.0.9 -ffunction-sections -fdata-sections -flto=auto -fno-fat-lto-objects -Wformat -Werror=format-security -DPIC -fPIC -fstack-protector-strong -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro -DPIC -fPIC -Os -pipe -mcpu=cortex-a53 -fno-caller-saves -fno-plt -fhonour-copts -fmacro-prefix-map=/build_dir/target-aarch64_cortex-a53_musl/openssl-3.0.9=openssl-3.0.9 -ffunction-sections -fdata-sections -flto=auto -fno-fat-lto-objects -Wformat -Werror=format-security -fPIC -fstack-protector-strong -fPIC -fuse-ld=bfd -flto=auto -fuse-linker-plugin -fPIC -specs=/include/hardened-ld-pie.specs -znow -zrelro -L. -Wl,-z,defs -Wl,-znodelete -shared -Wl,-Bsymbolic -Wl,-z,now -Wl,-z,relro -L/staging_dir/toolchain-aarch64_cortex-a53_gcc-13.1.0_musl/usr/lib -L/staging_dir/toolchain-aarch64_cortex-a53_gcc-13.1.0_musl/lib -Wl,--gc-sections \ -o providers/legacy.so -Wl,--version-script=providers/legacy.ld \ providers/legacy-dso-legacyprov.o \ providers/liblegacy.a providers/libcommon.a -lcrypto -ldl -pthread ld.bfd: /tmp/ccdWw6Lo.ltrans0.ltrans.o: in function `legacy_get_params': :(.text.legacy_get_params+0xd4): undefined reference to `ossl_prov_is_running' ld.bfd: :(.text.legacy_get_params+0xd8): undefined reference to `ossl_prov_is_running' ld.bfd: /tmp/ccdWw6Lo.ltrans0.ltrans.o: in function `legacy_teardown': :(.text.legacy_teardown+0x4): undefined reference to `ossl_prov_ctx_get0_libctx' ld.bfd: :(.text.legacy_teardown+0x8): undefined reference to `ossl_prov_ctx_get0_libctx' ld.bfd: :(.text.legacy_teardown+0x34): undefined reference to `ossl_prov_ctx_free' ld.bfd: :(.text.legacy_teardown+0x38): undefined reference to `ossl_prov_ctx_free' ld.bfd: /tmp/ccdWw6Lo.ltrans0.ltrans.o: in function `OSSL_provider_init': :(.text.OSSL_provider_init+0x14): undefined reference to `ossl_prov_ctx_new' ld.bfd: :(.text.OSSL_provider_init+0x18): undefined reference to `ossl_prov_ctx_new' ld.bfd: :(.text.OSSL_provider_init+0x84): undefined reference to `ossl_prov_ctx_set0_libctx' ld.bfd: :(.text.OSSL_provider_init+0x88): undefined reference to `ossl_prov_ctx_set0_libctx' ld.bfd: :(.text.OSSL_provider_init+0x98): undefined reference to `ossl_prov_ctx_set0_handle' ld.bfd: :(.text.OSSL_provider_init+0x9c): undefined reference to `ossl_prov_ctx_set0_handle' ld.bfd: /tmp/ccdWw6Lo.ltrans0.ltrans.o:(.data.rel.ro.legacy_kdfs+0x10): undefined reference to `ossl_kdf_pbkdf1_functions' ld.bfd: /tmp/ccdWw6Lo.ltrans0.ltrans.o:(.data.rel.ro.legacy_ciphers+0x10): undefined reference to `ossl_cast5128ecb_functions' ld.bfd: /tmp/ccdWw6Lo.ltrans0.ltrans.o:(.data.rel.ro.legacy_ciphers+0x30): undefined reference to `ossl_cast5128cbc_functions' [...] ld.bfd: /tmp/ccdWw6Lo.ltrans0.ltrans.o:(.data.rel.ro.legacy_digests+0x10): undefined reference to `ossl_md4_functions' ld.bfd: /tmp/ccdWw6Lo.ltrans0.ltrans.o:(.data.rel.ro.legacy_digests+0x30): undefined reference to `ossl_ripemd160_functions' collect2: error: ld returned 1 exit status Signed-off-by: Christophe Sokol --- package/libs/openssl/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package/libs/openssl/Makefile b/package/libs/openssl/Makefile index 0d09114f06..13e5952b37 100644 --- a/package/libs/openssl/Makefile +++ b/package/libs/openssl/Makefile @@ -9,8 +9,8 @@ include $(TOPDIR)/rules.mk PKG_NAME:=openssl PKG_VERSION:=3.0.9 -PKG_RELEASE:=2 -PKG_BUILD_FLAGS:=no-mips16 gc-sections +PKG_RELEASE:=3 +PKG_BUILD_FLAGS:=no-mips16 gc-sections no-lto PKG_BUILD_PARALLEL:=1 From 4395236a100b558d96d0e836ddc76df19b33ddfb Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Wed, 26 Jul 2023 11:20:58 +0200 Subject: [PATCH 04/14] mt76: update to the latest version 53edfc7aaa34 wifi: mt76: mt7603: fix beacon interval after disabling a single vif 7ef4dd12d982 wifi: mt76: mt7603: fix tx filter/flush function 152608a40aa7 wifi: mt76: mt7615: do not advertise 5 GHz on first phy of MT7615D (DBDC) cacac3902a63 wifi: mt76: split get_of_eeprom in subfunction cd3dfe392769 wifi: mt76: add support for providing eeprom in nvmem cells Signed-off-by: Felix Fietkau --- package/kernel/mt76/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package/kernel/mt76/Makefile b/package/kernel/mt76/Makefile index 2ab6d6d6eb..42d0e6a070 100644 --- a/package/kernel/mt76/Makefile +++ b/package/kernel/mt76/Makefile @@ -8,9 +8,9 @@ PKG_LICENSE_FILES:= PKG_SOURCE_URL:=https://github.com/openwrt/mt76 PKG_SOURCE_PROTO:=git -PKG_SOURCE_DATE:=2023-07-14 -PKG_SOURCE_VERSION:=bb3937d5c3e0b13c0d08747ec0fc9726fb4fd870 -PKG_MIRROR_HASH:=498d9cfdafe06572d0668d49e89f1014715100fa59c4f89b8495cd869c8c9b0b +PKG_SOURCE_DATE:=2023-07-26 +PKG_SOURCE_VERSION:=cd3dfe39276905307cc028ac8edf2c06963cda23 +PKG_MIRROR_HASH:=413d2d0faa81d834ba13cb9e503e1e3a61e3e071014da6b525a123e5da053f90 PKG_MAINTAINER:=Felix Fietkau PKG_USE_NINJA:=0 From 7b40344ed6aba536004c9cf18efcfaf36d9a9f55 Mon Sep 17 00:00:00 2001 From: Lu jicong Date: Mon, 24 Jul 2023 15:22:42 +0800 Subject: [PATCH 05/14] uboot-rockchip: add FriendlyARM NanoPC T4 support Add support for the FriendlyARM NanoPC T4. Reduce memory frequency to avoid random crash. Signed-off-by: Lu jicong --- package/boot/uboot-rockchip/Makefile | 8 +++++++ ...105-nanopc-t4-fix-memory-unstability.patch | 24 +++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 package/boot/uboot-rockchip/patches/105-nanopc-t4-fix-memory-unstability.patch diff --git a/package/boot/uboot-rockchip/Makefile b/package/boot/uboot-rockchip/Makefile index 983edcb240..2d44c218f2 100644 --- a/package/boot/uboot-rockchip/Makefile +++ b/package/boot/uboot-rockchip/Makefile @@ -74,6 +74,13 @@ define U-Boot/rk3399/Default ATF:=rk3399_bl31.elf endef +define U-Boot/nanopc-t4-rk3399 + $(U-Boot/rk3399/Default) + NAME:=NanoPC T4 + BUILD_DEVICES:= \ + friendlyarm_nanopc-t4 +endef + define U-Boot/nanopi-r4s-rk3399 $(U-Boot/rk3399/Default) NAME:=NanoPi R4S @@ -96,6 +103,7 @@ define U-Boot/rockpro64-rk3399 endef UBOOT_TARGETS := \ + nanopc-t4-rk3399 \ nanopi-r4s-rk3399 \ rock-pi-4-rk3399 \ rockpro64-rk3399 \ diff --git a/package/boot/uboot-rockchip/patches/105-nanopc-t4-fix-memory-unstability.patch b/package/boot/uboot-rockchip/patches/105-nanopc-t4-fix-memory-unstability.patch new file mode 100644 index 0000000000..7d2161ae42 --- /dev/null +++ b/package/boot/uboot-rockchip/patches/105-nanopc-t4-fix-memory-unstability.patch @@ -0,0 +1,24 @@ +From 445502bc21ecf1b5120faee785cea578b810c759 Mon Sep 17 00:00:00 2001 +From: Lu jicong +Date: Wed, 5 Jul 2023 17:13:55 +0800 +Subject: [PATCH] rockchip: rk3399: nanopc-t4: use 1600MHz sdram config + +Current 1866MHz sdram config is too high for NanoPC-T4. +On this frequency, its lpddr3 sdram becomes unstable, +causing memtest failures and random kernel crashes. + +Signed-off-by: Lu jicong +--- + arch/arm/dts/rk3399-nanopc-t4-u-boot.dtsi | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/arch/arm/dts/rk3399-nanopc-t4-u-boot.dtsi b/arch/arm/dts/rk3399-nanopc-t4-u-boot.dtsi +index 17201bcf41..8b6c9059ab 100644 +--- a/arch/arm/dts/rk3399-nanopc-t4-u-boot.dtsi ++++ b/arch/arm/dts/rk3399-nanopc-t4-u-boot.dtsi +@@ -4,4 +4,4 @@ + */ + + #include "rk3399-nanopi4-u-boot.dtsi" +-#include "rk3399-sdram-lpddr3-samsung-4GB-1866.dtsi" ++#include "rk3399-sdram-lpddr3-4GB-1600.dtsi" From ac9a2d6a3575f7d2864d5013bb2dbf8cb40eeece Mon Sep 17 00:00:00 2001 From: Lu jicong Date: Mon, 24 Jul 2023 15:22:42 +0800 Subject: [PATCH 06/14] rockchip: add FriendlyARM NanoPC T4 support Hardware -------- RockChip RK3399 ARM64 (6 cores) 4GB LPDDR3 RAM 1x 1000 Base-T 1 GPIO LED (status) HDMI 2.0 3.5mm TRRS AV jack Micro-SD slot 16GB eMMC 1x USB 3.0 Port 2x USB 2.0 Port 1x USB Type-C Port 1x M.2 PCI-E Port AP6356S (BCM4356) SDIO WiFi & Bluetooth adapter -------- Note: AP6356S is not supported yet due to the lack of firmware and NVRAM Signed-off-by: Lu jicong --- target/linux/rockchip/image/armv8.mk | 8 ++++++++ .../109-nanopc-t4-add-led-aliases.patch | 16 ++++++++++++++++ .../109-nanopc-t4-add-led-aliases.patch | 16 ++++++++++++++++ 3 files changed, 40 insertions(+) create mode 100644 target/linux/rockchip/patches-5.15/109-nanopc-t4-add-led-aliases.patch create mode 100644 target/linux/rockchip/patches-6.1/109-nanopc-t4-add-led-aliases.patch diff --git a/target/linux/rockchip/image/armv8.mk b/target/linux/rockchip/image/armv8.mk index 063dc6fd64..e8630921a4 100644 --- a/target/linux/rockchip/image/armv8.mk +++ b/target/linux/rockchip/image/armv8.mk @@ -15,6 +15,14 @@ define Device/firefly_roc-rk3328-cc endef TARGET_DEVICES += firefly_roc-rk3328-cc +define Device/friendlyarm_nanopc-t4 + DEVICE_VENDOR := FriendlyARM + DEVICE_MODEL := NanoPC T4 + SOC := rk3399 + IMAGE/sysupgrade.img.gz := boot-common | boot-script | pine64-img | gzip | append-metadata +endef +TARGET_DEVICES += friendlyarm_nanopc-t4 + define Device/friendlyarm_nanopi-r2c DEVICE_VENDOR := FriendlyARM DEVICE_MODEL := NanoPi R2C diff --git a/target/linux/rockchip/patches-5.15/109-nanopc-t4-add-led-aliases.patch b/target/linux/rockchip/patches-5.15/109-nanopc-t4-add-led-aliases.patch new file mode 100644 index 0000000000..1a80dadd48 --- /dev/null +++ b/target/linux/rockchip/patches-5.15/109-nanopc-t4-add-led-aliases.patch @@ -0,0 +1,16 @@ +--- a/arch/arm64/boot/dts/rockchip/rk3399-nanopc-t4.dts ++++ b/arch/arm64/boot/dts/rockchip/rk3399-nanopc-t4.dts +@@ -15,6 +15,13 @@ + model = "FriendlyElec NanoPC-T4"; + compatible = "friendlyarm,nanopc-t4", "rockchip,rk3399"; + ++ aliases { ++ led-boot = &status_led; ++ led-failsafe = &status_led; ++ led-running = &status_led; ++ led-upgrade = &status_led; ++ }; ++ + vcc12v0_sys: vcc12v0-sys { + compatible = "regulator-fixed"; + regulator-always-on; diff --git a/target/linux/rockchip/patches-6.1/109-nanopc-t4-add-led-aliases.patch b/target/linux/rockchip/patches-6.1/109-nanopc-t4-add-led-aliases.patch new file mode 100644 index 0000000000..1a80dadd48 --- /dev/null +++ b/target/linux/rockchip/patches-6.1/109-nanopc-t4-add-led-aliases.patch @@ -0,0 +1,16 @@ +--- a/arch/arm64/boot/dts/rockchip/rk3399-nanopc-t4.dts ++++ b/arch/arm64/boot/dts/rockchip/rk3399-nanopc-t4.dts +@@ -15,6 +15,13 @@ + model = "FriendlyElec NanoPC-T4"; + compatible = "friendlyarm,nanopc-t4", "rockchip,rk3399"; + ++ aliases { ++ led-boot = &status_led; ++ led-failsafe = &status_led; ++ led-running = &status_led; ++ led-upgrade = &status_led; ++ }; ++ + vcc12v0_sys: vcc12v0-sys { + compatible = "regulator-fixed"; + regulator-always-on; From 534eb51ee2f4e38e25d4871f759f9416b145fe83 Mon Sep 17 00:00:00 2001 From: Lu jicong Date: Mon, 24 Jul 2023 16:03:57 +0800 Subject: [PATCH 07/14] linux-firmware: broadcom: package bcm4356 NVRAM for NanoPC T4 Prepare for NanoPC T4 WIFI support. Signed-off-by: Lu jicong --- package/firmware/linux-firmware/broadcom.mk | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/package/firmware/linux-firmware/broadcom.mk b/package/firmware/linux-firmware/broadcom.mk index 48d986e218..4f64b423eb 100644 --- a/package/firmware/linux-firmware/broadcom.mk +++ b/package/firmware/linux-firmware/broadcom.mk @@ -149,6 +149,18 @@ define Package/brcmfmac-nvram-43455-sdio/install endef $(eval $(call BuildPackage,brcmfmac-nvram-43455-sdio)) +Package/brcmfmac-nvram-4356-sdio = $(call Package/firmware-default,Broadcom BCM4356 SDIO NVRAM) +define Package/brcmfmac-nvram-4356-sdio/install + $(INSTALL_DIR) $(1)/lib/firmware/brcm + $(INSTALL_DATA) \ + $(PKG_BUILD_DIR)/brcm/brcmfmac4356-sdio.AP6356S.txt \ + $(1)/lib/firmware/brcm/ + $(LN) \ + brcmfmac4356-sdio.AP6356S.txt \ + $(1)/lib/firmware/brcm/brcmfmac4356-sdio.friendlyarm,nanopc-t4.txt +endef +$(eval $(call BuildPackage,brcmfmac-nvram-4356-sdio)) + Package/brcmfmac-firmware-usb = $(call Package/firmware-default,Broadcom BCM43xx fullmac USB firmware) define Package/brcmfmac-firmware-usb/install $(INSTALL_DIR) $(1)/lib/firmware/brcm From 06d5c773fab8a033d6f3d79baa90a3692cc997ab Mon Sep 17 00:00:00 2001 From: Lu jicong Date: Mon, 24 Jul 2023 16:11:28 +0800 Subject: [PATCH 08/14] rockchip: enable wifi support for NanoPC T4 wifi module: AP6356S (BCM4356) SDIO Signed-off-by: Lu jicong --- package/kernel/mac80211/broadcom.mk | 1 + target/linux/rockchip/image/armv8.mk | 1 + 2 files changed, 2 insertions(+) diff --git a/package/kernel/mac80211/broadcom.mk b/package/kernel/mac80211/broadcom.mk index cf80ad2d32..13da62a6f4 100644 --- a/package/kernel/mac80211/broadcom.mk +++ b/package/kernel/mac80211/broadcom.mk @@ -431,6 +431,7 @@ define KernelPackage/brcmfmac/config bool "Enable SDIO bus interface support" default y if TARGET_bcm27xx default y if TARGET_imx_cortexa7 + default y if TARGET_rockchip default y if TARGET_sunxi default n help diff --git a/target/linux/rockchip/image/armv8.mk b/target/linux/rockchip/image/armv8.mk index e8630921a4..dc977859a6 100644 --- a/target/linux/rockchip/image/armv8.mk +++ b/target/linux/rockchip/image/armv8.mk @@ -20,6 +20,7 @@ define Device/friendlyarm_nanopc-t4 DEVICE_MODEL := NanoPC T4 SOC := rk3399 IMAGE/sysupgrade.img.gz := boot-common | boot-script | pine64-img | gzip | append-metadata + DEVICE_PACKAGES := kmod-brcmfmac brcmfmac-nvram-4356-sdio cypress-firmware-4356-sdio endef TARGET_DEVICES += friendlyarm_nanopc-t4 From 0fe9a8ca94830270820f7a1eb457f5d5d587125d Mon Sep 17 00:00:00 2001 From: Luca Barbato Date: Sun, 23 Jul 2023 22:23:40 +0200 Subject: [PATCH 09/14] kernel: Autoload nvme at preinit time This way is possible to mount nvme extroots. Signed-off-by: Luca Barbato --- package/kernel/linux/modules/block.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package/kernel/linux/modules/block.mk b/package/kernel/linux/modules/block.mk index bdf84e8ae2..4ee3f78f38 100644 --- a/package/kernel/linux/modules/block.mk +++ b/package/kernel/linux/modules/block.mk @@ -505,7 +505,7 @@ define KernelPackage/nvme FILES:= \ $(LINUX_DIR)/drivers/nvme/host/nvme-core.ko \ $(LINUX_DIR)/drivers/nvme/host/nvme.ko - AUTOLOAD:=$(call AutoLoad,30,nvme-core nvme) + AUTOLOAD:=$(call AutoLoad,30,nvme-core nvme,1) endef define KernelPackage/nvme/description From 6b11f0ec83ceb9747dcbb0ffca0882b90da46b59 Mon Sep 17 00:00:00 2001 From: Alexander Friese Date: Wed, 12 Jul 2023 16:46:01 +0200 Subject: [PATCH 10/14] ipq4019: fix support for AVM FRITZ!Repeater 3000 new versions of the device have NAND with 8bit ECC which was not yet supported before. This change removes ECC restrictions. Signed-off-by: Alexander Friese --- .../arch/arm/boot/dts/qcom-ipq4019-fritzrepeater-3000.dts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-fritzrepeater-3000.dts b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-fritzrepeater-3000.dts index 8d88bc1521..41dec72542 100644 --- a/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-fritzrepeater-3000.dts +++ b/target/linux/ipq40xx/files/arch/arm/boot/dts/qcom-ipq4019-fritzrepeater-3000.dts @@ -121,6 +121,9 @@ status = "okay"; nand@0 { + /delete-property/ nand-ecc-strength; + /delete-property/ nand-ecc-step-size; + partitions { compatible = "fixed-partitions"; #address-cells = <1>; From 6ac61dead99ff6b9df00c29b7a858772449718b2 Mon Sep 17 00:00:00 2001 From: Etienne Champetier Date: Mon, 10 Jul 2023 07:56:05 +0200 Subject: [PATCH 11/14] dropbear: add ed25519 for failsafe key At least Fedora and RHEL 9 set RSAMinSize=2048, so when trying to use failsafe, we get 'Bad server host key: Invalid key length' To workaround the issue, we can use: ssh -o RSAMinSize=1024 ... Generating 2048 bits RSA is extremely slow, so add ed25519. We keep RSA 1024 to be as compatible as possible. Signed-off-by: Etienne Champetier --- package/network/services/dropbear/files/dropbear.failsafe | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/package/network/services/dropbear/files/dropbear.failsafe b/package/network/services/dropbear/files/dropbear.failsafe index a98ede459a..97bd12d58a 100755 --- a/package/network/services/dropbear/files/dropbear.failsafe +++ b/package/network/services/dropbear/files/dropbear.failsafe @@ -1,8 +1,9 @@ #!/bin/sh failsafe_dropbear () { - dropbearkey -t rsa -s 1024 -f /tmp/dropbear_failsafe_host_key - dropbear -r /tmp/dropbear_failsafe_host_key <> /dev/null 2>&1 + dropbearkey -t rsa -s 1024 -f /tmp/dropbear_rsa_failsafe_host_key + dropbearkey -t ed25519 -f /tmp/dropbear_ed25519_failsafe_host_key + dropbear -r /tmp/dropbear_rsa_failsafe_host_key -r /tmp/dropbear_ed25519_failsafe_host_key <> /dev/null 2>&1 } boot_hook_add failsafe failsafe_dropbear From f50eb064419cf67854f87469eb6d408399490247 Mon Sep 17 00:00:00 2001 From: Arne Zachlod Date: Wed, 5 Jul 2023 10:55:44 +0200 Subject: [PATCH 12/14] ugps: update to latest HEAD, introduce baudrate 350b960 add support for multi GNSS solutions fb87d0f ugps: add baud rate command line option a8171a0 main.c: -S does not take any options Build-tested: ramips/ltap-2hnd Run-tested: ramips/ltap-2hnd Signed-off-by: Arne Zachlod --- package/utils/ugps/Makefile | 6 +++--- package/utils/ugps/files/ugps.init | 2 ++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/package/utils/ugps/Makefile b/package/utils/ugps/Makefile index 5afba4e0b0..322f0d210d 100644 --- a/package/utils/ugps/Makefile +++ b/package/utils/ugps/Makefile @@ -12,9 +12,9 @@ PKG_RELEASE:=2 PKG_SOURCE_URL=$(PROJECT_GIT)/project/ugps.git PKG_SOURCE_PROTO:=git -PKG_SOURCE_DATE:=2021-06-08 -PKG_SOURCE_VERSION:=5e88403fc0d39ae8a270d2c6c6e9c8a4d5232cf3 -PKG_MIRROR_HASH:=a3dfc2cc6def3b634d8b7cda9139926be3d876cf2faa5251c4821987954442a5 +PKG_SOURCE_DATE:=2023-01-27 +PKG_SOURCE_VERSION:=a8171a07193351a9125024d5c759c0ebd6a6895c +PKG_MIRROR_HASH:=9116c9698c15744bb2e36a7cfd0a73f1609b6932f32ca07da57238aea8a2d5cf PKG_MAINTAINER:=John Crispin PKG_LICENSE:=GPL-2.0+ diff --git a/package/utils/ugps/files/ugps.init b/package/utils/ugps/files/ugps.init index 77c3603066..e702b4ca44 100644 --- a/package/utils/ugps/files/ugps.init +++ b/package/utils/ugps/files/ugps.init @@ -12,6 +12,7 @@ service_triggers() { start_service() { local tty="$(uci get gps.@gps[-1].tty)" + local baudrate="$(uci get gps.@gps[-1].baudrate || echo 0)" local atime="$(uci get gps.@gps[-1].adjust_time)" local disabled="$(uci get gps.@gps[-1].disabled || echo 0)" @@ -29,6 +30,7 @@ start_service() { procd_open_instance procd_set_param command "$PROG" + [ "$baudrate" -eq 0 ] || procd_append_param command "-b ${baudrate}" [ "$atime" -eq 0 ] || procd_append_param command "-a" procd_append_param command "$tty" procd_set_param respawn From 4847a15e87cb9feab91b1252b98f4cd2f8069797 Mon Sep 17 00:00:00 2001 From: John Audia Date: Mon, 24 Jul 2023 19:03:23 -0400 Subject: [PATCH 13/14] kernel: bump 6.1 to 6.1.41 No patches modified; just refresh checksums. Build system: x86/64 Build-tested: x86/64 Run-tested: x86/64 Signed-off-by: John Audia --- include/kernel-6.1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/kernel-6.1 b/include/kernel-6.1 index 634e558f3c..d1628fbb80 100644 --- a/include/kernel-6.1 +++ b/include/kernel-6.1 @@ -1,2 +1,2 @@ -LINUX_VERSION-6.1 = .40 -LINUX_KERNEL_HASH-6.1.40 = 43eafc2197a07dcdcff7a7ef79ac7502061f7c564744e51626bf5fa2e22587f0 \ No newline at end of file +LINUX_VERSION-6.1 = .41 +LINUX_KERNEL_HASH-6.1.41 = 312809a78eea052a08a6580f47b2ed8dd28e5633461d6731febaf3cb1e570bb7 \ No newline at end of file From 13e7a2d19f4545170a8deaab03411bc37182f7c4 Mon Sep 17 00:00:00 2001 From: Florian Eckert Date: Wed, 19 Jul 2023 11:54:25 +0200 Subject: [PATCH 14/14] .gitignore: ignore link if target is included from feed If an out of tree target is included via a feed, then there is a link with the name 'feed' in the target directory. Do not show this link in git. Signed-off-by: Florian Eckert --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index a80cdbbea3..84cfc99770 100644 --- a/.gitignore +++ b/.gitignore @@ -14,6 +14,7 @@ /feeds /feeds.conf /files +/target/linux/feeds /overlay /package/feeds /package/openwrt-packages