diff --git a/target/linux/rockchip/image/Makefile b/target/linux/rockchip/image/Makefile index 3141adb1fa..50d5e96c87 100644 --- a/target/linux/rockchip/image/Makefile +++ b/target/linux/rockchip/image/Makefile @@ -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)) diff --git a/target/linux/rockchip/image/armv8.mk b/target/linux/rockchip/image/armv8.mk index 1c81005f8e..0c30e06c0b 100644 --- a/target/linux/rockchip/image/armv8.mk +++ b/target/linux/rockchip/image/armv8.mk @@ -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 diff --git a/target/linux/rockchip/image/legacy.mk b/target/linux/rockchip/image/legacy.mk new file mode 100644 index 0000000000..6bba0ec5f0 --- /dev/null +++ b/target/linux/rockchip/image/legacy.mk @@ -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 diff --git a/target/linux/rockchip/image/legacy/default.bootscript b/target/linux/rockchip/image/legacy/default.bootscript new file mode 100644 index 0000000000..1b774f5535 --- /dev/null +++ b/target/linux/rockchip/image/legacy/default.bootscript @@ -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} diff --git a/target/linux/rockchip/image/legacy/nanopi-r2s.bootscript b/target/linux/rockchip/image/legacy/nanopi-r2s.bootscript new file mode 100644 index 0000000000..5198881a26 --- /dev/null +++ b/target/linux/rockchip/image/legacy/nanopi-r2s.bootscript @@ -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} diff --git a/target/linux/rockchip/image/legacy/nanopi-r4s.bootscript b/target/linux/rockchip/image/legacy/nanopi-r4s.bootscript new file mode 100644 index 0000000000..abe9c24ee3 --- /dev/null +++ b/target/linux/rockchip/image/legacy/nanopi-r4s.bootscript @@ -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} diff --git a/target/linux/rockchip/image/legacy/rk3588-friendlyelec.bootscript b/target/linux/rockchip/image/legacy/rk3588-friendlyelec.bootscript new file mode 100644 index 0000000000..6b25005471 --- /dev/null +++ b/target/linux/rockchip/image/legacy/rk3588-friendlyelec.bootscript @@ -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}