[U-Boot] More problems booting an i.MX6 from NOR flash

Dirk Behme dirk.behme at gmail.com
Tue Sep 11 21:05:10 CEST 2012


On 11.09.2012 18:32, Carolyn Smith wrote:
> Thanks to Dirk for your previous advice. We had a pullup on one of the
> reserved BOOT_CFG pins that caused problems accessing NOR flash.
>
> Now I can put code in the NOR flash. If the code is incorrect in some way
> (not sure how yet), I end up with a board that I can't get control of with
> the BDI. I get
>
> - TARGET: processing reset request
> - TARGET: BDI executes scan chain init string
> - TARGET: Bypass check 0x00000001 =>  0x00000004
> - TARGET: JTAG exists check passed
> - Core#0: ID code is 0x4BA00477
> - Core#0: DP-CSW  is 0xF0000000
> - Core#0: DBG-AP  at 0x82150000
> - Core#0: DIDR    is 0x3513702A
> - TARGET: Reset sequence passed
> - TARGET: resetting target passed
> - TARGET: processing target startup ....
> # TARGET: core #0 startup failed
> # TARGET: timeout while waiting for debug mode
> # TARGET: processing target startup failed
> # TARGET: timeout while waiting for debug mode
> I've tried different STARTUP modes, adding WAKEUP delays, different RESET
> modes all of which don't help.
>
> Any suggestions?

Well, this depends on your question ;)

If your question is "how to re-enable a board which has wrong code in 
the NOR flash and therefore doesn't boot and I can't access the NOR 
flash any more to correct it": Then you have to re-solder the boot 
mode resistors so that a different boot mode is used (e.g. from SD 
card). This will disable the boot from the broken NOR and prevent the 
boot ROM from crashing.

If your question is "what's wrong with the content of my boot ROM?": I 
would propose to use a quite simple image in the NOR: No DCD Data, as 
user code just one assembly instructions like an infinite loop and as 
execution address of that loop the internal OCRAM. You could use an 
existing U-Boot i.MX6 board and strip it down. This should bring you 
to an image which let the boot ROM jump to the internal OCRAM and wait 
there in the infinite loop. You are successful with this if you attach 
with your debugger and can see the infinite loop running in the 
internal OCRAM, then.

If your question is "why can't I attach with the debugger any more?": 
Well, maybe because your code in the NOR flash confuses the boot ROM 
so much that it crashes in a way that stops the access with the JTAG. 
I saw this in the past with corrupted NOR flash images, too. The only 
way I could find out of this was to switch the boot mode by 
re-soldering, see my answer above.

Best regards

Dirk


More information about the U-Boot mailing list