[U-Boot] [PATCH] Makefile.spl: Create u-boot-spl-rockchip.bin for rk3399

Rockchip platform would require an explicit call to mkimage for creating bootable images which indeed specific to SoC family along with boot devices.
Example of creating bootable image for rk3399 family with SD boot device as
₹ mkimage -n rk3399 -T rksd -d ./spl/u-boot-spl-dtb.bin u-boot-spl-rockchip.bin
This patch would do the same think via Makefile.spl for rk3399.
This would be an initial version and it can easily expand further to support other families of SoC's with variety of boot stages like TPL, SPL.
Signed-off-by: Jagan Teki jagan@amarulasolutions.com --- arch/arm/mach-rockchip/Kconfig | 8 ++++++++ doc/README.rockchip | 3 +-- scripts/Makefile.spl | 21 +++++++++++++++++++++ 3 files changed, 30 insertions(+), 2 deletions(-)
diff --git a/arch/arm/mach-rockchip/Kconfig b/arch/arm/mach-rockchip/Kconfig index dbe7f11d39..286c870135 100644 --- a/arch/arm/mach-rockchip/Kconfig +++ b/arch/arm/mach-rockchip/Kconfig @@ -222,6 +222,14 @@ config ROCKCHIP_SPL_RESERVE_IRAM config ROCKCHIP_BROM_HELPER bool
+config SPL_ROCKCHIP_IMG_NAME + string "SPL Rockchip image name" + default "rk3399" if ROCKCHIP_RK3399 + help + To create SPL image for rockchip targets the image name would + depends on the SoC family that would pass as an argument as + '-n rk3399' to mkimage for creating Rockchip SPL boot image. + config SPL_ROCKCHIP_EARLYRETURN_TO_BROM bool "SPL requires early-return (for RK3188-style BROM) to BROM" depends on SPL && ENABLE_ARM_SOC_BOOT0_HOOK diff --git a/doc/README.rockchip b/doc/README.rockchip index e8f6a2dfba..6341f47b21 100644 --- a/doc/README.rockchip +++ b/doc/README.rockchip @@ -399,11 +399,10 @@ Option 2: Package the image with SPL: - Prefix rk3399 header to SPL image
=> cd /path/to/u-boot - => ./tools/mkimage -n rk3399 -T rksd -d spl/u-boot-spl-dtb.bin out
- Write prefixed SPL at 64th sector
- => sudo dd if=out of=/dev/sdc seek=64 + => sudo dd if=spl/u-boot-spl-rockchip.dtb of=/dev/sdc seek=64
- Write U-Boot proper at 16384 sector
diff --git a/scripts/Makefile.spl b/scripts/Makefile.spl index 54b160d72b..49c0641aa2 100644 --- a/scripts/Makefile.spl +++ b/scripts/Makefile.spl @@ -235,6 +235,10 @@ ALL-$(CONFIG_ARCH_ZYNQMP) += $(obj)/boot.bin
ALL-$(CONFIG_ARCH_MEDIATEK) += $(obj)/u-boot-spl-mtk.bin
+ifdef CONFIG_ROCKCHIP_RK3399 +ALL-$(CONFIG_ARCH_ROCKCHIP) += $(obj)/u-boot-spl-rockchip.bin +endif + all: $(ALL-y)
quiet_cmd_cat = CAT $@ @@ -369,6 +373,23 @@ MKIMAGEFLAGS_u-boot-spl-mtk.bin = -T mtk_image \ $(obj)/u-boot-spl-mtk.bin: $(obj)/u-boot-spl.bin FORCE $(call if_changed,mkimage)
+# Rockchip specific SPL build +ifeq ($(CONFIG_ROCKCHIP_RK3399),y) + +ifeq ($(CONFIG_SPI_FLASH_SUPPORT),y) +ROCKCHIP_IMG_TYPE := rkspi +else +ROCKCHIP_IMG_TYPE := rksd +endif + +MKIMAGEFLAGS_u-boot-spl-rockchip.bin = -n $(CONFIG_SPL_ROCKCHIP_IMG_NAME) \ + -T $(ROCKCHIP_IMG_TYPE) -d $(MKIMAGEOUTPUT) + +$(obj)/u-boot-spl-rockchip.bin: $(obj)/u-boot-spl.bin FORCE + $(call if_changed,mkimage) + +endif # CONFIG_ROCKCHIP_RK3399 + # Rule to link u-boot-spl # May be overridden by arch/$(ARCH)/config.mk quiet_cmd_u-boot-spl ?= LD $@

