Skip to content

Commit b9ea5c6

Browse files
committed
Add Radxa E54C
1 parent b1e7871 commit b9ea5c6

23 files changed

+477
-2
lines changed

files/balethirq.pl

+7-1
Original file line numberDiff line numberDiff line change
@@ -215,8 +215,14 @@ ()
215215
}
216216

217217
sub get_eth_list {
218+
my $board = &get_boardinfo;
218219
chdir("/sys/class/net");
219-
my @eths = <eth*>;
220+
my @eths;
221+
if($board =~ m/Radxa E54C/i) {
222+
@eths = <eth0>;
223+
} else {
224+
@eths = <eth*>;
225+
};
220226
return @eths;
221227
}
222228

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
verbosity=7
2+
bootlogo=true
3+
fdtfile=rockchip/rk3588s-radxa-e54c.dtb
4+
rootdev=/dev/mmcblk0p2
5+
rootfstype=btrfs
6+
rootflags=compress=zstd:6
7+
earlycon=on
8+
console=serial
9+
consoleargs=console=ttyFIQ0,1500000n8 console=ttyS2,1500000n8 console=tty1
10+
usbstoragequirks=0x2537:0x1066:u,0x2537:0x1068:u
11+
docker_optimizations=on
12+
extraargs=
13+
extraboardargs=net.ifnames=0
14+
overlay_prefix=rk3588
15+
overlays=
16+
# for rk3582, rkvdec and rkvenc are disabled
17+
# if the soc is rk3588s, you can enable rkvdec0/rkvdec1/rkvenc0/rkvenc1 by overlays
18+
#overlays=rkvdec0 rkvdec1 rkvenc0 rkvenc1
19+
user_overlays=
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
#-----------------------------------------------------------------
2+
# Armbian first run configuration
3+
# Set optional end user configuration
4+
# - Rename this file from /boot/armbian_first_run.txt.template to /boot/armbian_first_run.txt
5+
# - Settings below will be applied only on 1st run of Armbian
6+
#-----------------------------------------------------------------
7+
8+
#-----------------------------------------------------------------
9+
# General:
10+
# 1 = delete this file, after first run setup is completed.
11+
12+
FR_general_delete_this_file_after_completion=1
13+
14+
#-----------------------------------------------------------------
15+
#Networking:
16+
# Change default network settings
17+
# Set to 1 to apply any network related settings below
18+
19+
FR_net_change_defaults=0
20+
21+
# Enable WiFi or Ethernet.
22+
# NB: If both are enabled, WiFi will take priority and Ethernet will be disabled.
23+
24+
FR_net_ethernet_enabled=1
25+
FR_net_wifi_enabled=0
26+
27+
#Enter your WiFi creds
28+
# SECURITY WARN: Your wifi keys will be stored in plaintext, no encryption.
29+
30+
FR_net_wifi_ssid='MySSID'
31+
FR_net_wifi_key='MyWiFiKEY'
32+
33+
# Country code to enable power ratings and channels for your country. eg: GB US DE | https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
34+
35+
FR_net_wifi_countrycode='GB'
36+
37+
#If you want to use a static ip, set it here
38+
39+
FR_net_use_static=0
40+
FR_net_static_ip='192.168.0.100'
41+
FR_net_static_mask='255.255.255.0'
42+
FR_net_static_gateway='192.168.0.1'
43+
FR_net_static_dns='8.8.8.8 8.8.4.4' #2 entries max, seperated by a space.
44+
#-----------------------------------------------------------------
37.6 KB
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
# DO NOT EDIT THIS FILE
2+
#
3+
# Please edit /boot/armbianEnv.txt to set supported parameters
4+
#
5+
6+
setenv load_addr "0x9000000"
7+
setenv overlay_error "false"
8+
# default values
9+
setenv rootdev "/dev/mmcblk0p1"
10+
setenv verbosity "1"
11+
setenv console "both"
12+
setenv bootlogo "false"
13+
setenv rootfstype "ext4"
14+
setenv rootflags "rw,errors=remount-ro"
15+
setenv docker_optimizations "on"
16+
setenv earlycon "off"
17+
18+
echo "Boot script loaded from ${devtype} ${devnum}"
19+
20+
if test -e ${devtype} ${devnum} ${prefix}armbianEnv.txt; then
21+
load ${devtype} ${devnum} ${load_addr} ${prefix}armbianEnv.txt
22+
env import -t ${load_addr} ${filesize}
23+
fi
24+
25+
if test "${logo}" = "disabled"; then setenv logo "logo.nologo"; fi
26+
27+
if test "${console}" = "display" || test "${console}" = "both"; then setenv consoleargs "console=tty1"; fi
28+
if test "${console}" = "serial" || test "${console}" = "both"; then setenv consoleargs "console=ttyS2,1500000 ${consoleargs}"; fi
29+
if test "${earlycon}" = "on"; then setenv consoleargs "earlycon ${consoleargs}"; fi
30+
if test "${bootlogo}" = "true"; then setenv consoleargs "bootsplash.bootfile=bootsplash.armbian ${consoleargs}"; fi
31+
32+
# get PARTUUID of first partition on SD/eMMC the boot script was loaded from
33+
# if test "${devtype}" = "mmc"; then part uuid mmc ${devnum}:1 partuuid; fi
34+
# get PARTUUID of first partition on current boot device the boot script was loaded from
35+
part uuid ${devtype} ${devnum}:1 partuuid
36+
37+
setenv bootargs "root=${rootdev} rootwait rootfstype=${rootfstype} rootflags=${rootflags} ${consoleargs} consoleblank=0 loglevel=${verbosity} ubootpart=${partuuid} usb-storage.quirks=${usbstoragequirks} ${extraargs} ${extraboardargs}"
38+
39+
if test "${docker_optimizations}" = "on"; then setenv bootargs "${bootargs} cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory swapaccount=1"; fi
40+
41+
load ${devtype} ${devnum} ${ramdisk_addr_r} ${prefix}uInitrd
42+
load ${devtype} ${devnum} ${kernel_addr_r} ${prefix}Image
43+
44+
load ${devtype} ${devnum} ${fdt_addr_r} ${prefix}dtb/${fdtfile}
45+
fdt addr ${fdt_addr_r}
46+
fdt resize 65536
47+
for overlay_file in ${overlays}; do
48+
if load ${devtype} ${devnum} ${load_addr} ${prefix}dtb/rockchip/overlay/${overlay_prefix}-${overlay_file}.dtbo; then
49+
echo "Applying kernel provided DT overlay ${overlay_prefix}-${overlay_file}.dtbo"
50+
fdt apply ${load_addr} || setenv overlay_error "true"
51+
fi
52+
done
53+
for overlay_file in ${user_overlays}; do
54+
if load ${devtype} ${devnum} ${load_addr} ${prefix}overlay-user/${overlay_file}.dtbo; then
55+
echo "Applying user provided DT overlay ${overlay_file}.dtbo"
56+
fdt apply ${load_addr} || setenv overlay_error "true"
57+
fi
58+
done
59+
if test "${overlay_error}" = "true"; then
60+
echo "Error applying DT overlays, restoring original DT"
61+
load ${devtype} ${devnum} ${fdt_addr_r} ${prefix}dtb/${fdtfile}
62+
else
63+
if load ${devtype} ${devnum} ${load_addr} ${prefix}dtb/rockchip/overlay/${overlay_prefix}-fixup.scr; then
64+
echo "Applying kernel provided DT fixup script (${overlay_prefix}-fixup.scr)"
65+
source ${load_addr}
66+
fi
67+
if test -e ${devtype} ${devnum} ${prefix}fixup.scr; then
68+
load ${devtype} ${devnum} ${load_addr} ${prefix}fixup.scr
69+
echo "Applying user provided fixup script (fixup.scr)"
70+
source ${load_addr}
71+
fi
72+
fi
73+
booti ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r}
74+
75+
# Recompile with:
76+
# mkimage -C none -A arm -T script -n 'flatmax load script' -d /boot/boot.cmd /boot/boot.scr
3.33 KB
Binary file not shown.

