Skip to content
Draft
Show file tree
Hide file tree
Changes from 21 commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
6314f1c
add recomputer rk3576 devkit support
ackPeng Apr 14, 2026
9d072f0
add recomputer rk3588 devkit support
ackPeng Apr 14, 2026
76ffeea
change deb download link
ackPeng Apr 14, 2026
7ea5ebe
update seeed_armbian_extension url
ackPeng Apr 14, 2026
c0499e2
add boot from eeprom for recomputer rk35xx
ackPeng Apr 15, 2026
43fc048
add uboot i2c config for recomputer rk35xx
ackPeng Apr 16, 2026
0560360
drop firefox-esr from recomputer noble builds
Pillar1989 Apr 14, 2026
54c3842
armbian: fix rk3576 X11 KMS node
Pillar1989 Apr 17, 2026
2c0dc1a
armbian: tune rk3576 recomputer fan curve
Pillar1989 Apr 17, 2026
5269901
fix ab ota on disk encryption
ackPeng Apr 17, 2026
738bbb1
fix ab ota on disk encryption
ackPeng Apr 17, 2026
f087430
armbian: harden recomputer rk35xx images
Pillar1989 Apr 22, 2026
58f96b7
armbian: refactor reComputer board configs into shared common.inc
Pillar1989 Apr 23, 2026
a0f2190
armbian: add Restart=on-failure to serial-getty@ttyGS0
Pillar1989 Apr 24, 2026
d4f9b29
armbian: use bind-dynamic for dnsmasq on usb0
Pillar1989 Apr 24, 2026
7cec4df
armbian: fix serial-getty@ttyGS0 BindsTo dependency failure
Pillar1989 Apr 24, 2026
cd82c6c
Merge branch 'seeed-main'
Pillar1989 Apr 24, 2026
de75e25
armbian: clarify BT UART comment in aic8800 wireless hook
Pillar1989 Apr 24, 2026
ba8e369
armbian: use board-level BT_UART variable for AIC8800 bluetooth
Pillar1989 Apr 24, 2026
1145490
add BOARD_VENDOR for seed recomputer rk35xx
ackPeng Apr 24, 2026
612f524
change recomputer rk35xx config file structure
ackPeng Apr 24, 2026
893d8f5
armbian: fix DTS issues raised in PR review
Pillar1989 Apr 25, 2026
18dd4c0
armbian: harden download helper and fix eval injection in usb-automount
Pillar1989 Apr 25, 2026
7af7c1b
armbian: set BOARD_MAINTAINER to Pillar1989
Pillar1989 Apr 25, 2026
3f3a384
armbian: move Seeed extension clone/pull to post_family_config hook
Pillar1989 Apr 25, 2026
afbfda0
armbian: install Morse tools via dpkg instead of raw extraction
Pillar1989 Apr 25, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
106 changes: 106 additions & 0 deletions config/boards/recomputer-rk3576-devkit.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,106 @@
#Seeed Studio Rockchip RK3576 octa core 4/8/16GB RAM SoC
BOARD_NAME="reComputer RK3576 Devkit"
BOARDFAMILY="rk35xx"
BOOT_SOC="rk3576"
BOARD_MAINTAINER="Seeed Studio"
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

a named individual as “maintainer” with GitHub ID must be preset in the BOARD_MAINTAINER within Board Configuration File

https://docs.armbian.com/User-Guide_Board-Support-Rules/

BOARD_VENDOR="Seeed Studio"
BOOTCONFIG="recomputer-rk3576-devkit_defconfig"
KERNEL_TARGET="vendor"
KERNEL_TEST_TARGET="vendor"
FULL_DESKTOP="yes"
BOOT_LOGO="desktop"
BOOT_FDT_FILE="rockchip/rk3576-recomputer-rk3576-devkit.dtb"
BOOT_SCENARIO="spl-blobs"
BOOT_SUPPORT_SPI="yes"
BOOT_SPI_RKSPI_LOADER="yes"
IMAGE_PARTITION_TABLE="gpt"
OTA_ENABLE="yes"
SERIALCON="ttyFIQ0,ttyGS0"
BT_UART="/dev/ttyS4"
PACKAGE_LIST_BOARD="net-tools rfkill bluetooth bluez-tools pulseaudio-module-bluetooth fail2ban"
AIC8800_TYPE="sdio"
enable_extension "radxa-aic8800"

