Add support for 16Gbit/1rank DRAM version of the AGL reference hardware
[AGL/meta-agl-refhw.git] / meta-agl-refhw-gen3 / recipes-bsp / arm-trusted-firmware / arm-trusted-firmware_%.bbappend
1 FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
2
3 SRC_URI_append_rcar-gen3 = " file://0001-rcar_gen3-plat-Delete-FDT-function-calls.patch"
4
5 # Apply the patch AGL applies for all rcar3 in meta-agl-bsp when
6 # building the standalone agl-refhw-h3 machine.
7 SRC_URI_append_agl-refhw-h3 = " file://0001-Boot-Normal-World-in-EL2.patch"
8
9 # It is believed the eMMC configuration below makes the result AGL
10 # reference hardware specific, mark it as such when building with
11 # MACHINE=agl-refhw-h3 to potentially flag this in an incorrectly
12 # configured build.
13 COMPATIBLE_MACHINE_agl-refhw-h3 = "agl-refhw-h3"
14
15 # There are hardware issues in using hyperflash. arm-trusted-firmware, optee and
16 # u-boot have to be stored into eMMC by using serial donwload.
17 EMMC_BOOT_OPTION = "RCAR_SA6_TYPE=1"
18
19 # RCAR_DRAM_MEMRANK must be set, since in case of RCAR_DRAM_LPDDR4_MEMCONF=1
20 # ddr_rank_judge is called. But for RCAR_DRAM_MEMRANK=0 it can determine values
21 # only for Salvator XS and Starter Kit Pre.
22 #
23 # RCAR_DRAM_MEMRANK=2 is set because for ATF from BSP v4.7.0:
24 #
25 # https://github.com/renesas-rcar/arm-trusted-firmware/tree/af9f429a48b438e314289f17947ad5d8036f398e
26 #
27 # _board_judge returns hardcoded 'brd = 8;  /*  8Gbit/2rank */' by default.
28 #
29 DDR_8G_OPTION = "RCAR_DRAM_LPDDR4_MEMCONF=1 RCAR_DRAM_MEMRANK=2"
30
31 # AGL reference hardware numbered 100 or above has 16Gbit/1rank DRAM
32 # and please flash the firmware built with the following options.
33 DDR_8G_1RANK_OPTION = "RCAR_DRAM_LPDDR4_MEMCONF=1 RCAR_DRAM_MEMRANK=1"
34
35 ATFW_OPT_agl-refhw-h3 = "LSI=H3 RCAR_DRAM_SPLIT=1 ${EMMC_BOOT_OPTION} ${DDR_8G_OPTION}"
36
37 #
38 # Handle building as extra firmware with MACHINE=h3ulcb
39 #
40
41 # Build options for building as extra firmware when MACHINE=h3ulcb, based on H3[4x2g]
42 H3ULCB[agl-refhw-4x2g] = "LSI=H3 RCAR_DRAM_SPLIT=1 ${EMMC_BOOT_OPTION} ${DDR_8G_OPTION}"
43 H3ULCB[agl-refhw-4x2g-1rank] = "LSI=H3 RCAR_DRAM_SPLIT=1 ${EMMC_BOOT_OPTION} ${DDR_8G_1RANK_OPTION}"
44
45 #
46 # Need to prepend the compile tasks with a distclean that actually cleans
47 # out all the platform specific files like the new rcar_layout_tool output,
48 # otherwise they do not get rebuilt and board builds can get the wrong
49 # version of e.g. cert_headers_sa6.  This needs to be addressed with
50 # upstream.
51 #
52
53 do_compile_prepend() {
54     oe_runmake distclean PLAT=${PLATFORM} MBEDTLS_COMMON_MK=1 ${ATFW_OPT}
55 }
56
57 do_ipl_opt_compile_prepend() {
58     oe_runmake distclean PLAT=${PLATFORM} MBEDTLS_COMMON_MK=1 ${ATFW_OPT}
59 }
60
61 do_extra_ipl_opt_refhw_fixup() {
62     # Rename agl-refhw-h3 firmware files to drop h3ulcb-
63     for f in ${DEPLOYDIR}/*-h3ulcb-agl-refhw-4x2g*; do
64         n=`basename $f | sed 's/h3ulcb-//'`
65         mv -f $f ${DEPLOYDIR}/$n
66     done
67 }
68
69 EXTRA_IPL_OPT_POSTFUNCS = ""
70 EXTRA_IPL_OPT_POSTFUNCS_h3ulcb = "do_extra_ipl_opt_refhw_fixup"
71 do_extra_ipl_opt[postfuncs] += "${EXTRA_IPL_OPT_POSTFUNCS}"