files/cpustat

+10-1
Original file line numberDiff line numberDiff line change
@@ -168,13 +168,20 @@ sub get_eth_operstate {
168168
sub get_eth_driver {
169169
my $eth = shift;
170170
my $fh;
171-
open $fh, "<", "$eth/device/uevent" or warn $!;
171+
if (-d "$eth/device") {
172+
open $fh, "<", "$eth/device/uevent" or warn $eth;
173+
} elsif(-f "$eth/uevent") {
174+
open $fh, "<", "$eth/uevent" or warn $eth;
175+
}
172176
my $driver;
173177
while(<$fh>) {
174178
chomp;
175179
if(/^DRIVER=/) {
176180
$driver = (split /=/, $_)[-1];
177181
last;
182+
} elsif(/^DEVTYPE=/) {
183+
$driver = (split /=/, $_)[-1];
184+
last;
178185
}
179186
}
180187
close $fh;
@@ -249,6 +256,8 @@ sub get_ethlist() {
249256
return reverse sort (</sys/class/net/e[tn]*>);
250257
} elsif($board =~ m/NLnet Watermelon Pi/i) {
251258
return reverse sort (</sys/class/net/e[tn]*>);
259+
} elsif($board =~ m/Radxa E54C/i) {
260+
return reverse sort (</sys/class/net/eth0\.?>);
252261
} else {
253262
return sort (</sys/class/net/e[tn]*>);
254263
}

files/openwrt-update-rockchip

+8
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,14 @@ case $MYDEVICE_NAME in
257257
fi
258258
SOC="e52c"
259259
;;
260+
"Radxa E54C")
261+
if [ -n "${CURRENT_FDTFILE}" ]; then
262+
MYDTB_FDTFILE="${CURRENT_FDTFILE}"
263+
else
264+
MYDTB_FDTFILE="rk3588s-radxa-e54c.dtb"
265+
fi
266+
SOC="e54c"
267+
;;
260268
*) #default
261269
if [ -f "/etc/flippy-openwrt-release" ]; then
262270
source /etc/flippy-openwrt-release 2>/dev/null

