From b7a9a183fb44f77d9f95c20bcec1db0edea9e206 Mon Sep 17 00:00:00 2001 From: David Bauer Date: Thu, 16 Jul 2020 10:08:57 +0200 Subject: rockchip: add NanoPi R2S support Hardware -------- RockChip RK3328 ARM64 (4 cores) 1GB DDR4 RAM 2x 1000 Base-T 3 LEDs (LAN / WAN / SYS) 1 Button (Reset) Micro-SD slot USB 2.0 Port Installation ------------ Uncompress the OpenWrt sysupgrade and write it to a micro SD card using dd. MAC-address ----------- The vendor code supports reading a MAC address from an EEPROM connected via i2c0 of the SoC. The EEPROM (address 0x51) should contain the MAC address in binary at offset 0xfa. However, my two units didn't come with such an EEPROM soldered on. The EEPROM should be placed between the SoC and the GPIO pins on the board. (U10) Generating rendom MAC addresses works around this issue. Otherwise, all boards running the same image have identical MAC addresses. Signed-off-by: David Bauer --- .../rockchip/armv8/base-files/etc/board.d/01_leds | 20 +++++++++++ .../armv8/base-files/etc/board.d/02_network | 42 ++++++++++++++++++---- 2 files changed, 56 insertions(+), 6 deletions(-) create mode 100755 target/linux/rockchip/armv8/base-files/etc/board.d/01_leds (limited to 'target/linux/rockchip/armv8/base-files/etc') 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 new file mode 100755 index 0000000000..bba3e2aa56 --- /dev/null +++ b/target/linux/rockchip/armv8/base-files/etc/board.d/01_leds @@ -0,0 +1,20 @@ +#!/bin/sh + +. /lib/functions/leds.sh +. /lib/functions/uci-defaults.sh + +board=$(board_name) +boardname="${board##*,}" + +board_config_update + +case $board in +friendlyarm,nanopi-r2s) + ucidef_set_led_netdev "wan" "WAN" "$boardname:green:wan" "eth0" + ucidef_set_led_netdev "lan" "LAN" "$boardname:green:lan" "eth1" + ;; +esac + +board_config_flush + +exit 0 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 c5adda1706..e129fd6a67 100755 --- a/target/linux/rockchip/armv8/base-files/etc/board.d/02_network +++ b/target/linux/rockchip/armv8/base-files/etc/board.d/02_network @@ -1,15 +1,45 @@ #!/bin/sh . /lib/functions/uci-defaults.sh +. /lib/functions/system.sh -board_config_update +rockchip_setup_interfaces() +{ + local board="$1" + + case "$board" in + friendlyarm,nanopi-r2s) + ucidef_set_interfaces_lan_wan 'eth1' 'eth0' + ;; + *) + ucidef_set_interface_lan 'eth0' + ;; + esac +} + +rockchip_setup_macs() +{ + local board="$1" + local lan_mac="" + local wan_mac="" + local label_mac="" -case "$(board_name)" in -*) - ucidef_set_interface_lan 'eth0' - ;; -esac + case "$board" in + friendlyarm,nanopi-r2s) + wan_mac=$(macaddr_random) + lan_mac=$(macaddr_add "$wan_mac" +1) + ;; + esac + [ -n "$lan_mac" ] && ucidef_set_interface_macaddr "lan" $lan_mac + [ -n "$wan_mac" ] && ucidef_set_interface_macaddr "wan" $wan_mac + [ -n "$label_mac" ] && ucidef_set_label_macaddr $label_mac +} + +board_config_update +board=$(board_name) +rockchip_setup_interfaces $board +rockchip_setup_macs $board board_config_flush exit 0 -- cgit v1.2.3