Hi.
I'm trying to get a bare board up and running with the iMX6SX processor and have looked at the chapters in the manual and on forums explaining the IVT. I am trying to boot from standard NOR flash memory (parallel) with the base address located at 0x5000_0000 on CS0. I do not want to use u-boot for this. I can burn the flash memory and run/debug from it using the IAR toolchain ok but when I start the board without a debugger it doesn't boot.
typedef struct
{
uint32_t header;
uint32_t *entry;
uint32_t reserved1;
uint32_t *dcd;
boot_data_t *boot_data;
uint32_t *self;
uint32_t *csf;
uint32_t reserved2;
} image_vector_table_t;
My IVT is shown below and is located at 0x1000 from the start of the ROM at 0x5000_0000
50001000: d1002040 dc400050 00000000 00000000
50001010: 3c420050 00100050 00000000 00000000
entry - 0x500040dc - first instruction of the program to be executed
dcd - NULL
boot_data - 0x5000423c - pointer to the boot data
self - 0x50001000 - pointer to the IVT's own address
csf - NULL
My boot data (located at 0x5000423c) is
typedef struct
{
void *ImagePtr;
UWORD32 SizeOfProgramImage;
UWORD32 PlugInFlag;
}tBootData;
ImagePtr - 0x500040dc this is the same ptr as used in IVT.entry
SizeOfProgramImage - 0 // I do not want anything copied
PlugInFlag - 0
Have I got this completely wrong?
Many Thanks