source "${SRC}/config/sources/vendors/seeed-studio/recomputer-rk35xx-common.inc"

function post_family_config__recomputer_rk3576_devkit_use_seeed_bootscript() {
display_alert "$BOARD" "Using Seeed bootscript: boot-seeed-rk3576.cmd -> boot.cmd" "info"
declare -g BOOTSCRIPT="boot-seeed-rk3576.cmd:boot.cmd"
}

# Install camera engine rkaiq for Rockchip ISP
function pre_install_distribution_specific__recomputer_rk3576_install_camera_engine() {
seeed_recomputer_download_and_install_deb \
"https://github.com/Seeed-Studio/seeed_armbian_extension/releases/download/v1.0/rk3576-camera-engine-rkaiq.deb" \
"rk3576-camera-engine-rkaiq.deb" \
"camera-engine-rkaiq"
}

# Kernel config customizations for RK3576
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IIRC custom kernel configs within board configuration file is a no-go as it breaks cache.
Perhaps consider create an entire new board family?

function custom_kernel_config__recomputer_rk3576_customizations() {
if [[ -f .config ]]; then
display_alert "Applying custom kernel config for recomputer-rk3576" "armbian-kernel" "info"

# GPIO PCA953X - enable as built-in (needed for I2C GPIO expander)
kernel_config_set_y CONFIG_GPIO_PCA953X

# RTC driver PCF8563 - enable as built-in
kernel_config_set_y CONFIG_RTC_DRV_PCF8563

# Morse Wireless (FGH100M) configuration
kernel_config_set_m CONFIG_WLAN_VENDOR_MORSE
kernel_config_set_y CONFIG_MORSE_SPI
kernel_config_set_y CONFIG_MORSE_USER_ACCESS
kernel_config_set_y CONFIG_MORSE_VENDOR_COMMAND
kernel_config_set_y CONFIG_MORSE_MONITOR
kernel_config_set_y CONFIG_MAC80211_MESH
kernel_config_set_val CONFIG_MORSE_DEBUG_MASK "1"

# Regulator for Raspberry Pi Touchscreen V2 and camera v3
kernel_config_set_y CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_V2
kernel_config_set_y CONFIG_VIDEO_IMX708
kernel_config_set_y CONFIG_VIDEO_DW9800W
kernel_config_set_y CONFIG_REGULATOR_AD5398
# fan
kernel_config_set_y CONFIG_SENSORS_PWM_FAN
fi
}

# Audio naming: HDMI0, DP0, ES8311
function post_family_tweaks__recomputer_rk3576_naming_audios() {
display_alert "$BOARD" "Renaming recomputer-rk3576-devkit audios" "info"

mkdir -p $SDCARD/etc/udev/rules.d/
echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-hdmi0-sound", ENV{SOUND_DESCRIPTION}="HDMI0 Audio"' > $SDCARD/etc/udev/rules.d/90-naming-audios.rules
echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-dp0-sound", ENV{SOUND_DESCRIPTION}="DP0 Audio"' >> $SDCARD/etc/udev/rules.d/90-naming-audios.rules
echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-es8311-sound", ENV{SOUND_DESCRIPTION}="ES8311 Audio"' >> $SDCARD/etc/udev/rules.d/90-naming-audios.rules
}

# X11 KMS config — rk3576 display-subsystem is /dev/dri/card0
function post_family_tweaks__recomputer_rk3576_x11_kms_config() {
display_alert "$BOARD" "Configuring X11 for Rockchip KMS" "info"

mkdir -p $SDCARD/etc/X11/xorg.conf.d/
cat > $SDCARD/etc/X11/xorg.conf.d/10-rockchip-kms.conf <<-'EOF'
Section "Device"
Identifier "Rockchip-KMS"
Driver "modesetting"
Option "kmsdev" "/dev/dri/card0"
Option "PrimaryGPU" "true"
EndSection
EOF
}

