From 86e1977c45a72795cda6f086c4f41ecd97a53c98 Mon Sep 17 00:00:00 2001 From: Tianling Shen Date: Fri, 16 Sep 2022 20:18:34 +0800 Subject: [PATCH] rockchip: add NanoPi R4S Enterprise Edition The only diffrence against the standrard edition is that the enterprise one has a built-in EEPROM chip which stores a globally unique MAC address. This patch removed the MAC address hack. Signed-off-by: Tianling Shen --- package/boot/uboot-rockchip/Makefile | 3 +- .../armv8/base-files/etc/board.d/01_leds | 1 + .../armv8/base-files/etc/board.d/02_network | 30 +++------- target/linux/rockchip/image/armv8.mk | 16 ++--- ...kchip-add-EEPROM-node-for-NanoPi-R4S.patch | 31 ---------- ...ip-Add-RK3399-NanoPi-R4S-Enterprise-.patch | 60 +++++++++++++++++++ ...-rockchip-use-system-LED-for-OpenWrt.patch | 2 +- .../105-nanopi-r4s-sd-signalling.patch | 2 +- ...d-OF-node-for-pcie-eth-on-NanoPi-R4S.patch | 2 +- .../900-arm64-boot-add-dts-files.patch | 2 +- 10 files changed, 82 insertions(+), 67 deletions(-) delete mode 100644 target/linux/rockchip/patches-5.15/007-arm64-dts-rockchip-add-EEPROM-node-for-NanoPi-R4S.patch create mode 100644 target/linux/rockchip/patches-5.15/007-v6.1-arm64-dts-rockchip-Add-RK3399-NanoPi-R4S-Enterprise-.patch diff --git a/package/boot/uboot-rockchip/Makefile b/package/boot/uboot-rockchip/Makefile index be4cc70f80..7edb8c2945 100644 --- a/package/boot/uboot-rockchip/Makefile +++ b/package/boot/uboot-rockchip/Makefile @@ -75,7 +75,8 @@ define U-Boot/nanopi-r4s-rk3399 BUILD_SUBTARGET:=armv8 NAME:=NanoPi R4S BUILD_DEVICES:= \ - friendlyarm_nanopi-r4s + friendlyarm_nanopi-r4s \ + friendlyarm_nanopi-r4s-enterprise DEPENDS:=+PACKAGE_u-boot-nanopi-r4s-rk3399:arm-trusted-firmware-rk3399 PKG_BUILD_DEPENDS:=arm-trusted-firmware-rockchip-vendor ATF:=rk3399_bl31_v1.35.elf diff --git a/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds b/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds index d82e47cf53..20bc834b98 100644 --- a/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds +++ b/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds @@ -11,6 +11,7 @@ case $board in friendlyarm,nanopi-r2c|\ friendlyarm,nanopi-r2s|\ friendlyarm,nanopi-r4s|\ +friendlyarm,nanopi-r4s-enterprise|\ xunlong,orangepi-r1-plus|\ xunlong,orangepi-r1-plus-lts) ucidef_set_led_netdev "wan" "WAN" "green:wan" "eth0" diff --git a/target/linux/rockchip/armv8/base-files/etc/board.d/02_network b/target/linux/rockchip/armv8/base-files/etc/board.d/02_network index 32cdea7df1..7cabe466db 100644 --- a/target/linux/rockchip/armv8/base-files/etc/board.d/02_network +++ b/target/linux/rockchip/armv8/base-files/etc/board.d/02_network @@ -13,6 +13,7 @@ rockchip_setup_interfaces() friendlyarm,nanopi-r2c|\ friendlyarm,nanopi-r2s|\ friendlyarm,nanopi-r4s|\ + friendlyarm,nanopi-r4s-enterprise|\ xunlong,orangepi-r1-plus|\ xunlong,orangepi-r1-plus-lts) ucidef_set_interfaces_lan_wan 'eth1' 'eth0' @@ -32,27 +33,6 @@ generate_mac_from_mmc_cid() echo "$(macaddr_unsetbit_mc "$(macaddr_setbit_la "${mac_base}")")" } -nanopi_r4s_get_mac() -{ - local interface=$1 - local eeprom_path="/sys/bus/i2c/devices/2-0051/eeprom" - local address - - if [ -f "$eeprom_path" ]; then - address=$(get_mac_binary "$eeprom_path" 0xfa) - if [ "$interface" = "lan" ]; then - address=$(macaddr_setbit_la "$address") - fi - else - address=$(generate_mac_from_mmc_cid mmcblk1) - if [ "$interface" = "lan" ]; then - address=$(macaddr_add "$address" 1) - fi - fi - - echo "$address" -} - rockchip_setup_macs() { local board="$1" @@ -68,8 +48,12 @@ rockchip_setup_macs() lan_mac=$(macaddr_add "$wan_mac" 1) ;; friendlyarm,nanopi-r4s) - wan_mac=$(nanopi_r4s_get_mac wan) - lan_mac=$(nanopi_r4s_get_mac lan) + wan_mac=$(generate_mac_from_mmc_cid mmcblk1) + lan_mac=$(macaddr_add "$address" 1) + ;; + friendlyarm,nanopi-r4s-enterprise) + wan_mac=$(get_mac_binary "/sys/bus/i2c/devices/2-0051/eeprom" 0xfa) + lan_mac=$(macaddr_setbit_la "$wan_mac") ;; xunlong,orangepi-r1-plus|\ xunlong,orangepi-r1-plus-lts) diff --git a/target/linux/rockchip/image/armv8.mk b/target/linux/rockchip/image/armv8.mk index a06ed371b0..7016450605 100644 --- a/target/linux/rockchip/image/armv8.mk +++ b/target/linux/rockchip/image/armv8.mk @@ -24,12 +24,9 @@ endef TARGET_DEVICES += friendlyarm_nanopi-r2c define Device/friendlyarm_nanopi-r2s - DEVICE_VENDOR := FriendlyARM + $(Device/friendlyarm_nanopi-r2c) DEVICE_MODEL := NanoPi R2S - SOC := rk3328 UBOOT_DEVICE_NAME := nanopi-r2s-rk3328 - IMAGE/sysupgrade.img.gz := boot-common | boot-script | pine64-bin | gzip | append-metadata - DEVICE_PACKAGES := kmod-usb-net-rtl8152 endef TARGET_DEVICES += friendlyarm_nanopi-r2s @@ -43,6 +40,12 @@ define Device/friendlyarm_nanopi-r4s endef TARGET_DEVICES += friendlyarm_nanopi-r4s +define Device/friendlyarm_nanopi-r4s-enterprise + $(Device/friendlyarm_nanopi-r4s) + DEVICE_MODEL := NanoPi R4S Enterprise Edition +endef +TARGET_DEVICES += friendlyarm_nanopi-r4s-enterprise + define Device/pine64_rockpro64 DEVICE_VENDOR := Pine64 DEVICE_MODEL := RockPro64 @@ -75,11 +78,8 @@ endef TARGET_DEVICES += xunlong_orangepi-r1-plus define Device/xunlong_orangepi-r1-plus-lts - DEVICE_VENDOR := Xunlong + $(Device/xunlong_orangepi-r1-plus) DEVICE_MODEL := Orange Pi R1 Plus LTS - SOC := rk3328 UBOOT_DEVICE_NAME := orangepi-r1-plus-lts-rk3328 - IMAGE/sysupgrade.img.gz := boot-common | boot-script | pine64-bin | gzip | append-metadata - DEVICE_PACKAGES := kmod-usb-net-rtl8152 endef TARGET_DEVICES += xunlong_orangepi-r1-plus-lts diff --git a/target/linux/rockchip/patches-5.15/007-arm64-dts-rockchip-add-EEPROM-node-for-NanoPi-R4S.patch b/target/linux/rockchip/patches-5.15/007-arm64-dts-rockchip-add-EEPROM-node-for-NanoPi-R4S.patch deleted file mode 100644 index 038554865b..0000000000 --- a/target/linux/rockchip/patches-5.15/007-arm64-dts-rockchip-add-EEPROM-node-for-NanoPi-R4S.patch +++ /dev/null @@ -1,31 +0,0 @@ -From af20b3384e8723077cc6484160b0cf4e9be321de Mon Sep 17 00:00:00 2001 -From: Tianling Shen -Date: Mon, 7 Jun 2021 15:45:37 +0800 -Subject: [PATCH] arm64: dts: rockchip: add EEPROM node for NanoPi R4S - -NanoPi R4S has a EEPROM attached to the 2nd I2C bus (U92), which -stores the MAC address. - -Signed-off-by: Tianling Shen ---- - arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts | 9 +++++++++ - 1 file changed, 9 insertions(+) - ---- a/arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts -+++ b/arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts -@@ -68,6 +68,15 @@ - status = "disabled"; - }; - -+&i2c2 { -+ eeprom@51 { -+ compatible = "microchip,24c02", "atmel,24c02"; -+ reg = <0x51>; -+ pagesize = <16>; -+ size = <256>; -+ }; -+}; -+ - &i2c4 { - status = "disabled"; - }; diff --git a/target/linux/rockchip/patches-5.15/007-v6.1-arm64-dts-rockchip-Add-RK3399-NanoPi-R4S-Enterprise-.patch b/target/linux/rockchip/patches-5.15/007-v6.1-arm64-dts-rockchip-Add-RK3399-NanoPi-R4S-Enterprise-.patch new file mode 100644 index 0000000000..825601c4b2 --- /dev/null +++ b/target/linux/rockchip/patches-5.15/007-v6.1-arm64-dts-rockchip-Add-RK3399-NanoPi-R4S-Enterprise-.patch @@ -0,0 +1,60 @@ +From fd573b2bf2d2cf61e835ea68bbaa34c71d4a70d7 Mon Sep 17 00:00:00 2001 +From: Tianling Shen +Date: Thu, 15 Sep 2022 10:25:11 +0800 +Subject: [PATCH] arm64: dts: rockchip: Add RK3399 NanoPi R4S Enterprise + Edition + +The only diffrence against the standrard edition is that the enterprise +one has a built-in EEPROM chip which stores a globally unique MAC address. + +Signed-off-by: Tianling Shen +Link: https://lore.kernel.org/r/20220915022511.4267-2-cnsztl@gmail.com +Signed-off-by: Heiko Stuebner +--- + arch/arm64/boot/dts/rockchip/Makefile | 1 + + .../rockchip/rk3399-nanopi-r4s-enterprise.dts | 29 +++++++++++++++++++ + 2 files changed, 30 insertions(+) + create mode 100644 arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s-enterprise.dts + +--- a/arch/arm64/boot/dts/rockchip/Makefile ++++ b/arch/arm64/boot/dts/rockchip/Makefile +@@ -37,6 +37,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-na + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-nanopi-m4b.dtb + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-nanopi-neo4.dtb + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-nanopi-r4s.dtb ++dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-nanopi-r4s-enterprise.dtb + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-orangepi.dtb + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-pinebook-pro.dtb + dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-puma-haikou.dtb +--- /dev/null ++++ b/arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s-enterprise.dts +@@ -0,0 +1,29 @@ ++// SPDX-License-Identifier: (GPL-2.0+ OR MIT) ++ ++/dts-v1/; ++#include "rk3399-nanopi-r4s.dts" ++ ++/ { ++ model = "FriendlyElec NanoPi R4S Enterprise Edition"; ++ compatible = "friendlyarm,nanopi-r4s-enterprise", "rockchip,rk3399"; ++}; ++ ++&gmac { ++ nvmem-cells = <&mac_address>; ++ nvmem-cell-names = "mac-address"; ++}; ++ ++&i2c2 { ++ eeprom@51 { ++ compatible = "microchip,24c02", "atmel,24c02"; ++ reg = <0x51>; ++ pagesize = <16>; ++ size = <256>; ++ #address-cells = <1>; ++ #size-cells = <1>; ++ ++ mac_address: mac-address@fa { ++ reg = <0xfa 0x06>; ++ }; ++ }; ++}; diff --git a/target/linux/rockchip/patches-5.15/100-rockchip-use-system-LED-for-OpenWrt.patch b/target/linux/rockchip/patches-5.15/100-rockchip-use-system-LED-for-OpenWrt.patch index 2c0db2c850..dce3e5b942 100644 --- a/target/linux/rockchip/patches-5.15/100-rockchip-use-system-LED-for-OpenWrt.patch +++ b/target/linux/rockchip/patches-5.15/100-rockchip-use-system-LED-for-OpenWrt.patch @@ -29,7 +29,7 @@ Signed-off-by: David Bauer chosen { stdout-path = "serial2:1500000n8"; }; -@@ -49,18 +49,18 @@ +@@ -49,18 +56,18 @@ lan_led: led-0 { gpios = <&gpio2 RK_PB7 GPIO_ACTIVE_HIGH>; diff --git a/target/linux/rockchip/patches-5.15/105-nanopi-r4s-sd-signalling.patch b/target/linux/rockchip/patches-5.15/105-nanopi-r4s-sd-signalling.patch index 3065687291..57107b0ee1 100644 --- a/target/linux/rockchip/patches-5.15/105-nanopi-r4s-sd-signalling.patch +++ b/target/linux/rockchip/patches-5.15/105-nanopi-r4s-sd-signalling.patch @@ -12,7 +12,7 @@ Signed-off-by: David Bauer --- a/arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts +++ b/arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts -@@ -137,6 +137,11 @@ +@@ -119,6 +119,11 @@ status = "disabled"; }; diff --git a/target/linux/rockchip/patches-5.15/106-arm64-rockchip-add-OF-node-for-pcie-eth-on-NanoPi-R4S.patch b/target/linux/rockchip/patches-5.15/106-arm64-rockchip-add-OF-node-for-pcie-eth-on-NanoPi-R4S.patch index d76563efcf..abbb886544 100644 --- a/target/linux/rockchip/patches-5.15/106-arm64-rockchip-add-OF-node-for-pcie-eth-on-NanoPi-R4S.patch +++ b/target/linux/rockchip/patches-5.15/106-arm64-rockchip-add-OF-node-for-pcie-eth-on-NanoPi-R4S.patch @@ -1,6 +1,6 @@ --- a/arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts +++ b/arch/arm64/boot/dts/rockchip/rk3399-nanopi-r4s.dts -@@ -101,6 +101,19 @@ +@@ -83,6 +83,19 @@ max-link-speed = <1>; num-lanes = <1>; vpcie3v3-supply = <&vcc3v3_sys>; diff --git a/target/linux/rockchip/patches-5.15/900-arm64-boot-add-dts-files.patch b/target/linux/rockchip/patches-5.15/900-arm64-boot-add-dts-files.patch index 604e590d45..6db2f49675 100644 --- a/target/linux/rockchip/patches-5.15/900-arm64-boot-add-dts-files.patch +++ b/target/linux/rockchip/patches-5.15/900-arm64-boot-add-dts-files.patch @@ -11,7 +11,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-rock64.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-rock-pi-e.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3328-roc-cc.dtb -@@ -51,4 +54,5 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-ro +@@ -52,4 +55,5 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-ro dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-sapphire.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-sapphire-excavator.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399pro-rock-pi-n10.dtb