@@ -1776,6 +1776,9 @@ F: package/ramsmp/
N: Kieran Bingham <kieran.bingham@ideasonboard.com>
F: package/libcamera/
+N: Kilian Zinnecker <kilian.zinnecker@mail.de>
+F: package/rockchip-rkbin/
+
N: Klaus Heinrich Kiwi <klaus@linux.vnet.ibm.com>
F: package/wqy-zenhei/
@@ -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
@@ -207,6 +207,22 @@ endef
UBOOT_PRE_BUILD_HOOKS += UBOOT_COPY_IMX_FW_FILES
endif
+ifeq ($(BR2_TARGET_UBOOT_NEEDS_ROCKCHIP_RKBIN),y)
+UBOOT_DEPENDENCIES += rockchip-rkbin
+ifeq ($(BR2_PACKAGE_ROCKCHIP_RKBIN_BL31_FILE),y)
+define UBOOT_COPY_RKBIN_BL31_FW_FILE
+ cp $(BINARIES_DIR)/bl31.elf $(@D)
+endef
+UBOOT_MAKE_OPTS += BL31=$(BINARIES_DIR)/bl31.elf
+endif
+ifeq ($(BR2_PACKAGE_ROCKCHIP_RKBIN_TPL_FILE),y)
+define UBOOT_COPY_RKBIN_TPL_FW_FILE
+ cp $(BINARIES_DIR)/ddr.bin $(@D)
+endef
+UBOOT_MAKE_OPTS += ROCKCHIP_TPL=$(BINARIES_DIR)/ddr.bin
+endif
+endif
+
ifeq ($(BR2_TARGET_UBOOT_NEEDS_DTC),y)
UBOOT_DEPENDENCIES += host-dtc
endif
@@ -581,6 +581,7 @@ endmenu
source "package/read-edid/Config.in"
source "package/rng-tools/Config.in"
source "package/rockchip-mali/Config.in"
+ source "package/rockchip-rkbin/Config.in"
source "package/rpi-userland/Config.in"
source "package/rs485conf/Config.in"
source "package/rtc-tools/Config.in"
new file mode 100644
@@ -0,0 +1,50 @@
+config BR2_PACKAGE_ROCKCHIP_RKBIN
+ bool "Rockchip rkbin binary blobs"
+ depends on BR2_arm || BR2_aarch64
+ help
+ This package provides Rockchip SoC binary blobs for U-Boot.
+
+if BR2_PACKAGE_ROCKCHIP_RKBIN
+
+config BR2_PACKAGE_ROCKCHIP_RKBIN_LATEST_VERSION
+ bool "d6ccfe401ca84a98ca3b85c12b9554a1a43a166c"
+
+config BR2_PACKAGE_ROCKCHIP_RKBIN_CUSTOM_VERSION
+ bool "Custom version"
+ help
+ This option allows to use a specific version.
+
+config BR2_PACKAGE_ROCKCHIP_RKBIN_CUSTOM_VERSION_VALUE
+ string "Rockchip rkbin version"
+ depends on BR2_PACKAGE_ROCKCHIP_RKBIN_CUSTOM_VERSION
+
+config BR2_PACKAGE_ROCKCHIP_RKBIN_VERSION
+ string
+ default "d6ccfe401ca84a98ca3b85c12b9554a1a43a166c" \
+ if BR2_PACKAGE_ROCKCHIP_RKBIN_LATEST_VERSION
+ default BR2_PACKAGE_ROCKCHIP_RKBIN_CUSTOM_VERSION_VALUE \
+ if BR2_PACKAGE_ROCKCHIP_RKBIN_CUSTOM_VERSION
+
+config BR2_PACKAGE_ROCKCHIP_RKBIN_TPL_FILE
+ bool "Rockchip rkbin tpl file"
+ default n
+
+config BR2_PACKAGE_ROCKCHIP_RKBIN_TPL_FILENAME
+ string "ddr.bin file path"
+ depends on BR2_PACKAGE_ROCKCHIP_RKBIN_TPL_FILE
+ help
+ Full path to the tpl file inside the rkbin repository. The
+ specified file will be copied and used by U-Boot as tpl.
+
+config BR2_PACKAGE_ROCKCHIP_RKBIN_BL31_FILE
+ bool "Rockchip rkbin bl31 file"
+ default n
+
+config BR2_PACKAGE_ROCKCHIP_RKBIN_BL31_FILENAME
+ string "bl31.elf file path"
+ depends on BR2_PACKAGE_ROCKCHIP_RKBIN_BL31_FILE
+ help
+ Full path to the bl31 file inside the rkbin repository. The
+ specified file will be copied and used by U-Boot as bl31.
+
+endif # BR2_PACKAGE_ROCKCHIP_RKBIN
new file mode 100644
@@ -0,0 +1,3 @@
+# Locally computed
+sha256 6f7b58fe35108101031ebfd3cc6eb7a186f258a1cdbd93c4256888997ab52c8f rockchip-rkbin-d6ccfe401ca84a98ca3b85c12b9554a1a43a166c-br1.tar.gz
+
new file mode 100644
@@ -0,0 +1,50 @@
+################################################################################
+#
+# rockchip-rkbin
+#
+################################################################################
+
+
+ROCKCHIP_RKBIN_VERSION = $(call qstrip,$(BR2_PACKAGE_ROCKCHIP_RKBIN_VERSION))
+ROCKCHIP_RKBIN_SITE = https://github.com/rockchip-linux/rkbin.git
+ROCKCHIP_RKBIN_SITE_METHOD = git
+ROCKCHIP_RKBIN_LICENSE = PROPRIETARY
+ROCKCHIP_RKBIN_REDISTRIBUTE = NO
+
+ROCKCHIP_RKBIN_INSTALL_STAGING = YES
+ROCKCHIP_RKBIN_INSTALL_TARGET = NO
+
+ifeq ($(BR2_PACKAGE_ROCKCHIP_RKBIN_BL31_FILE),y)
+ROCKCHIP_RKBIN_BL31_FILENAME = $(call qstrip,$(BR2_PACKAGE_ROCKCHIP_RKBIN_BL31_FILENAME))
+endif
+
+ifeq ($(BR2_PACKAGE_ROCKCHIP_RKBIN_TPL_FILE),y)
+ROCKCHIP_RKBIN_TPL_FILENAME = $(call qstrip,$(BR2_PACKAGE_ROCKCHIP_RKBIN_TPL_FILENAME))
+endif
+
+ifeq ($(BR2_PACKAGE_ROCKCHIP_RKBIN_BL31_FILE),y)
+ifeq ($(BR2_PACKAGE_ROCKCHIP_RKBIN_TPL_FILE),y)
+define ROCKCHIP_RKBIN_INSTALL_STAGING_CMDS
+ cp $(@D)/$(ROCKCHIP_RKBIN_BL31_FILENAME) $(BINARIES_DIR)/bl31.elf
+ cp $(@D)/$(ROCKCHIP_RKBIN_TPL_FILENAME) $(BINARIES_DIR)/ddr.bin
+endef
+else
+define ROCKCHIP_RKBIN_INSTALL_STAGING_CMDS
+ cp $(@D)/$(ROCKCHIP_RKBIN_BL31_FILENAME) $(BINARIES_DIR)/bl31.elf
+endef
+endif
+else
+define ROCKCHIP_RKBIN_INSTALL_STAGING_CMDS
+ cp $(@D)/$(ROCKCHIP_RKBIN_TPL_FILENAME) $(BINARIES_DIR)/ddr.bin
+endef
+endif
+
+ifeq ($(BR2_PACKAGE_ROCKCHIP_RKBIN_CUSTOM_VERSION),y)
+ifeq ($(call qstrip,$(BR2_PACKAGE_ROCKCHIP_RKBIN_CUSTOM_VERSION_VALUE)),)
+$(error No custom U-Boot version specified. Check your BR2_PACKAGE_ROCKCHIP_RKBIN_CUSTOM_VERSION_VALUE setting)
+endif # qstrip BR2_PACKAGE_ROCKCHIP_RKBIN_CUSTOM_VERSION_VALUE
+ROCKCHIP_SOURCE = rockchip-rkbin-$(ROCKCHIP_RKBIN_VERSION)-br1.tar.gz
+BR_NO_CHECK_HASH_FOR += $(ROCKCHIP_SOURCE)
+endif # BR2_PACKAGE_ROCKCHIP_RKBIN_CUSTOM_VERSION
+
+$(eval $(generic-package))
This patch adds a package for the Rockchip ATF binary blobs. These binaries are needed to build U-Boot for some Rockchip SoCs (e.g., RK3588). One can config a custom version and manually define which blobs to use from the repository. The U-Boot package is modified so that it takes the chosen binaries and uses them during build. Signed-off-by: Kilian Zinnecker <kilian.zinnecker@mail.de> --- DEVELOPERS | 3 ++ boot/uboot/Config.in | 9 ++++ boot/uboot/uboot.mk | 16 +++++++ package/Config.in | 1 + package/rockchip-rkbin/Config.in | 50 ++++++++++++++++++++++ package/rockchip-rkbin/rockchip-rkbin.hash | 3 ++ package/rockchip-rkbin/rockchip-rkbin.mk | 50 ++++++++++++++++++++++ 7 files changed, 132 insertions(+) create mode 100644 package/rockchip-rkbin/Config.in create mode 100644 package/rockchip-rkbin/rockchip-rkbin.hash create mode 100644 package/rockchip-rkbin/rockchip-rkbin.mk