I've read Tech Ref section 20.6 Program Image several times, hunted the web, and read the postings here and can't put all the details together to fully explain the complete boot process. I think the heart of it is that there isn't a description of what MOVES are happening during the process (from boot device to Dest Memory).
Figure 20-19 is the heart of everything happening here. A good diagram to be sure but it doesn't show the SEQUENCE of operations and the cause of the operation.
I'm building a bare-metal system. Questions regarding 20.6:
- IVT, DCD: This made complete sense to me until I saw a DCD copy in Dest Memory. My understanding is that the DCD is read and executed then discarded so why is a copy placed in Dest Memory?
- IVT, boot data: I mostly want to believe this is the absolute address in the boot device but then I see a copy in Dest Memory which doesn't seem to make sense because it seems to me that boot data sould just be read once from the boot device, acted upon, and discarded
- IVT, self: if I'm SPI FLASH boot, is this 0x00000400?
- IVT: why is there a copy of the IVT shown in Dest Memory? Shouldn't this too be read only from the boot device and discarded?
- Boot Data, start: is this absolute address in the boot device or Dest Memory? It seems like it must be in the boot device or the boot code wouldn't know where it is. However, if this is the case, how does the boot code know what address to use in Dest Memory?
Or, is is the first 4K of boot device blindly copied over then interpreted? If so, where does the 4K go in Dest Memory? Fixed address or set by me?