files/rk3588s/e54c/balance_irq

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
xhci-hcd:usb1 5

files/rk3588s/e54c/board.d/00_model

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# Copyright (C) 2015 OpenWrt.org
2+
# Copyright (C) 2016 Yousong Zhou <[email protected]>
3+
4+
. /lib/functions/uci-defaults.sh
5+
6+
board_config_update
7+
8+
ucidef_set_board_id "radxa,e54c"
9+
ucidef_set_model_name "Radxa E54C"
10+
11+
board_config_flush
12+
13+
exit 0

files/rk3588s/e54c/board.d/01_led

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
#!/bin/sh
2+
#
3+
# Copyright (C) 2015 OpenWrt.org
4+
#
5+
6+
. /lib/functions/uci-defaults.sh
7+
8+
board_config_update
9+
10+
case "$(board_name)" in
11+
radxa,e54c) ucidef_set_led_netdev "lan" "LAN" "green:lan1" "eth0.1"
12+
ucidef_set_led_netdev "lan" "LAN" "green:lan2" "eth0.1"
13+
ucidef_set_led_netdev "lan" "LAN" "green:lan3" "eth0.1"
14+
ucidef_set_led_netdev "wan" "WAN" "green:wan" "eth0.2"
15+
;;
16+
esac
17+
18+
board_config_flush
19+
20+
exit 0
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
# The phy interfaces for Radxa E54C
2+
# eth0.1 lan (switch port 0-2)
3+
# eth0.2 wan (switch port 3)
4+
# cpu-port: 6
5+
6+
. /lib/functions/uci-defaults.sh
7+
. /lib/functions/system.sh
8+
9+
board_config_update
10+
11+
generate_mac()
12+
{
13+
# https://gist.githubusercontent.com/aallan/b4bb86db86079509e6159810ae9bd3e4/raw/846ae1b646ab0f4d646af9115e47365f4118e5f6/mac-vendor.txt
14+
# The MAC address range registered by realtek manufacturers is as follows:
15+
local mac_grp_0="00:20:18:"
16+
local mac_grp_1="00:4f:49:"
17+
local mac_grp_2="00:60:52:"
18+
local mac_grp_3="00:e0:4c:"
19+
local mac_grp_4="52:54:00:"
20+
local mac_grp_5="52:54:ab:"
21+
local mac_grp_cnt=6
22+
23+
# get the cpu/emmc/sd unique id
24+
local sd_hash
25+
local cpusn=$(cat /proc/cpuinfo | grep 'Serial' | awk '{print $3}')
26+
if [ -n "$cpusn" ];then
27+
sd_hash=$(echo $cpusn | sha256sum | cut -f1)
28+
elif [ -f "/sys/class/block/mmcblk1/device/cid" ];then
29+
sd_hash=$(sha256sum /sys/class/block/mmcblk1/device/cid | cut -f1)
30+
elif [ -f "/sys/class/block/mmcblk0/device/cid" ];then
31+
sd_hash=$(sha256sum /sys/class/block/mmcblk0/device/cid | cut -f1)
32+
else
33+
sd_hash=$(dd if=/dev/zero bs=1 count=68 | sha256sum | cut -f1)
34+
fi
35+
36+
# get mac address head
37+
local dice=${mac_grp_cnt}$(echo $sd_hash | tr -d '[a-f]' | cut -b 1-6)
38+
local idx=$((dice % mac_grp_cnt))
39+
eval local mac_head="\$mac_grp_${idx}"
40+
41+
# get mac address tail
42+
# sd_hash length: max 64
43+
local mac_tail=$(echo $sd_hash|cut -b 16-17)":"$(echo $sd_hash|cut -b 26-27)":"$(echo $sd_hash|cut -b 42-43)
44+
45+
echo "${mac_head}${mac_tail}"
46+
}
47+
48+
swap_interface()
49+
{
50+
local eth_a=$1
51+
local eth_b=$2
52+
ip link set dev $eth_a down
53+
ip link set dev $eth_b down
54+
ip link set $eth_a name eth-rename-tmp
55+
ip link set $eth_b name $eth_a
56+
ip link set eth-rename-tmp name $eth_b
57+
ip link set dev $eth_a up
58+
ip link set dev $eth_b up
59+
}
60+
61+
# Init LAN and WAN
62+
json_is_a network object && exit 0
63+
64+
LAN_MAC=$(generate_mac)
65+
WAN_MAC=$(macaddr_add $LAN_MAC +1)
66+
67+
case "$(board_name)" in
68+
radxa,e54c) ucidef_add_switch "switch0" "0:lan" "1:lan" "2:lan" "3:wan" "6t@eth0"
69+
ucidef_set_interface_macaddr "lan" $LAN_MAC
70+
ucidef_set_interface_macaddr "wan" $WAN_MAC
71+
;;
72+
*) ucidef_set_interface_lan "eth0"
73+
ucidef_set_interface_macaddr "lan" $LAN_MAC
74+
;;
75+
esac
76+
77+
board_config_flush
78+
79+
exit 0

