imx6 solo uboot nor XIP ivt header

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

imx6 solo uboot nor XIP ivt header

2,053 Views
shambosch
Contributor II

Hi,

I am trying to boot from parallel NOR and i don't understand how the IVT header is setup.

It seems the addresses in the IVT header are calculated based on CONFIG_SYS_TEXT_BASE.

Now if i specify CONFIG_SYS_TEXT BASE as 0x08800000 ( some random offset from the NOR flash base address)

I get the following addresses:

entry: 0x08800000

dcd: 0x087FF914

boot_data: 0x087FF908

self: 0x087FF8e8

inside the IVT header.

I currently have a custom imx6solo based board on which i am able to run uboot on RAM via JTAG. I would like to copy uboot to nor flash and boot from there on power up. From what i have understood after going over the manual is that the BOOT rom will look for the IVT header at 0x08001000.

Now if i flash the uboot.imx at this address (0x08001000) will Boot rom copy the entire image to onchip ram or just the IVT header and boot data? In the manual it is mentioned that Initial Load region size for NOR is entire program image. If that is the case then program image is size is bigger than OCRAM available area.

Can someone please clarify what the Boot ROM does when booting from EIM NOR.

Labels (1)
5 Replies

1,440 Views
igorpadykov
NXP Employee
NXP Employee

Hi shambosch

booting from EIM NOR may performed using xip (running from nor)

or in usual way (first copy image to ddr and jumping to it). For xip

"entry": Absolute address of the first instruction to execute from the image

should be pointed in nor, ivt structure is described on

Figure 8-20. Image Vector Table i.MX6SDL Reference Manual

http://cache.freescale.com/files/32bit/doc/ref_manual/IMX6SDLRM.pdf

Boot rom copies IVT header to onchip ram then analyze IVT header.

May be useful to check sect.4.4.1.4 Flashing U-Boot on Parallel NOR from U-Boot

attached Linux Guide.

Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

1,440 Views
shambosch
Contributor II

Thanks for clarifying that. I am able to boot from NOR by copying the image to ddr but xip does not seem to work.

The "entry" address points to an address in NOR(0x8800000). Now do i need to flash the u-boot.bin at (0x8800000) given that BOOT rom will jump to this address? or will the code be relocted there? Since i flashed u-boot.imx at 0x8001000 so the code is currently situated at 0x8001000 + some offset. I went through the linux guide and i think it only mentions flashing uboot on NOR which i am already able to do.

0 Kudos

1,440 Views
igorpadykov
NXP Employee
NXP Employee

"entry" address should point to starting uboot address (first uboot instruction) :
kernel - Difference between CONFIG_SYS_TEXT_BASE and _start - Stack Overflow 
boot_data structure (*start: absolute address of the boot image) also should point to nor.

Best regards
igor

1,440 Views
shambosch
Contributor II

After some more debugging it turns out that Boot Rom is unable to perform NOR write operation. It is able to read from NOR and copy to RAM and run from there. Which is puzzling because I took the NOR dcd configuration from the cmm script I use to flash u-boot.imx into NOR (which happens to work fine).

0 Kudos

1,440 Views
igorpadykov
NXP Employee
NXP Employee

parallel NOR distinguish between "write" (usually this is commands)

and "program" operation. "Program" operation requires reading status register

(whether program/erase complete), this can be done using plugin method

(described in Boot Chapter of RM).

Best regards
igor

0 Kudos