1*54fd6939SJiyong ParkNXP i.MX 8M Series 2*54fd6939SJiyong Park================== 3*54fd6939SJiyong Park 4*54fd6939SJiyong ParkThe i.MX 8M family of applications processors based on Arm Corte-A53 and Cortex-M4 5*54fd6939SJiyong Parkcores provide high-performance computing, power efficiency, enhanced system 6*54fd6939SJiyong Parkreliability and embedded security needed to drive the growth of fast-growing 7*54fd6939SJiyong Parkedge node computing, streaming multimedia, and machine learning applications. 8*54fd6939SJiyong Park 9*54fd6939SJiyong Parkimx8mq is dropped in TF-A CI build due to the small OCRAM size, but still actively 10*54fd6939SJiyong Parkmaintained in NXP official release. 11*54fd6939SJiyong Park 12*54fd6939SJiyong ParkBoot Sequence 13*54fd6939SJiyong Park------------- 14*54fd6939SJiyong Park 15*54fd6939SJiyong ParkBootrom --> SPL --> BL31 --> BL33(u-boot) --> Linux kernel 16*54fd6939SJiyong Park 17*54fd6939SJiyong ParkHow to build 18*54fd6939SJiyong Park------------ 19*54fd6939SJiyong Park 20*54fd6939SJiyong ParkBuild Procedure 21*54fd6939SJiyong Park~~~~~~~~~~~~~~~ 22*54fd6939SJiyong Park 23*54fd6939SJiyong Park- Prepare AARCH64 toolchain. 24*54fd6939SJiyong Park 25*54fd6939SJiyong Park- Build spl and u-boot firstly, and get binary images: u-boot-spl.bin, 26*54fd6939SJiyong Park u-boot-nodtb.bin and dtb for the target board. 27*54fd6939SJiyong Park 28*54fd6939SJiyong Park- Build TF-A 29*54fd6939SJiyong Park 30*54fd6939SJiyong Park Build bl31: 31*54fd6939SJiyong Park 32*54fd6939SJiyong Park .. code:: shell 33*54fd6939SJiyong Park 34*54fd6939SJiyong Park CROSS_COMPILE=aarch64-linux-gnu- make PLAT=<Target_SoC> bl31 35*54fd6939SJiyong Park 36*54fd6939SJiyong Park Target_SoC should be "imx8mq" for i.MX8MQ SoC. 37*54fd6939SJiyong Park Target_SoC should be "imx8mm" for i.MX8MM SoC. 38*54fd6939SJiyong Park Target_SoC should be "imx8mn" for i.MX8MN SoC. 39*54fd6939SJiyong Park Target_SoC should be "imx8mp" for i.MX8MP SoC. 40*54fd6939SJiyong Park 41*54fd6939SJiyong ParkDeploy TF-A Images 42*54fd6939SJiyong Park~~~~~~~~~~~~~~~~~~ 43*54fd6939SJiyong Park 44*54fd6939SJiyong ParkTF-A binary(bl31.bin), u-boot-spl.bin u-boot-nodtb.bin and dtb are combined 45*54fd6939SJiyong Parktogether to generate a binary file called flash.bin, the imx-mkimage tool is 46*54fd6939SJiyong Parkused to generate flash.bin, and flash.bin needs to be flashed into SD card 47*54fd6939SJiyong Parkwith certain offset for BOOT ROM. the u-boot and imx-mkimage will be upstreamed 48*54fd6939SJiyong Parksoon, this doc will be updated once they are ready, and the link will be posted. 49*54fd6939SJiyong Park 50*54fd6939SJiyong ParkTBBR Boot Sequence 51*54fd6939SJiyong Park------------------ 52*54fd6939SJiyong Park 53*54fd6939SJiyong ParkWhen setting NEED_BL2=1 on imx8mm. We support an alternative way of 54*54fd6939SJiyong Parkboot sequence to support TBBR. 55*54fd6939SJiyong Park 56*54fd6939SJiyong ParkBootrom --> SPL --> BL2 --> BL31 --> BL33(u-boot with UEFI) --> grub 57*54fd6939SJiyong Park 58*54fd6939SJiyong ParkThis helps us to fulfill the SystemReady EBBR standard. 59*54fd6939SJiyong ParkBL2 will be in the FIT image and SPL will verify it. 60*54fd6939SJiyong ParkAll of the BL3x will be put in the FIP image. BL2 will verify them. 61*54fd6939SJiyong ParkIn U-boot we turn on the UEFI secure boot features so it can verify 62*54fd6939SJiyong Parkgrub. And we use grub to verify linux kernel. 63