diff options
Diffstat (limited to 'recipes-bsp')
3 files changed, 109 insertions, 1 deletions
diff --git a/recipes-bsp/arm-trusted-firmware/arm-trusted-firmware/0001-rockchip-Prevent-macro-expansion-in-paths.patch b/recipes-bsp/arm-trusted-firmware/arm-trusted-firmware/0001-rockchip-Prevent-macro-expansion-in-paths.patch new file mode 100644 index 0000000..755b618 --- /dev/null +++ b/recipes-bsp/arm-trusted-firmware/arm-trusted-firmware/0001-rockchip-Prevent-macro-expansion-in-paths.patch @@ -0,0 +1,94 @@ +From 39a97dce61aca9f618e28e26c6e441c8976f3172 Mon Sep 17 00:00:00 2001 +From: Joshua Watt <JPEWhacker@gmail.com> +Date: Fri, 13 Dec 2019 13:44:55 -0600 +Subject: [PATCH] rockchip: Prevent macro expansion in paths + +Instead of stringizing the paths to binary files, add them as string +defines on the command line (e.g. -DFOO=\"BAR\" instead of -DFOO=BAR). +This prevents macros from being expanded inside the string value itself. +For example, -DFOO=/path/with-linux-in-it would have been expanded to +"/path/with-1-in-it" because `linux=1` is one of the standard GCC +defines. + +Upstream-Status: Accepted [https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/2813] +Change-Id: I7b65df3c9930faed4f1aff75ad726982ae3671e6 +Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> +--- + plat/rockchip/rk3399/drivers/dp/cdn_dp.c | 2 +- + plat/rockchip/rk3399/drivers/pmu/pmu_fw.c | 24 +++++++++++------------ + plat/rockchip/rk3399/platform.mk | 6 +++--- + 3 files changed, 15 insertions(+), 17 deletions(-) + +diff --git a/plat/rockchip/rk3399/drivers/dp/cdn_dp.c b/plat/rockchip/rk3399/drivers/dp/cdn_dp.c +index aa71fdea..a8773f4f 100644 +--- a/plat/rockchip/rk3399/drivers/dp/cdn_dp.c ++++ b/plat/rockchip/rk3399/drivers/dp/cdn_dp.c +@@ -18,7 +18,7 @@ __asm__( + ".global hdcp_handler\n" + ".balign 4\n" + "hdcp_handler:\n" +- ".incbin \"" __XSTRING(HDCPFW) "\"\n" ++ ".incbin \"" HDCPFW "\"\n" + ".type hdcp_handler, %function\n" + ".size hdcp_handler, .- hdcp_handler\n" + ".popsection\n" +diff --git a/plat/rockchip/rk3399/drivers/pmu/pmu_fw.c b/plat/rockchip/rk3399/drivers/pmu/pmu_fw.c +index a09ad21e..25596b18 100644 +--- a/plat/rockchip/rk3399/drivers/pmu/pmu_fw.c ++++ b/plat/rockchip/rk3399/drivers/pmu/pmu_fw.c +@@ -5,20 +5,18 @@ + */ + + /* convoluted way to make sure that the define is pasted just the right way */ +-#define _INCBIN(file, sym, sec) \ ++#define INCBIN(file, sym, sec) \ + __asm__( \ +- ".section " #sec "\n" \ +- ".global " #sym "\n" \ +- ".type " #sym ", %object\n" \ ++ ".section " sec "\n" \ ++ ".global " sym "\n" \ ++ ".type " sym ", %object\n" \ + ".align 4\n" \ +- #sym ":\n" \ +- ".incbin \"" #file "\"\n" \ +- ".size " #sym ", .-" #sym "\n" \ +- ".global " #sym "_end\n" \ +- #sym "_end:\n" \ ++ sym ":\n" \ ++ ".incbin \"" file "\"\n" \ ++ ".size " sym ", .-" sym "\n" \ ++ ".global " sym "_end\n" \ ++ sym "_end:\n" \ + ) + +-#define INCBIN(file, sym, sec) _INCBIN(file, sym, sec) +- +-INCBIN(RK3399M0FW, rk3399m0_bin, ".sram.incbin"); +-INCBIN(RK3399M0PMUFW, rk3399m0pmu_bin, ".pmusram.incbin"); ++INCBIN(RK3399M0FW, "rk3399m0_bin", ".sram.incbin"); ++INCBIN(RK3399M0PMUFW, "rk3399m0pmu_bin", ".pmusram.incbin"); +diff --git a/plat/rockchip/rk3399/platform.mk b/plat/rockchip/rk3399/platform.mk +index cfc48e8f..643c24f5 100644 +--- a/plat/rockchip/rk3399/platform.mk ++++ b/plat/rockchip/rk3399/platform.mk +@@ -82,13 +82,13 @@ PLAT_M0 := ${PLAT}m0 + BUILD_M0 := ${BUILD_PLAT}/m0 + + RK3399M0FW=${BUILD_M0}/${PLAT_M0}.bin +-$(eval $(call add_define,RK3399M0FW)) ++$(eval $(call add_define_val,RK3399M0FW,\"$(RK3399M0FW)\")) + + RK3399M0PMUFW=${BUILD_M0}/${PLAT_M0}pmu.bin +-$(eval $(call add_define,RK3399M0PMUFW)) ++$(eval $(call add_define_val,RK3399M0PMUFW,\"$(RK3399M0PMUFW)\")) + + HDCPFW=${RK_PLAT_SOC}/drivers/dp/hdcp.bin +-$(eval $(call add_define,HDCPFW)) ++$(eval $(call add_define_val,HDCPFW,\"$(HDCPFW)\")) + + # CCACHE_EXTRAFILES is needed because ccache doesn't handle .incbin + export CCACHE_EXTRAFILES +-- +2.23.0 + diff --git a/recipes-bsp/arm-trusted-firmware/arm-trusted-firmware_2.2.bb b/recipes-bsp/arm-trusted-firmware/arm-trusted-firmware_2.2.bb index 737777b..abaf0f3 100644 --- a/recipes-bsp/arm-trusted-firmware/arm-trusted-firmware_2.2.bb +++ b/recipes-bsp/arm-trusted-firmware/arm-trusted-firmware_2.2.bb @@ -6,10 +6,16 @@ HOMEPAGE = "https://developer.trustedfirmware.org/" LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://docs/license.rst;md5=189505435dbcdcc8caa63c46fe93fa89" +# Rockchip RK3399 compiles some M0 firmware which requires an arm-none-eabi GCC +# toolchain +DEPENDS_rk3399 = "virtual/arm-none-eabi-gcc" + PROVIDES = "virtual/atf" BRANCH = "master" -SRC_URI = "git://git.trustedfirmware.org/TF-A/trusted-firmware-a.git;protocol=http;branch=${BRANCH}" +SRC_URI = "git://git.trustedfirmware.org/TF-A/trusted-firmware-a.git;protocol=http;branch=${BRANCH} \ + file://0001-rockchip-Prevent-macro-expansion-in-paths.patch \ + " SRCREV = "a04808c16cfc126d9fe572ae7c4b5a3d39de5796" S = "${WORKDIR}/git" diff --git a/recipes-bsp/u-boot/u-boot%.bbappend b/recipes-bsp/u-boot/u-boot%.bbappend index 801f710..401d649 100644 --- a/recipes-bsp/u-boot/u-boot%.bbappend +++ b/recipes-bsp/u-boot/u-boot%.bbappend @@ -4,3 +4,11 @@ do_compile_append_rock2-square () { cp ${B}/spl/${SPL_BINARY} ${B} fi } + +ATF_DEPENDS ??= "" + +EXTRA_OEMAKE_append_rk3399 = " BL31=${DEPLOY_DIR_IMAGE}/bl31.elf" +ATF_DEPENDS_rk3399 = "virtual/atf:do_deploy" + +do_compile[depends] += "${ATF_DEPENDS}" + |