Problem:
Has anyone had success with the using the Software Boot Config to redirect a boot from warm reset to a device different than the POR boot device?
Scenario
I've a board design that has an unreliable NAND flash and an SD card (via MMC1). ECC can help but over a period even that fails. There is a periodic refresh applied as well to the contents of the NAND flash.
The sys.boot is strapped to boot from NAND flash and load its root file system from the MMC/SD
I want to change this so that it primarily boots off the SD card ( x-loader, u-boot and kernel and rootfs are stored there). I've shown that strapping the sys.boot lines to allow an MMC1 boot will succeed (with a properly formated SD card).
I wrote a small program to write into NAND flash which will configure the "Software Boot Config" scratch memory and then perform a reset through the RST_GS bit in the PRM_RSTCTRL. However I find it keeps rebooting to NAND flash because the PRM_RSTST register keeps reporting event as a the power on reset. Even after I clear this bit, it continues to boot into my flash. Its like it wont recognize the "software Boot Config" memory that I have initialized. Even after the reset I can read its contents Correctly. I've only implemented the first section of "Software Boot Config" memory and assumed since I did not initialize the timings they are not applied. I'll test that soon.
Is anyone familiar with the boot ROM config/detection of the MMC/SD device? Could I replicate this config and just read out the x-loader from the MMC/SD FAT32 partition to SDRAM and execute?