arm-trusted-firmware: Change the way how RCAR_BL33_EXECUTION_EL is set to not conflic...
[AGL/meta-agl-refhw.git] / meta-agl-refhw-gen3 / recipes-bsp / arm-trusted-firmware / arm-trusted-firmware_%.bbappend
index 962f84e..4253d4f 100644 (file)
@@ -1,14 +1,12 @@
-FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
+FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
 
-# Apply the patch AGL applies for all rcar3 in meta-agl-bsp when
-# building the standalone agl-refhw-h3 machine.
-SRC_URI_append_agl-refhw-h3 = " file://0001-Boot-Normal-World-in-EL2.patch"
+SRC_URI:append:rcar-gen3 = " file://0001-rcar_gen3-plat-Do-not-panic-on-unrecognized-boards.patch"
 
 # It is believed the eMMC configuration below makes the result AGL
 # reference hardware specific, mark it as such when building with
 # MACHINE=agl-refhw-h3 to potentially flag this in an incorrectly
 # configured build.
-COMPATIBLE_MACHINE_agl-refhw-h3 = "agl-refhw-h3"
+COMPATIBLE_MACHINE:agl-refhw-h3 = "agl-refhw-h3"
 
 # There are hardware issues in using hyperflash. arm-trusted-firmware, optee and
 # u-boot have to be stored into eMMC by using serial donwload.
@@ -26,7 +24,11 @@ EMMC_BOOT_OPTION = "RCAR_SA6_TYPE=1"
 #
 DDR_8G_OPTION = "RCAR_DRAM_LPDDR4_MEMCONF=1 RCAR_DRAM_MEMRANK=2"
 
-ATFW_OPT_agl-refhw-h3 = "LSI=H3 RCAR_DRAM_SPLIT=1 ${EMMC_BOOT_OPTION} ${DDR_8G_OPTION}"
+# AGL reference hardware numbered 100 or above has 16Gbit/1rank DRAM
+# and please flash the firmware built with the following options.
+DDR_8G_1RANK_OPTION = "RCAR_DRAM_LPDDR4_MEMCONF=1 RCAR_DRAM_MEMRANK=1"
+
+ATFW_OPT:agl-refhw-h3 = "LSI=H3 RCAR_DRAM_SPLIT=1 ${EMMC_BOOT_OPTION} ${DDR_8G_OPTION}"
 
 #
 # Handle building as extra firmware with MACHINE=h3ulcb
@@ -34,6 +36,23 @@ ATFW_OPT_agl-refhw-h3 = "LSI=H3 RCAR_DRAM_SPLIT=1 ${EMMC_BOOT_OPTION} ${DDR_8G_O
 
 # Build options for building as extra firmware when MACHINE=h3ulcb, based on H3[4x2g]
 H3ULCB[agl-refhw-4x2g] = "LSI=H3 RCAR_DRAM_SPLIT=1 ${EMMC_BOOT_OPTION} ${DDR_8G_OPTION}"
+H3ULCB[agl-refhw-4x2g-1rank] = "LSI=H3 RCAR_DRAM_SPLIT=1 ${EMMC_BOOT_OPTION} ${DDR_8G_1RANK_OPTION}"
+
+python __anonymous() {
+    # If building for MACHINE=agl-refhw-h3, the predefined default
+    # extra configurations in the base recipe are not interesting
+    # to us, as there is no compatible hardware.
+    if d.getVar("MACHINE") == "agl-refhw-h3":
+        d.delVarFlag("H3", "2x2g")
+        d.delVarFlag("H3", "4x2g")
+}
+
+# Also build the extra 1rank firmware when MACHINE=agl-refhw-h3
+H3[4x2g-1rank] = "LSI=H3 RCAR_DRAM_SPLIT=1 ${EMMC_BOOT_OPTION} ${DDR_8G_1RANK_OPTION}"
+
+# Boot Normal World in EL2: this define configures ATF (SPSR register) to boot
+# BL33 in EL2.
+EXTRA_OEMAKE += " RCAR_BL33_EXECUTION_EL=1"
 
 #
 # Need to prepend the compile tasks with a distclean that actually cleans
@@ -43,11 +62,11 @@ H3ULCB[agl-refhw-4x2g] = "LSI=H3 RCAR_DRAM_SPLIT=1 ${EMMC_BOOT_OPTION} ${DDR_8G_
 # upstream.
 #
 
-do_compile_prepend() {
+do_compile:prepend() {
     oe_runmake distclean PLAT=${PLATFORM} MBEDTLS_COMMON_MK=1 ${ATFW_OPT}
 }
 
-do_ipl_opt_compile_prepend() {
+do_ipl_opt_compile:prepend() {
     oe_runmake distclean PLAT=${PLATFORM} MBEDTLS_COMMON_MK=1 ${ATFW_OPT}
 }