Hi,
On 25/04/2019 18:54, Jagan Teki wrote:
Rockchip platform would require an explicit call to mkimage for creating bootable images which indeed specific to SoC family along with boot devices.
Example of creating bootable image for rk3399 family with SD boot device as
₹ mkimage -n rk3399 -T rksd -d ./spl/u-boot-spl-dtb.bin u-boot-spl-rockchip.bin
This patch would do the same think via Makefile.spl for rk3399.
This would be an initial version and it can easily expand further to support other families of SoC's with variety of boot stages like TPL, SPL.
Signed-off-by: Jagan Teki jagan@amarulasolutions.com
arch/arm/mach-rockchip/Kconfig | 8 ++++++++ doc/README.rockchip | 3 +-- scripts/Makefile.spl | 21 +++++++++++++++++++++ 3 files changed, 30 insertions(+), 2 deletions(-)
diff --git a/arch/arm/mach-rockchip/Kconfig b/arch/arm/mach-rockchip/Kconfig index dbe7f11d39..286c870135 100644 --- a/arch/arm/mach-rockchip/Kconfig +++ b/arch/arm/mach-rockchip/Kconfig @@ -222,6 +222,14 @@ config ROCKCHIP_SPL_RESERVE_IRAM config ROCKCHIP_BROM_HELPER bool
+config SPL_ROCKCHIP_IMG_NAME
- string "SPL Rockchip image name"
- default "rk3399" if ROCKCHIP_RK3399
- help
To create SPL image for rockchip targets the image name would
depends on the SoC family that would pass as an argument as
'-n rk3399' to mkimage for creating Rockchip SPL boot image.
config SPL_ROCKCHIP_EARLYRETURN_TO_BROM bool "SPL requires early-return (for RK3188-style BROM) to BROM" depends on SPL && ENABLE_ARM_SOC_BOOT0_HOOK diff --git a/doc/README.rockchip b/doc/README.rockchip index e8f6a2dfba..6341f47b21 100644 --- a/doc/README.rockchip +++ b/doc/README.rockchip @@ -399,11 +399,10 @@ Option 2: Package the image with SPL:
Prefix rk3399 header to SPL image
=> cd /path/to/u-boot
=> ./tools/mkimage -n rk3399 -T rksd -d spl/u-boot-spl-dtb.bin out
- Write prefixed SPL at 64th sector
=> sudo dd if=out of=/dev/sdc seek=64
- => sudo dd if=spl/u-boot-spl-rockchip.dtb of=/dev/sdc seek=64
u-boot-spl-rockchip.bin?
Regards, Jack.
- Write U-Boot proper at 16384 sector
diff --git a/scripts/Makefile.spl b/scripts/Makefile.spl index 54b160d72b..49c0641aa2 100644 --- a/scripts/Makefile.spl +++ b/scripts/Makefile.spl @@ -235,6 +235,10 @@ ALL-$(CONFIG_ARCH_ZYNQMP) += $(obj)/boot.bin
ALL-$(CONFIG_ARCH_MEDIATEK) += $(obj)/u-boot-spl-mtk.bin
+ifdef CONFIG_ROCKCHIP_RK3399 +ALL-$(CONFIG_ARCH_ROCKCHIP) += $(obj)/u-boot-spl-rockchip.bin +endif
all: $(ALL-y)
quiet_cmd_cat = CAT $@ @@ -369,6 +373,23 @@ MKIMAGEFLAGS_u-boot-spl-mtk.bin = -T mtk_image \ $(obj)/u-boot-spl-mtk.bin: $(obj)/u-boot-spl.bin FORCE $(call if_changed,mkimage)
+# Rockchip specific SPL build +ifeq ($(CONFIG_ROCKCHIP_RK3399),y)
+ifeq ($(CONFIG_SPI_FLASH_SUPPORT),y) +ROCKCHIP_IMG_TYPE := rkspi +else +ROCKCHIP_IMG_TYPE := rksd +endif
+MKIMAGEFLAGS_u-boot-spl-rockchip.bin = -n $(CONFIG_SPL_ROCKCHIP_IMG_NAME) \
- -T $(ROCKCHIP_IMG_TYPE) -d $(MKIMAGEOUTPUT)
+$(obj)/u-boot-spl-rockchip.bin: $(obj)/u-boot-spl.bin FORCE
- $(call if_changed,mkimage)
+endif # CONFIG_ROCKCHIP_RK3399
# Rule to link u-boot-spl # May be overridden by arch/$(ARCH)/config.mk quiet_cmd_u-boot-spl ?= LD $@

Hi Jagan,
On Thu, 25 Apr 2019 at 11:54, Jagan Teki jagan@amarulasolutions.com wrote:
Rockchip platform would require an explicit call to mkimage for creating bootable images which indeed specific to SoC family along with boot devices.
Example of creating bootable image for rk3399 family with SD boot device as
₹ mkimage -n rk3399 -T rksd -d ./spl/u-boot-spl-dtb.bin u-boot-spl-rockchip.bin
This patch would do the same think via Makefile.spl for rk3399.
This would be an initial version and it can easily expand further to support other families of SoC's with variety of boot stages like TPL, SPL.
Signed-off-by: Jagan Teki jagan@amarulasolutions.com
arch/arm/mach-rockchip/Kconfig | 8 ++++++++ doc/README.rockchip | 3 +-- scripts/Makefile.spl | 21 +++++++++++++++++++++ 3 files changed, 30 insertions(+), 2 deletions(-)
Can we set this up to use binman? That would also allow us to produce an image with padding so that we can use a simpler dd command.
Regards, Simon

Hi Simon,
On Fri, Apr 26, 2019 at 9:29 AM Simon Glass sjg@chromium.org wrote:
Hi Jagan,
On Thu, 25 Apr 2019 at 11:54, Jagan Teki jagan@amarulasolutions.com wrote:
Rockchip platform would require an explicit call to mkimage for creating bootable images which indeed specific to SoC family along with boot devices.
Example of creating bootable image for rk3399 family with SD boot device as
₹ mkimage -n rk3399 -T rksd -d ./spl/u-boot-spl-dtb.bin u-boot-spl-rockchip.bin
This patch would do the same think via Makefile.spl for rk3399.
This would be an initial version and it can easily expand further to support other families of SoC's with variety of boot stages like TPL, SPL.
Signed-off-by: Jagan Teki jagan@amarulasolutions.com
arch/arm/mach-rockchip/Kconfig | 8 ++++++++ doc/README.rockchip | 3 +-- scripts/Makefile.spl | 21 +++++++++++++++++++++ 3 files changed, 30 insertions(+), 2 deletions(-)
Can we set this up to use binman? That would also allow us to produce an image with padding so that we can use a simpler dd command.
Yes, ie what that I planned initially and fired some issue. will try again and post if I succeed.
Jagan.
participants (3)
-
Jack Mitchell
-
Jagan Teki
-
Simon Glass