I tried to change the eMMC boot part from mmcblk0boot0 to mmcblk0boot1 but can’t get my board to boot now anymore, instead of showing output for the serial console the tx and reset out led blink red in ~5s intervals.
The procedure I did was the following:
disable write protection of mmcblk0b00t1: echo 0 > /sys/block/mmcblk0boot1
flash the bootloader: dd if=imx-boot of=/dev/mmcblk0boot1 seek=0
enable write protection again
set the boot partition of the eMMC module to boot1: mmc bootpart enable 2 0 /dev/mmcblk0
reboot
The bootloader I used is the same I used many times before so it should not be the issue.
I can get back into the operating system by going into recovery mode and loading u-boot (the same one I flashed to mmcblk0b00t1 ) with UUU (not flashing it) that way.
Are there some kind of default settings for the eMMC module registers (BOOT_BUS_CONDITIONS, PARTITION_CONFIG)? Switching back with mmc bootpart enable 1 0 /dev/mmcblk0 to boot0 did not result in a bootable system.
Can you please explain a little bit more about your need to change the eMMC boot partition? Can you also share the partition table you’re currently using?
If you did not mess with any other fuses/settings then just resetting mmc bootpart should cut it. Anyway, as follows them eMMC settings we are using by default (however, this are them U-Boot commands):
fast boot, send acknowledge, high speed, 8-bit DDR
fuse sense 0 19
0x00000027
And last but not least them RAM ID fuses:
fuse read 0 765
Please provide textual output of above commands for us to analyse what may have gone wrong. Thanks!
Colibri iMX8QXP 2GB V1.0B
Please note that this is an early access sample with an early SoC silicon revision. Later silicon will require different SECO firmware so boot containers are incompatible.
Thank you Marcel, resetting the eMMC has fixed my issue, can you explain a little bit about the mmc rst-function command? I havent used that one previously, and that might have been the missing link? As far as I understand it, this should have been set at factory already?
That one is actually one-time programmable only anyway and we already do/did set that during our factory production programming. Full explanation you may find in the eMMC spec. Basically, the reset pin of an eMMC part is not functional by default unless this configuration is done. Thanks for your feedback!