[PATCH 1/2] imx8mm-cl-iot-gate: Do not build fip.bin by default

Paul Liu paul.liu at linaro.org
Sun Aug 15 21:26:34 CEST 2021


Hi Fabio,

No. I think they actually use fip.bin but just not upstreamed yet. Please
see the "Firmware version" in the list. For Compulab we are using mainline
U-boot. But for imx8mm-evk it is NXP released firmware.

And yes we do use mainline ATF and mainline OPTEE. I'll explain how to
build all of them.

# OPTEE

1. export ARCH=arm
2. export CROSS_COMPILE=arm-linux-gnueabihf-
3. export CROSS_COMPILE64=aarch64-linux-gnu-
4. make PLATFORM=imx PLATFORM_FLAVOR=mx8mm_cl_iot_gate O=build.mx8mmevk \
    CFG_TEE_CORE_LOG_LEVEL=2 \
    CFG_TEE_TA_LOG_LEVEL=2 \
    CFG_TEE_CORE_DEBUG=y \
    CFG_EXTERNAL_DTB_OVERLAY=y \
    CFG_DT=y \
    CFG_DT_ADDR=0x52000000 \
    CFG_DEBUG_INFO=y


And we got tee-header_v2.bin tee-pager_v2.bin and tee-pageable_v2.bin.
These files will be used in the TF-A stage.

Then we start building U-boot (BL31).

# U-boot (BL31)

1. export ARCH=arm64
2. export CROSS_COMPILE=aarch64-linux-gnu-
3. export ATF_LOAD_ADDR=0x920000
4. make O=/tmp/uboot-imx8 imx8mm-cl-iot-gate_defconfig
5. make O=/tmp/uboot-imx8

We got u-boot.bin at this stage. u-boot.bin is needed for the next stage.

# TF-A

make ARCH=aarch64 CROSS_COMPILE=aarch64-linux-gnu- PLAT=imx8mm \
    SPD=opteed BL32_BASE=0x7e000000 IMX_BOOT_UART_BASE=0x30880000 \
    NEED_BL32=yes NEED_BL33=yes NEED_BL2=yes \
    LOG_LEVEL=50 \
    USE_TBBR_DEFS=1 GENERATE_COT=1 TRUSTED_BOARD_BOOT=1 \
    MBEDTLS_DIR=../mbedtls \
    BL32=../optee_os/build.mx8mmevk/core/tee-header_v2.bin \
    BL32_EXTRA1=../optee_os/build.mx8mmevk/core/tee-pager_v2.bin \
    BL32_EXTRA2=../optee_os/build.mx8mmevk/core/tee-pageable_v2.bin \
    BL33=/tmp/uboot-imx8/u-boot.bin BL2_CFLAGS=-DIMX8M_FIP_MMAP \
    fip bl2 bl31

Now we have bl2.bin and fip.bin in build/imx8mm/release for the next stage.

# U-boot (generate flash.bin and u-boot.itb)

1. export NXP_FIRMWARE=firmware-imx-8.8.bin
2. wget -c http://www.freescale.com/lgfiles/NMG/MAD/YOCTO/${NXP_FIRMWARE}
3. bash -x ${NXP_FIRMWARE} --auto-accept
4. cp -v $(find firmware* | awk '/train|hdmi_imx8|dp_imx8/' ORS=" ")
/tmp/uboot-imx8
5. cp -v ../trusted-firmware-a/build/imx8mm/release/bl2.bin
/tmp/uboot-imx8/bl31.bin
6. cp -v ../trusted-firmware-a/build/imx8mm/release/fip.bin
/tmp/uboox-imx8/fip.bin
7. export ARCH=arm64
8. export CROSS_COMPILE=aarch64-linux-gnu-
9. export ATF_LOAD_ADDR=0x920000
10. make O=/tmp/uboot-imx8

So now it shouldn't complain about missing images.

Yours,
Paul



On Fri, 13 Aug 2021 at 20:15, Fabio Estevam <festevam at denx.de> wrote:

> Hi Paul,
>
> On 13/08/2021 06:59, Paul Liu wrote:
> > Hi Fabio,
> >
> > Can we think of a way to keep this fip.bin feature? This is part of
> > the SystemReady IR certificate for this Compulab board. [1]
> >
> > [1]
> >
> https://developer.arm.com/architectures/system-architectures/arm-systemready/ir
>
> i.MX8MM EVK is also listed there and we don't use fip.bin on this
> platform (and
> not on any other i.MX8MM platform in mainline U-Boot).
>
> If you really want to use fip.bin, could you please let me know the
> exact
> build procedure for AT-F? Do you use mainline ATF?
>
> As a user of the IOT-GATE-iMX8, I would just like to be able to flash
> mainline
> U-Boot and move forward. Even better if I could use the same procedure
> that has been used on other i.MX8MM boards.
>
> Regards,
>
> Fabio Estevam
> --
> DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
> HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
> Phone: (+49)-8142-66989-60 Fax: (+49)-8142-66989-80 Email:
> festevam at denx.de
>


More information about the U-Boot mailing list