target/rockchip: supports boot from legacy uboot

This commit is contained in:
Liangbin Lian 2025-02-05 16:45:14 +08:00
parent 9743247d2a
commit ff7754c8af
7 changed files with 96 additions and 0 deletions

View File

@ -43,6 +43,27 @@ define Build/pine64-img
dd if="$(STAGING_DIR_IMAGE)"/$(UBOOT_DEVICE_NAME)-u-boot-rockchip.bin of="$@" seek=64 conv=notrunc
endef
### Legacy Image scripts ###
define Build/boot-common-legacy
# This creates a new folder copies the dtbs (as rockchip*.dtb)
# and the kernel image (as kernel.img)
rm -fR $@.boot
mkdir -p $@.boot
i=0; \
for dts in $(DEVICE_DTS); do \
$(CP) $(KDIR)/image-$${dts}.dtb $@.boot/rockchip$$(perl -e 'printf "%b\n",'$$i).dtb; \
let i+=1; \
done
$(LN) rockchip0.dtb $@.boot/rockchip.dtb
$(CP) $(IMAGE_KERNEL) $@.boot/kernel.img
endef
define Build/boot-script-legacy
# Make an U-boot image and copy it to the boot partition
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -d legacy/$(if $(1),$(1),default).bootscript $@.boot/boot.scr
endef
### Devices ###
define Device/Default
PROFILES := Default
@ -54,6 +75,11 @@ define Device/Default
UBOOT_DEVICE_NAME = $(lastword $(subst _, ,$(1)))-$$(SOC)
endef
define Device/Legacy
KERNEL = kernel-bin
IMAGE/sysupgrade.img.gz = boot-common-legacy | boot-script-legacy $$(BOOT_SCRIPT) | pine64-img | gzip | append-metadata
endef
include $(SUBTARGET).mk
$(eval $(call BuildImage))

View File

@ -280,3 +280,5 @@ define Device/xunlong_orangepi-r1-plus-lts
DEVICE_PACKAGES := kmod-usb-net-rtl8152
endef
TARGET_DEVICES += xunlong_orangepi-r1-plus-lts
include legacy.mk

View File

@ -0,0 +1,9 @@
define Device/friendlyarm_nanopi-r6s
$(call Device/Legacy)
DEVICE_VENDOR := FriendlyARM
DEVICE_MODEL := NanoPi R6S
SOC := rk3588s
DEVICE_DTS := rockchip/rk3588s-nanopi-r6s rockchip/rk3588s-nanopi-r6c
BOOT_SCRIPT := rk3588-friendlyelec
DEVICE_PACKAGES := kmod-r8169
endef

View File

@ -0,0 +1,18 @@
part uuid ${devtype} ${devnum}:2 uuid
if test $stdout = 'serial@fe660000' ;
then serial_addr=',0xfe660000';
elif test $stdout = 'serial@feb50000' ;
then serial_addr=',0xfeb50000';
elif test $stdout = 'serial@ff130000' ;
then serial_addr=',0xff130000';
elif test $stdout = 'serial@ff1a0000' ;
then serial_addr=',0xff1a0000';
fi;
setenv bootargs "console=ttyS2,1500000 earlycon=uart8250,mmio32${serial_addr} root=PARTUUID=${uuid} rw rootwait";
load ${devtype} ${devnum}:1 ${fdt_addr_r} rockchip.dtb
load ${devtype} ${devnum}:1 ${kernel_addr_r} kernel.img
booti ${kernel_addr_r} - ${fdt_addr_r}

View File

@ -0,0 +1,8 @@
part uuid mmc ${devnum}:2 uuid
setenv bootargs "console=ttyS2,1500000 earlycon=uart8250,mmio32,0xff130000 root=PARTUUID=${uuid} rw rootwait"
load mmc ${devnum}:1 ${fdt_addr_r} rockchip.dtb
load mmc ${devnum}:1 ${kernel_addr_r} kernel.img
booti ${kernel_addr_r} - ${fdt_addr_r}

View File

@ -0,0 +1,8 @@
part uuid mmc ${devnum}:2 uuid
setenv bootargs "console=ttyS2,1500000 earlycon=uart8250,mmio32,0xff1a0000 root=PARTUUID=${uuid} rw rootwait"
load mmc ${devnum}:1 ${fdt_addr_r} rockchip.dtb
load mmc ${devnum}:1 ${kernel_addr_r} kernel.img
booti ${kernel_addr_r} - ${fdt_addr_r}

View File

@ -0,0 +1,25 @@
# friendlyelec rk3588 combined image, board detected by ADC
# https://github.com/friendlyarm/uboot-rockchip/blob/nanopi6-v2017.09/board/rockchip/nanopi6/hwrev.c
# adc_value >> 2 : R6S < 211 < R6C
env delete hwrev
env delete adc_value
# using SARADC CH5 to detect hwrev
adc single saradc@fec10000 5 adc_value
if test -n "$adc_value"; then
if test "$adc_value" -ge 844; then
echo adc $adc_value : board R6C
setenv hwrev 1
fi
fi
part uuid mmc ${devnum}:2 uuid
setenv bootargs "console=ttyS2,1500000 earlycon=uart8250,mmio32,0xfeb50000 root=PARTUUID=${uuid} rw rootwait"
load mmc ${devnum}:1 ${fdt_addr_r} rockchip${hwrev}.dtb
load mmc ${devnum}:1 ${kernel_addr_r} kernel.img
booti ${kernel_addr_r} - ${fdt_addr_r}