AnsweredAssumed Answered

Booting iMX6SX from EIM-NOR.

Question asked by Keith Stenson on May 16, 2017
Latest reply on May 17, 2017 by Yuri Muhin

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

Outcomes