Hello dear NXP fellows,
I am trying to bring up a custom board ADLINK LEC-iMX8M Plus SMARC Module using BSP from ADLINK meta-adlink-nxp-kirkstone and building yocto project as per the instructions. However when I flash the bootloader (imx_boot), I get error which is shown below.
I have tried to build U-boot, ATF & DDR firmware in standalone ENV
#uboot make distclean make O=build adlink_lec8mp_defconfig make O=build #ATF make PLAT=imx8mp bl31
and then created the bootcontainer using mkimage utility, but still I get the same error.
###############################################
U-Boot SPL 2022.04-lf_v2022.04+g16e8414193 (Oct 08 2022 - 13:33:43 +0000)
No pca9450@25
DDRINFO: start DRAM init
DDRINFO: DRAM rate 3000MTS
DDRINFO:ddrphy calibration done
DDRINFO: ddrmix config done
Normal Boot
Trying to boot from BOOTROM
Boot Stage: Primary boot
image offset 0x8000, pagesize 0x200, ivt offset 0x0
Can't support legacy image
SPL: failed to boot from all boot devices
ERROR ### Please RESET the board
###############################################
Debugging Results:
I have search alot about this issues and it looks like there are some image offset issues (specially IVT table). Image Vector Table (IVT) is a list of pointers located at a fixed address that the ROM examines to determine where the other components of the program image are located.
Based on Boot problems imx8mp_evk
I have tried to compile uboot for iMX8MP Model
make distclean make O=build imx8mp_evk_defconfig make O=build
and then generated bootcontainer using mkimage utility. This image run successfully and board is able to load uboot.
I compared the IVT table for both iMX8MP & ADlink_LEC8MP and I see a few differences which I guess is the reason for my bootloader not booting in the case for ADLINK.
I am attaching here IVT images for both cases. I am not sure how to correctly set these values in source code. However I believe I have identified the root casue for my issue. May I also know how can I validate/decode the uboot flash image to know its expected offsets?
Thanks in advance.
Regards
Asad
Solved! Go to Solution.
ADlink_LEC8MP is a special SMARC board based on IMX8MP. https://www.ipi.wiki/pages/imx8mp-docs?page=ModuleIntroduction.html
In fact I have found the solution. It was an issue of wrong UART address for ATF "ATF_BOOT_UART_BASE" in uboot. After setting it correctly as per the UART address on carrier board (Renasas SMARC), I got it working.
ADlink_LEC8MP is a special SMARC board based on IMX8MP. https://www.ipi.wiki/pages/imx8mp-docs?page=ModuleIntroduction.html
In fact I have found the solution. It was an issue of wrong UART address for ATF "ATF_BOOT_UART_BASE" in uboot. After setting it correctly as per the UART address on carrier board (Renasas SMARC), I got it working.
what difference between iMX8MP & ADlink_LEC8MP ? bootdata.size? anything difference do you find? the ADLINK LEC-iMX8M Plus SMARC isn't nxp board, I'm not familiar with this, how did you download the images to the board? pls tell me what command you use