Hi Frieder Schrempf, On Wed, Dec 11 2019, Schrempf Frieder wrote:
> From: Frieder Schrempf <frieder.schre...@kontron.de> > > The DDR firmware binaries are not part of the U-Boot source code, so > we should look for them in the build directory, where they need to be > copied to before building U-Boot. > > The ATF binary is already fetched from the build directory, but the > README files for the i.MX8M EVKs claim that it needs to be copied to > the source directory (which is still true for in-tree builds, but not > in general). Therefore we also fix the READMEs to use the build > directory as the correct location for all additional binary files. > > Sined-off-by: Frieder Schrempf <frieder.schre...@kontron.de> > --- > board/freescale/imx8mm_evk/README | 6 +++--- > board/freescale/imx8mq_evk/README | 8 ++++---- > tools/imx8m_image.sh | 28 +++++++++++----------------- > 3 files changed, 18 insertions(+), 24 deletions(-) > > diff --git a/board/freescale/imx8mm_evk/README > b/board/freescale/imx8mm_evk/README > index a885bc5c97..c908c0adc4 100644 > --- a/board/freescale/imx8mm_evk/README > +++ b/board/freescale/imx8mm_evk/README > @@ -9,18 +9,18 @@ Quick Start > > Get and Build the ARM Trusted firmware > ====================================== > -Note: srctree is U-Boot source directory > +Note: builddir is U-Boot build directory (source directory for in-tree > builds) > Get ATF from: https://source.codeaurora.org/external/imx/imx-atf > branch: imx_4.19.35_1.0.0 > $ make PLAT=imx8mm bl31 > -$ cp build/imx8mm/release/bl31.bin $(srctree) > +$ cp build/imx8mm/release/bl31.bin $(builddir) > > Get the ddr and hdmi firmware > ============================= > $ wget https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-imx-8.0.bin > $ chmod +x firmware-imx-8.0.bin > $ ./firmware-imx-8.0 > -$ cp firmware-imx-7.9/firmware/ddr/synopsys/lpddr4*.bin $(srctree) > +$ cp firmware-imx-7.9/firmware/ddr/synopsys/lpddr4*.bin $(builddir) You might want to take the opportunity to fix the firmware directory name as well. > > Build U-Boot > ============ > diff --git a/board/freescale/imx8mq_evk/README > b/board/freescale/imx8mq_evk/README > index c1d400bcf9..bbf69c60d8 100644 > --- a/board/freescale/imx8mq_evk/README > +++ b/board/freescale/imx8mq_evk/README > @@ -9,19 +9,19 @@ Quick Start > > Get and Build the ARM Trusted firmware > ====================================== > -Note: srctree is U-Boot source directory > +Note: builddir is U-Boot build directory (source directory for in-tree > builds) > Get ATF from: https://source.codeaurora.org/external/imx/imx-atf > branch: imx_4.14.62_1.0.0_beta > $ make PLAT=imx8mq bl31 > -$ cp build/imx8mq/release/bl31.bin $(srctree) > +$ cp build/imx8mq/release/bl31.bin $(builddir) > > Get the ddr and hdmi firmware > ============================= > $ wget https://www.nxp.com/lgfiles/NMG/MAD/YOCTO/firmware-imx-7.9.bin > $ chmod +x firmware-imx-7.9.bin > $ ./firmware-imx-7.9.bin > -$ cp firmware-imx-7.9/firmware/hdmi/cadence/signed_hdmi_imx8m.bin $(srctree) > -$ cp firmware-imx-7.9/firmware/ddr/synopsys/lpddr4*.bin $(srctree) > +$ cp firmware-imx-7.9/firmware/hdmi/cadence/signed_hdmi_imx8m.bin $(builddir) > +$ cp firmware-imx-7.9/firmware/ddr/synopsys/lpddr4*.bin $(builddir) Same here. baruch > Build U-Boot > ============ > diff --git a/tools/imx8m_image.sh b/tools/imx8m_image.sh > index 603ba6e8f4..4959f9c835 100755 > --- a/tools/imx8m_image.sh > +++ b/tools/imx8m_image.sh > @@ -10,41 +10,35 @@ post_process=$2 > > blobs=`awk '/^SIGNED_HDMI/ {print $2} /^LOADER/ {print $2} /^SECOND_LOADER/ > {print $2} /^DDR_FW/ {print $2}' $file` > for f in $blobs; do > - tmp=$srctree/$f > - > if [ $f = "spl/u-boot-spl-ddr.bin" ] || [ $f = "u-boot.itb" ]; then > continue > fi > > if [ -f $f ]; then > continue > - fi > - > - if [ ! -f $tmp ]; then > + else > echo "WARNING '$tmp' not found, resulting binary is > not-functional" >&2 > exit 1 > fi > - > - sed -in "s;$f;$tmp;" $file > done > > if [ $post_process = 1 ]; then > - if [ -f $srctree/lpddr4_pmu_train_1d_imem.bin ]; then > - objcopy -I binary -O binary --pad-to 0x8000 --gap-fill=0x0 > $srctree/lpddr4_pmu_train_1d_imem.bin lpddr4_pmu_train_1d_imem_pad.bin > - objcopy -I binary -O binary --pad-to 0x4000 --gap-fill=0x0 > $srctree/lpddr4_pmu_train_1d_dmem.bin lpddr4_pmu_train_1d_dmem_pad.bin > - objcopy -I binary -O binary --pad-to 0x8000 --gap-fill=0x0 > $srctree/lpddr4_pmu_train_2d_imem.bin lpddr4_pmu_train_2d_imem_pad.bin > + if [ -f lpddr4_pmu_train_1d_imem.bin ]; then > + objcopy -I binary -O binary --pad-to 0x8000 --gap-fill=0x0 > lpddr4_pmu_train_1d_imem.bin lpddr4_pmu_train_1d_imem_pad.bin > + objcopy -I binary -O binary --pad-to 0x4000 --gap-fill=0x0 > lpddr4_pmu_train_1d_dmem.bin lpddr4_pmu_train_1d_dmem_pad.bin > + objcopy -I binary -O binary --pad-to 0x8000 --gap-fill=0x0 > lpddr4_pmu_train_2d_imem.bin lpddr4_pmu_train_2d_imem_pad.bin > cat lpddr4_pmu_train_1d_imem_pad.bin > lpddr4_pmu_train_1d_dmem_pad.bin > lpddr4_pmu_train_1d_fw.bin > - cat lpddr4_pmu_train_2d_imem_pad.bin > $srctree/lpddr4_pmu_train_2d_dmem.bin > lpddr4_pmu_train_2d_fw.bin > + cat lpddr4_pmu_train_2d_imem_pad.bin > lpddr4_pmu_train_2d_dmem.bin > lpddr4_pmu_train_2d_fw.bin > dd if=spl/u-boot-spl.bin of=spl/u-boot-spl-pad.bin bs=4 > conv=sync > cat spl/u-boot-spl-pad.bin lpddr4_pmu_train_1d_fw.bin > lpddr4_pmu_train_2d_fw.bin > spl/u-boot-spl-ddr.bin > rm -f lpddr4_pmu_train_1d_fw.bin lpddr4_pmu_train_2d_fw.bin > lpddr4_pmu_train_1d_imem_pad.bin lpddr4_pmu_train_1d_dmem_pad.bin > lpddr4_pmu_train_2d_imem_pad.bin spl/u-boot-spl-pad.bin > fi > - if [ -f $srctree/ddr4_imem_1d.bin ]; then > - objcopy -I binary -O binary --pad-to 0x8000 --gap-fill=0x0 > $srctree/ddr4_imem_1d.bin ddr4_imem_1d_pad.bin > - objcopy -I binary -O binary --pad-to 0x4000 --gap-fill=0x0 > $srctree/ddr4_dmem_1d.bin ddr4_dmem_1d_pad.bin > - objcopy -I binary -O binary --pad-to 0x8000 --gap-fill=0x0 > $srctree/ddr4_imem_2d.bin ddr4_imem_2d_pad.bin > + if [ -f ddr4_imem_1d.bin ]; then > + objcopy -I binary -O binary --pad-to 0x8000 --gap-fill=0x0 > ddr4_imem_1d.bin ddr4_imem_1d_pad.bin > + objcopy -I binary -O binary --pad-to 0x4000 --gap-fill=0x0 > ddr4_dmem_1d.bin ddr4_dmem_1d_pad.bin > + objcopy -I binary -O binary --pad-to 0x8000 --gap-fill=0x0 > ddr4_imem_2d.bin ddr4_imem_2d_pad.bin > cat ddr4_imem_1d_pad.bin ddr4_dmem_1d_pad.bin > ddr4_1d_fw.bin > - cat ddr4_imem_2d_pad.bin $srctree/ddr4_dmem_2d.bin > > ddr4_2d_fw.bin > + cat ddr4_imem_2d_pad.bin ddr4_dmem_2d.bin > ddr4_2d_fw.bin > dd if=spl/u-boot-spl.bin of=spl/u-boot-spl-pad.bin bs=4 > conv=sync > cat spl/u-boot-spl-pad.bin ddr4_1d_fw.bin ddr4_2d_fw.bin > > spl/u-boot-spl-ddr.bin > rm -f ddr4_1d_fw.bin ddr4_2d_fw.bin ddr4_imem_1d_pad.bin > ddr4_dmem_1d_pad.bin ddr4_imem_2d_pad.bin spl/u-boot-spl-pad.bin -- http://baruch.siach.name/blog/ ~. .~ Tk Open Systems =}------------------------------------------------ooO--U--Ooo------------{= - bar...@tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il -