flash boot

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

flash boot

Jump to solution
1,104 Views
saida
Contributor II

hi community

in my custom board i have spansion flash (29gl064h).

my idea is load u-boot.imx in flash and boot from flash, for this i am doing following steps

1. from u-boot i erased flash

2.u-boot.imx is loaded in to 0x12000000 address in ddr

3.cp.w 0x12000000 0x08001000 0x30600 (my u-boot.imx size is 0x60c00 bytes and i  converted to words which is 0x60c00/2=0x30600)

than i am booting from standalone after resetting the processor

but it's not booting i mean prompt is not coming on hyper terminal

the same u-boot code is running from ARM-DS5 debugger (where i downloaded u-boot code into flash)

from reference manual i found that IVT offset is 0x1000  and my nor flash is on CS0 at 0x08000000 address.

after loading u-boot.imx into flash my Debugger JTAG is Not connecting (it is giving unable to stop running target error)

what could be the problem ?

plz give yous suggestions in this regard

thanks in advance

Saida

Labels (1)
0 Kudos
1 Solution
789 Views
igorpadykov
NXP Employee
NXP Employee

Hi saida

only boot options is 16 bits as describes 8.5.1.

One can also try with sdk script, I would highly recommend to check

with oscilloscope data on nor flash pins. At least you should see and check

ivt header data. ivt header should be placed on 0x08001000.

Btw had you implemented "Bus isolation circuit" as described in

sect2.3 Bus isolation circuit i.MX6 System Development User’s Guide (rev.1, 6/2013)  ?

http://cache.freescale.com/files/32bit/doc/user_guide/IMX6DQ6SDLHDG.pdf

After nor boot fails, processor should go to Serial Downloader, one can detect

it connecting usb cable and running mfg tools.

For connection with jtag one can set BOOT_CFG4[7]=1 (enter infinite loop) then try to

connect with jtag. Then check registers SRC_SBMR1,2 they should have

correct boot settings for parallel nor. One can debug it further using post

below (Tim Harvey 30.05.2013 18:26)

https://community.freescale.com/message/332928#332928

Best regards

igor

View solution in original post

0 Kudos
6 Replies
789 Views
igorpadykov
NXP Employee
NXP Employee

HI saida

one can check pinmux boot settings, please refer to

Table 8-10. EIM IOMUX Pin Configuration i.MX6SDL Reference Manual (rev.2  5/2015),

check nor lines with oscilloscope.

Also, had you tried u-boot.imx to boot from other device, for example SD ?

Reason is that for custom board u-boot.imx should be rebuilt, changes should be

done in mx6dl_4x_mt41j128.cfg (ddr settings found from ddr test) and

uboot../configs/mx6qsabreauto.h - tweak ddr size, also pay attention to:

/*Since the pin conflicts on EIM D18, disable the USB host if the NOR flash is enabled */

Best regards

igor

-----------------------------------------------------------------------------------------------------------------------

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

-----------------------------------------------------------------------------------------------------------------------

0 Kudos
789 Views
saida
Contributor II

HI igorpadykov

i can assume from your reply that the procedure what i am doing is correct to load into norflash.

1. From Table 8-9 (8.5.1) page no 398, i configured internal boot mode, nor flash on EIM bus and norflash is notmuxed on lower half data bus.

2. i have Sabresd Dual Lite development board and u-boot is  rebuild (u-boot-2015-01) and using dd command i loaded into SD card from that u-boot is running on Sabresd board but my custom board don't have sdcard.

3. From ARM-DS5 also i loaded u-boot(used for to load symbols) and u-boot.bin files into DDR and u-boot is working. here i used DDR Script file through debugger which is from SDK source code tools directory.

4.EIM pads for lower half i checked in debugger memory view from IOMUX registers 0x020e0054 to 8c and 0x020e0098.

5.i am building u-boot for mx6sabresd.h board only because the DDR which i have is same with Sabresd board.

6. i am expecting that whether DDR is initialized or not ?

7. where this DCD script is in u-boot.

8. why my debugger is not connecting to target after nor flash written and trying to boot from it ?

Regrds

Saida

0 Kudos
789 Views
igorpadykov
NXP Employee
NXP Employee

Hi saida

though, as you said "board only because the DDR which i have is same with Sabresd board",

it does not guarantee that ddr settings for Sabresd board will work good on your board.

Please run DDR test:

https://community.freescale.com/docs/DOC-96412

new ddr settings found from ddr test should be entered to mx6dl_4x_mt41j128.cfg

and uboot should be rebuilt.

>why my debugger is not connecting to target after nor flash written and trying to boot from it

because processor entered unrecoverable state after executing wrong command.

Best regards

igor

0 Kudos
789 Views
saida
Contributor II

Hi igorpadykov

thanks for your quick reply

1. from your last post i will try to modify mx6q_4x_mf41j128.cfg and mxdlsabresd.cfg file with "nor" instead of "sd" than i will come to back.

2. can i do like this, taking copy of  data from this script "MX6DL_SabreSD_DDR3_v1.6" from SDK/tools directory which is working with my custom board with ARM-DS5 debugger and modify mx6q_4x_mf41j128.cfg and mx6dlsabresd.cfg files with above data than build u-boot and flash it.?

3. after doing this where should i write data into flash whether it is at location 0x08000000 or 0x08001000 which is IVT offset.?

4. from reference manual i found that flash can be boot at 32bit bus but from 8.5.1 it is not there, how can i boot from 32 bit bus ?

this is my last step to up my board if it boots from flash my custom board is up (hopefully) and i really thanks to i.mx6 community people for their help and specifically you (igorpadykov) for consistent and quick response.

Regards

Saida

0 Kudos
790 Views
igorpadykov
NXP Employee
NXP Employee

Hi saida

only boot options is 16 bits as describes 8.5.1.

One can also try with sdk script, I would highly recommend to check

with oscilloscope data on nor flash pins. At least you should see and check

ivt header data. ivt header should be placed on 0x08001000.

Btw had you implemented "Bus isolation circuit" as described in

sect2.3 Bus isolation circuit i.MX6 System Development User’s Guide (rev.1, 6/2013)  ?

http://cache.freescale.com/files/32bit/doc/user_guide/IMX6DQ6SDLHDG.pdf

After nor boot fails, processor should go to Serial Downloader, one can detect

it connecting usb cable and running mfg tools.

For connection with jtag one can set BOOT_CFG4[7]=1 (enter infinite loop) then try to

connect with jtag. Then check registers SRC_SBMR1,2 they should have

correct boot settings for parallel nor. One can debug it further using post

below (Tim Harvey 30.05.2013 18:26)

https://community.freescale.com/message/332928#332928

Best regards

igor

0 Kudos
789 Views
saida
Contributor II

hi igorpadykov

Finally it's booting from NOR Flash thank you for your support.

1. i made changes to ddr and mx6sabresd configuration files with respect to my ddr script file than it is working.

2. i changed sd to nor in cfg files.

thanks and regards

saida

0 Kudos