From 029296c748b235c8e09dba85502d464ca6af050d Mon Sep 17 00:00:00 2001 From: Kilian Zinnecker Date: Wed, 26 Jul 2023 20:04:32 +0200 Subject: [PATCH] boot/uboot: Add support for Rockchip binary blobs Currently for some Rockchip SoCs binary blobs are needed, e.g., for the RK3588 bl31 and tpl. These blobs are provided by Rockchip. This patch adds U-Boot package options to use theses binaries, provided by the rockchip-rkbin package, which is also introduced in this patch series. The U-Boot package is modified so that it takes the chosen binaries and automatically uses them during build. Signed-off-by: Kilian Zinnecker [yann.morin.1998@free.fr: - use already-qstripped variables from rockchip-rkbin ] Signed-off-by: Yann E. MORIN --- boot/uboot/Config.in | 9 +++++++++ boot/uboot/uboot.mk | 17 +++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/boot/uboot/Config.in b/boot/uboot/Config.in index ab0aaf2939..8b726eaa57 100644 --- a/boot/uboot/Config.in +++ b/boot/uboot/Config.in @@ -262,6 +262,15 @@ config BR2_TARGET_UBOOT_NEEDS_IMX_FIRMWARE This option makes sure that the i.MX firmwares are copied into the U-Boot source directory. +config BR2_TARGET_UBOOT_NEEDS_ROCKCHIP_RKBIN + bool "U-Boot needs rockchip-rkbin" + depends on BR2_PACKAGE_ROCKCHIP_RKBIN + help + For some Rockchip SoCs U-Boot needs binary blobs from + Rockchip. + This option makes sure that the needed binary blobs are copied + into the U-Boot source directory. + menu "U-Boot binary format" config BR2_TARGET_UBOOT_FORMAT_AIS diff --git a/boot/uboot/uboot.mk b/boot/uboot/uboot.mk index 592e1db0b8..f0a85ee1ca 100644 --- a/boot/uboot/uboot.mk +++ b/boot/uboot/uboot.mk @@ -209,6 +209,23 @@ endef UBOOT_PRE_BUILD_HOOKS += UBOOT_COPY_IMX_FW_FILES endif +ifeq ($(BR2_TARGET_UBOOT_NEEDS_ROCKCHIP_RKBIN),y) +UBOOT_DEPENDENCIES += rockchip-rkbin +define UBOOT_INSTALL_UBOOT_ROCKCHIP_BIN + $(INSTALL) -D -m 0644 $(@D)/u-boot-rockchip.bin $(BINARIES_DIR)/u-boot-rockchip.bin +endef +UBOOT_POST_INSTALL_IMAGES_HOOKS += UBOOT_INSTALL_UBOOT_ROCKCHIP_BIN +ifneq ($(ROCKCHIP_RKBIN_BL31_FILENAME),) +UBOOT_MAKE_OPTS += BL31=$(BINARIES_DIR)/$(notdir $(ROCKCHIP_RKBIN_BL31_FILENAME)) +endif +ifneq ($(ROCKCHIP_RKBIN_TPL_FILENAME),) +UBOOT_MAKE_OPTS += ROCKCHIP_TPL=$(BINARIES_DIR)/$(notdir $(ROCKCHIP_RKBIN_TPL_FILENAME)) +endif +ifneq ($(ROCKCHIP_RKBIN_TEE_FILENAME),) +UBOOT_MAKE_OPTS += TEE=$(BINARIES_DIR)/$(notdir $(ROCKCHIP_RKBIN_TEE_FILENAME)) +endif +endif + ifeq ($(BR2_TARGET_UBOOT_NEEDS_DTC),y) UBOOT_DEPENDENCIES += host-dtc UBOOT_MAKE_OPTS += DTC=$(HOST_DIR)/bin/dtc