# Disable suspend and hibernation
function post_family_tweaks__recomputer_rk3576_disable_suspend() {
display_alert "$BOARD" "Disabling suspend and hibernation" "info"

mkdir -p $SDCARD/etc/systemd/sleep.conf.d
cat > $SDCARD/etc/systemd/sleep.conf.d/nosuspend.conf <<-'EOF'
[Sleep]
AllowSuspend=no
AllowHibernation=no
AllowSuspendThenHibernate=no
AllowHybridSleep=no
EOF
}
109 changes: 109 additions & 0 deletions config/boards/recomputer-rk3588-devkit.conf
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
#Seeed Studio Rockchip RK3588 octa core 4/8/16GB RAM SoC
BOARD_NAME="reComputer-RK3588-Devkit"
BOARDFAMILY="rockchip-rk3588"
BOARD_MAINTAINER="seeed studio"
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

as above

BOARD_VENDOR="Seeed Studio"
BOOTCONFIG="recomputer-rk3588-devkit_defconfig" # vendor name, not standard, see hook below, set BOOT_SOC below to compensate
BOOT_SOC="rk3588"
KERNEL_TARGET="vendor"
KERNEL_TEST_TARGET="vendor"
FULL_DESKTOP="yes"
BOOT_LOGO="desktop"
BOOT_FDT_FILE="rockchip/rk3588-recomputer-rk3588-devkit.dtb"
BOOT_SCENARIO="spl-blobs"
BOOT_SUPPORT_SPI="yes"
BOOT_SPI_RKSPI_LOADER="yes"
IMAGE_PARTITION_TABLE="gpt"
OTA_ENABLE="yes"
SERIALCON="ttyFIQ0,ttyGS0"
BT_UART="/dev/ttyS6"
PACKAGE_LIST_BOARD="net-tools rfkill bluetooth bluez-tools pulseaudio-module-bluetooth fail2ban"
AIC8800_TYPE="sdio"
enable_extension "radxa-aic8800"

source "${SRC}/config/sources/vendors/seeed-studio/recomputer-rk35xx-common.inc"

function post_family_config__recomputer_rk3588_devkit_use_seeed_bootscript() {
display_alert "$BOARD" "Using Seeed bootscript: boot-seeed-rk35xx.cmd -> boot.cmd" "info"
declare -g BOOTSCRIPT="boot-seeed-rk35xx.cmd:boot.cmd"
}

# Install libmali package for RK3588 GPU userspace
function pre_install_distribution_specific__recomputer_rk3588_install_libmali() {
seeed_recomputer_download_and_install_deb \
"https://github.com/Seeed-Studio/seeed_armbian_extension/releases/download/v1.0/libmali-valhall-g610-g13p0-x11-wayland-gbm_1.9-1_arm64.deb" \
"libmali-valhall-g610-g13p0-x11-wayland-gbm_1.9-1_arm64.deb" \
"libmali-g610"
}

# Install Realtek r8125 DKMS package
function pre_install_distribution_specific__recomputer_rk3588_install_r8125_dkms() {
seeed_recomputer_download_and_install_deb \
"https://github.com/Seeed-Studio/seeed_armbian_extension/releases/download/v1.0/realtek-r8125-kmod_9.016.01-1_arm64.deb" \
"realtek-r8125-kmod_9.016.01-1_arm64.deb" \
"realtek-r8125-dkms"
}

# Install RK camera engine package for RK3588
function pre_install_distribution_specific__recomputer_rk3588_install_camera_engine() {
seeed_recomputer_download_and_install_deb \
"https://github.com/Seeed-Studio/seeed_armbian_extension/releases/download/v1.0/camera_engine_rkaiq_rk3588_arm64_with_service.deb" \
"camera_engine_rkaiq_rk3588_arm64_with_service.deb" \
"camera-engine-rkaiq-rk3588"
}
Comment on lines +32 to +53
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Pin vendor .deb downloads with integrity verification (checksum) and failure handling.

Each pre_install_distribution_specific__* hook fetches a .deb from a GitHub release over the network and installs it directly into the rootfs without any integrity check (SHA256/signature). If the release is later replaced, mirrored by a MITM, or the URL returns HTML (e.g., a 404 page) the build will either fail silently in odd ways or install unintended content into every image. For reproducible/secure builds, please:

  • Record a SHA256 for each deb and verify it after download.
  • Consider using the Armbian fetch_from_repo / GIT_FIXED_WORKDIR pattern or hosting assets in a place where you can pin by commit/tag.

