[U-Boot-Users] register init
Hinko Kocevar
hinko.kocevar at iskramedical.si
Sun May 1 17:44:54 CEST 2005
Hello @LL,
i've ported u-boot to trizeps2 cpu module. It can boot and use tftp when
running under BDI debugger, so I guess basic parts are ported fine. When I try
to run board standalone it kind of hangs there... no output on serial console.
After few days of debugging I established that lowlevel_init() won't set the
GAFR0_x register(s) to defined value set in u-boot board config. Under BDI I
can see that at this point PC jumps to some random address - or throws an
exception that BDI intercepts, if I set 'VECTOR CATCH 0xde' directive in BDI
config.
After exception caught by the BDI I can set PC back few instrucions and board
would boot, console lives!
I've added few nop instructions* after ldr and str invocations that are setting
GAFRx registers, but that just delays the data abort seen before (eg. it would
happen when setting MSCx registers).
* As xscale manual suggests for imprecise data aborts.
Further, it is not always the same exception that occurs, it is data abort,
undefined instruction, and sometimes prefetch aborts are seen also.
And more, when the board boots by itself, which happens once in a while, I can
see it is looping inside serial - getc() code waiting for input. But there is
nothing shown on terminal and nothing can be input, since GAFR1_L is not setup
to provide FFUART function.
I've attached objdump and BDI output while single-stepping around critical section.
Any ideas?
reagrds,
hk
--
hinko <dot> kocevar <at> iskramedical <dot> si
Hinko Kocevar, embedded systems developer
Iskra Medical d.o.o., Stegne 23, 1k LJ, SLO-EU
"Aì rén" | [Analects XII:22]
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: single_step-bdi_ML
Url: http://lists.denx.de/pipermail/u-boot/attachments/20050501/e4df42f6/attachment.txt
More information about the U-Boot
mailing list