Hi All,
I am working on a custom IMX6 Solo board. I built a custom u-boot based on the mainline u-boot version 2019.10. My u-boot image runs fine when I put the board in serial downloader mode (BOOT_MODE[1:0] = 01b) and load the image using boundary devices USB loader. From u-boot, I am then copying the same u-boot image (.imx extension) from an SD card to SPI flash at address 0x400. I read the image back from the SPI flash and stored it on the SD card under a different name. Beyond Compare confirms that both files are identical suggesting the SPI flash write was successful.
I've set the fusemap as follows:
BOOT_CFG1 = 0x30
BOOT_CFG2 = 0x00
BOOT_CFG3 = 0x00
BOOT_CFG4 = 0x08
fuse prog -y 0 5 0x08000030
I also set BT_FUSE_SEL by typing fuse prog 0 6 0x00000010.
I then tried to boot off the SPI flash by putting the chip in 'Boot From Fuses' mode (BOOT_MODE[1:0] = 00b). Sadly, I don't see any serial traces to indicate that u-boot is running. I attached a logic analyser and I can see that the entire image is being read from the flash. My understanding is that if either the IVT or the DCD verification fails, it will switch to serial download mode. The fact that the chip is reading the whole .imx file suggests that the IVT and DCD are fine. I also noticed, after attempting to boot from SPI flash, I wasn't able to use the USB loader to load the u-boot image again. I have to reset the board and put it in serial download mode. This suggests that the chip is stuck somewhere but I can't figure out where.
Attached is a screenshot of my logic analyser trace. I've also attached the full capture but Saleae's software (Logic analyzer software from Saleae ) is needed to open it
Any help would be appreciated.
Daniel
已解决! 转到解答。
Hi Igor,
The issue turned out to be in my imximage.cfg file. I replaced 'BOOT_OFFSET FLASH_OFFSET_STANDARD' with 'BOOT_FROM spi' and it is booting fine now.
Thank you for all your help.
Daniel
Hi Igor,
The issue turned out to be in my imximage.cfg file. I replaced 'BOOT_OFFSET FLASH_OFFSET_STANDARD' with 'BOOT_FROM spi' and it is booting fine now.
Thank you for all your help.
Daniel
Hi Igor,
Thank you for your response.
Unfortunately, I am still unable to boot off SPI flash.
I switched to nxp uboot but that made no difference. I was still seeing the same behaviour.
I also read the OCRAM at address 0x907400 and I can see the IVT header there. Please see attached screenshot.
Regards,
Daniel
Hi Daniel
i.MX6DL Sabre SD board has spi-nor, one can test on it using
uuu or mfg tool and demo images from i.MX Software and Development Tools | NXP
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hi Daniel
first may be recommended to try with nxp uboot:
Then attach jtag and check OCRAM address 0x00907400, described in
Figure 8-3. Internal ROM and RAM memory map, it should have ivt header copied from ecspi
i.MX 6Solo/6DualLite Applications Processor Reference Manual
For spi-nor programming one can use uuu tool, there is example "example_spinor.uuu"
in Linux Binary Demo Files - i.MX 6QuadPlus, i.MX 6Quad, i.MX 6DualLite, i.MX 6SoloX
GitHub - NXPmicro/mfgtools: Freescale/NXP I.MX Chip image deploy tools.
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------