This is a general concern about the seeed_recomputer_download_and_install_deb helper in recomputer-rk35xx-common.inc — the fix belongs there.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@config/boards/recomputer-rk3588-devkit.conf` around lines 32 - 53, Update the
seeed_recomputer_download_and_install_deb flow in recomputer-rk35xx-common.inc
to verify downloaded .deb integrity and fail noisily: modify the helper so
callers like
pre_install_distribution_specific__recomputer_rk3588_install_libmali,
pre_install_distribution_specific__recomputer_rk3588_install_r8125_dkms, and
pre_install_distribution_specific__recomputer_rk3588_install_camera_engine pass
an expected SHA256 (or the helper looks it up), then after download compute and
compare the SHA256 and abort with a clear error if it mismatches or the download
is not a valid .deb; also handle HTTP errors (non-200/HTML responses) and return
non-zero on failure. Prefer switching the download to Armbian’s fetch_from_repo
/ GIT_FIXED_WORKDIR pattern or otherwise host/pin assets to ensure reproducible
builds and update the helper to use that pattern when a fixed commit/tag is
provided.


# Kernel config customizations for RK3588
function custom_kernel_config__recomputer_rk3588_customizations() {
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

as above

if [[ -f .config ]]; then
display_alert "Applying custom kernel config for recomputer-rk3588" "armbian-kernel" "info"

# RTC driver PCF8563 - enable as built-in
kernel_config_set_y CONFIG_RTC_DRV_PCF8563

# Morse Wireless (FGH100M) configuration
kernel_config_set_m CONFIG_WLAN_VENDOR_MORSE
kernel_config_set_y CONFIG_MORSE_SPI
kernel_config_set_y CONFIG_MORSE_USER_ACCESS
kernel_config_set_y CONFIG_MORSE_VENDOR_COMMAND
kernel_config_set_y CONFIG_MORSE_MONITOR
kernel_config_set_y CONFIG_MAC80211_MESH
kernel_config_set_val CONFIG_MORSE_DEBUG_MASK "1"

# Regulator for Raspberry Pi Touchscreen V2 and camera v3
kernel_config_set_y CONFIG_VIDEO_ROCKCHIP_VPSS
kernel_config_set_y CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_V2
kernel_config_set_y CONFIG_VIDEO_IMX708
kernel_config_set_y CONFIG_VIDEO_DW9800W
kernel_config_set_y CONFIG_REGULATOR_DW9807

kernel_config_set_y CONFIG_NVMEM_ROCKCHIP_OTP

# GPU — use vendor Mali, disable open-source Panfrost/Panthor
kernel_config_set_n CONFIG_DRM_PANFROST
kernel_config_set_n CONFIG_DRM_PANTHOR

# ETH — use vendor r8125 DKMS, disable in-tree Realtek
kernel_config_set_n CONFIG_NET_VENDOR_REALTEK
# fan
kernel_config_set_y CONFIG_SENSORS_PWM_FAN
fi
}

# Audio naming: HDMI0, HDMI1, HDMI-In, DP0, ES8311
function post_family_tweaks__recomputer_rk3588_naming_audios() {
display_alert "$BOARD" "Renaming recomputer rk3588 devkit audios" "info"

mkdir -p $SDCARD/etc/udev/rules.d/
echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-hdmi0-sound", ENV{SOUND_DESCRIPTION}="HDMI0 Audio"' > $SDCARD/etc/udev/rules.d/90-naming-audios.rules
echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-hdmi1-sound", ENV{SOUND_DESCRIPTION}="HDMI1 Audio"' >> $SDCARD/etc/udev/rules.d/90-naming-audios.rules
echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-hdmiin-sound", ENV{SOUND_DESCRIPTION}="HDMI-In Audio"' >> $SDCARD/etc/udev/rules.d/90-naming-audios.rules
echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-dp0-sound", ENV{SOUND_DESCRIPTION}="DP0 Audio"' >> $SDCARD/etc/udev/rules.d/90-naming-audios.rules
echo 'SUBSYSTEM=="sound", ENV{ID_PATH}=="platform-es8311-sound", ENV{SOUND_DESCRIPTION}="ES8311 Audio"' >> $SDCARD/etc/udev/rules.d/90-naming-audios.rules
}

# Remove armbian-hardware-optimize (RK3588 variant)
function post_family_tweaks__recomputer_rk3588_disable_armbian_hardware_optimize() {
display_alert "$BOARD" "Removing armbian-hardware-optimize.service" "info"

rm -f "${SDCARD}/lib/systemd/system/armbian-hardware-optimize.service"
}
145 changes: 145 additions & 0 deletions config/bootscripts/boot-seeed-rk3576.cmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
# DO NOT EDIT THIS FILE
#
# Please edit /boot/armbianEnv.txt to set supported parameters
#

setenv load_addr "0x48000000"
setenv overlay_error "false"
# default values
setenv rootdev "/dev/mmcblk0p1"
setenv verbosity "1"
setenv console "both"
setenv bootlogo "false"
setenv rootfstype "ext4"
setenv docker_optimizations "on"
setenv earlycon "off"
setenv eeprom_dtb_select "on"

test -n "${distro_bootpart}" || distro_bootpart=1

echo "Boot script loaded from ${devtype} ${devnum}:${distro_bootpart}"

if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}armbianEnv.txt; then
load ${devtype} ${devnum}:${distro_bootpart} ${load_addr} ${prefix}armbianEnv.txt
env import -t ${load_addr} ${filesize}
fi

# Absolute fallback for rk3576 board.
# If EEPROM is missing/invalid, this value will be used.
setenv fdtfile "rockchip/rk3576-recomputer-rk3576-devkit.dtb"
setenv eeprom_dtb_matched "no"

# EEPROM format:
# [0..5] = "rk35xx"
# [6..9] = board code, e.g. 00A0 / 00B0
# [10.. ] = SN (ignored by boot logic)
# Read EEPROM from i2c4@0x57 and override fdtfile if format matches.
if test "${eeprom_dtb_select}" = "on"; then
if i2c dev 4; then
if i2c read 0x57 0x0.2 10 ${load_addr}; then
setexpr.b ee0 *${load_addr}
setexpr tmp ${load_addr} + 1
setexpr.b ee1 *${tmp}
setexpr tmp ${load_addr} + 2
setexpr.b ee2 *${tmp}
setexpr tmp ${load_addr} + 3
setexpr.b ee3 *${tmp}
setexpr tmp ${load_addr} + 4
setexpr.b ee4 *${tmp}
setexpr tmp ${load_addr} + 5
setexpr.b ee5 *${tmp}

if test "${ee0}" = "0x72" && test "${ee1}" = "0x6b" && test "${ee2}" = "0x33" && test "${ee3}" = "0x35" && test "${ee4}" = "0x78" && test "${ee5}" = "0x78"; then
setexpr tmp ${load_addr} + 6
setexpr.b code0 *${tmp}
setexpr tmp ${load_addr} + 7
setexpr.b code1 *${tmp}
setexpr tmp ${load_addr} + 8
setexpr.b code2 *${tmp}
setexpr tmp ${load_addr} + 9
setexpr.b code3 *${tmp}

# 00A0 -> rk3576 dtb
if test "${code0}" = "0x30" && test "${code1}" = "0x30" && test "${code2}" = "0x41" && test "${code3}" = "0x30"; then
setenv fdtfile "rockchip/rk3576-recomputer-rk3576-devkit.dtb"
setenv eeprom_dtb_matched "yes"
echo "Detected board: reComputer RK3576 Devkit, using DTB: ${fdtfile}"
# 00B0 -> rk3588 dtb
elif test "${code0}" = "0x30" && test "${code1}" = "0x30" && test "${code2}" = "0x42" && test "${code3}" = "0x30"; then
setenv fdtfile "rockchip/rk3588-recomputer-rk3588-devkit.dtb"
setenv eeprom_dtb_matched "yes"
echo "Detected board: reComputer RK3588 Devkit, using DTB: ${fdtfile}"
fi
fi
fi
fi
fi

if test "${eeprom_dtb_matched}" != "yes"; then
echo "No valid EEPROM information detected, using default DTB: ${fdtfile}"
fi

echo "Using fdtfile=${fdtfile}"

if test "${logo}" = "disabled"; then setenv logo "logo.nologo"; fi

if test "${console}" = "display" || test "${console}" = "both"; then setenv consoleargs "console=tty1"; fi
if test "${console}" = "serial" || test "${console}" = "both"; then setenv consoleargs "console=ttyS2,1500000 ${consoleargs}"; fi
if test "${earlycon}" = "on"; then setenv consoleargs "earlycon ${consoleargs}"; fi
if test "${bootlogo}" = "true"; then
setenv consoleargs "splash plymouth.ignore-serial-consoles ${consoleargs}"
else
setenv consoleargs "splash=verbose ${consoleargs}"
fi

# get PARTUUID of first partition on SD/eMMC the boot script was loaded from
if test "${devtype}" = "mmc"; then part uuid mmc ${devnum}:${distro_bootpart} partuuid; fi

setenv bootargs "root=${rootdev} rootwait rootfstype=${rootfstype} ${consoleargs} consoleblank=0 loglevel=${verbosity} ubootpart=${partuuid} usb-storage.quirks=${usbstoragequirks} ${extraargs} ${extraboardargs}"
if test -n "${cryptdevice}"; then setenv bootargs "${bootargs} cryptdevice=${cryptdevice}"; fi

if test "${docker_optimizations}" = "on"; then setenv bootargs "${bootargs} cgroup_enable=cpuset cgroup_memory=1 cgroup_enable=memory"; fi

load ${devtype} ${devnum}:${distro_bootpart} ${ramdisk_addr_r} ${prefix}uInitrd
load ${devtype} ${devnum}:${distro_bootpart} ${kernel_addr_r} ${prefix}Image

load ${devtype} ${devnum}:${distro_bootpart} ${fdt_addr_r} ${prefix}dtb/${fdtfile}
fdt addr ${fdt_addr_r}
fdt resize 65536
for overlay_file in ${overlays}; do
if load ${devtype} ${devnum}:${distro_bootpart} ${load_addr} ${prefix}dtb/rockchip/overlay/${overlay_prefix}-${overlay_file}.dtbo; then
echo "Applying kernel provided DT overlay ${overlay_prefix}-${overlay_file}.dtbo"
fdt apply ${load_addr} || setenv overlay_error "true"
elif load ${devtype} ${devnum}:${distro_bootpart} ${load_addr} ${prefix}dtb/rockchip/overlay/${overlay_file}.dtbo; then
echo "Applying kernel provided DT overlay ${overlay_file}.dtbo"
fdt apply ${load_addr} || setenv overlay_error "true"
fi
done
for overlay_file in ${user_overlays}; do
if load ${devtype} ${devnum}:${distro_bootpart} ${load_addr} ${prefix}overlay-user/${overlay_file}.dtbo; then
echo "Applying user provided DT overlay ${overlay_file}.dtbo"
fdt apply ${load_addr} || setenv overlay_error "true"
fi
done
if test "${overlay_error}" = "true"; then
echo "Error applying DT overlays, restoring original DT"
load ${devtype} ${devnum}:${distro_bootpart} ${fdt_addr_r} ${prefix}dtb/${fdtfile}
else
if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}dtb/rockchip/overlay/${overlay_prefix}-fixup.scr; then
load ${devtype} ${devnum}:${distro_bootpart} ${load_addr} ${prefix}dtb/rockchip/overlay/${overlay_prefix}-fixup.scr
echo "Applying kernel provided DT fixup script (${overlay_prefix}-fixup.scr)"
source ${load_addr}
fi
if test -e ${devtype} ${devnum}:${distro_bootpart} ${prefix}fixup.scr; then
load ${devtype} ${devnum}:${distro_bootpart} ${load_addr} ${prefix}fixup.scr
echo "Applying user provided fixup script (fixup.scr)"
source ${load_addr}
fi
fi

echo "Trying 'kaslrseed' command... Info: 'Unknown command' can be safely ignored since 'kaslrseed' does not apply to all boards."
kaslrseed # @TODO: This gives an error (Unknown command ' kaslrseed ' - try 'help') on many devices since CONFIG_CMD_KASLRSEED is not enabled
booti ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r}

# Recompile with:
# mkimage -C none -A arm -T script -d /boot/boot.cmd /boot/boot.scr
Loading
Loading