Dear TI team,
we're looking into possibilities of having redundant copies of the SBL for a TI-RTOS R5F application on a custom board that's going to boot from QSPI.
I found (mostly out of luck - imho this is hidden too well) that the AM65x ROM uses several backup addresses when booting from flash devices. The TRM lists these addresses for OSPI/QSPI/SPI in table 4-55:
I tried putting my SBL image at 0x20000, keeping the area from 0x00000 to 0x1FFFF erased, but the board wouldn't boot.
While trying to figure out if there's any way of debugging this, I noticed that the AM65x apparently holds the boot parameter table that it uses in RAM, so I had a look at the memory listed in Table 4-110:
I dumped the content at these addresses using the debugger, and found content that mostly matched the documentation, but with different backup read addresses:
Starting from address 0x41C7FD28 (0x41c7fc00 + 296) I read the values 00000000, 00400000, 00800000 and 00C00000.
After putting my SBL image at offset 0x400000 instead of 0x20000, the system booted just fine.
What I'd like to know is:
- Is this a supported use-case, i.e. should I be able to locate a SBL image at one of the backup addresses and expect the system to boot from there?
- Are my findings about the actual backup addresses for OSPI correct, or is there something else wrong with our setup/approach that leads to these addresses instead of the ones from the TRM?
- If the AM65x PG1.0 actually uses 0x400000 etc. as the backup addresses for OSPI boot, is this intentional and just a mistake in the documentation, or is this a bug in the ROM, and future versions of the AM65x are going to use the offsets from the TRM? The smaller step size would probably be better suited to xSPI flashes, since these are most likely only a few MB.
Regards,
Dominic