files/rk3588s/e54c/daemon.json

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"bip": "10.35.88.1/24",
3+
"data-root": "/mnt/mmcblk0p4/docker/",
4+
"log-level": "warn",
5+
"log-driver": "json-file",
6+
"log-opts": {
7+
"max-size": "10m",
8+
"max-file": "5"
9+
},
10+
"registry-mirrors": [
11+
"https://mirror.baidubce.com/",
12+
"https://hub-mirror.c.163.com"
13+
]
14+
}

files/rk3588s/e54c/idbloader.img

308 KB
Binary file not shown.

files/rk3588s/e54c/mkbootscr.sh

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#!/bin/bash
2+
#./mkimage -C none -A arm -T script -n 'flatmax load script' -d ../../bootfiles/rockchip/rk3588s/rock5c/boot.cmd ../../bootfiles/rockchip/rk3588s/rock5c/boot.scr
3+
mkimage -C none -A arm -T script -n 'flatmax load script' -d ../../bootfiles/rockchip/rk3588s/e54c/boot.cmd ../../bootfiles/rockchip/rk3588s/e54c/boot.scr

files/rk3588s/e54c/modules.d/rtl8367b

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
rtl8367b
Binary file not shown.

files/rk3588s/e54c/u-boot.itb

1.39 MB
Binary file not shown.

files/rk3588s/modules.d/rk_gpu

+1
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
bifrost_kbase
2+
panthor

files/rk3588s/modules.d/rk_npu

+1
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
rknpu
2+
rocket

files/update-e52c-openwrt.sh

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
openwrt-update-rockchip

files/update-e54c-openwrt.sh

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
openwrt-update-rockchip

0 commit comments

Comments
 (0)