[U-Boot] Hush shell crashes inserting into hashtable, simple shell works fine

Rick Ramstetter rick.ramstetter at gmail.com
Mon Feb 28 21:31:47 CET 2011


Hi all,

I have just ported U-boot to a new e500 based board that is similar to
Freescale's P2020RDB. A primary difference is that my board lacks NAND
flash.

U-boot works as expected when I configure it to use the "old, simple command
line parser." Upon enabling the Hush shell, I receive a bad trap into 0xd00
at 0x1ff5e458.

I spent a short bit of time debugging this bad trap and found it's occurring
in lib/hashtable.c inside himport_r(). The debug("")/printf() statement on
line 742 executes alright [debug("INSERT: table %p, filled %d/%d rv %p ==>
name=\"%s\" value=\"%s\"\n"<snip>]. The loop condition of the do-while
beginning on line 674 is then re-evaluated. It is during this re-evaluation
of the do-while loop's condition that the trap is thrown. I came to this
conclusion by placing debugging printf's into himport_r() and watching
execution on my bdi-3000. I never see execution jump back to the start of
the do-while. The behavior is the same when adding sync statements at the
top and bottom of the do-while.

Has anyone seen this or a similar behavior before? Does anyone have any
debugging advice? I reiterate that U-boot is working fine on my new board
when I do not enable the Hush shell.

Thank you,
-Rick R.

Seen when booting with Hush shell enabled:
INSERT: table 1ffbc91c, filled 1/521 rv 1fe30b3c ==> name="bootcmd"
value="setenv bootargs root=/dev/nfs rw nfsroot=$serverip:$rootpath
ip=$ipaddr:$serverip:$g
atewayip:$netmask:$hostname:$netdev:off console=$consoledev,$baudrate
$othbootargs;tftp $loadaddr $bootfile;tftp $fdtaddr $fdtfile;bootm $loadaddr
- $fdtaddr"
RICKDBG: Directly after previous printf()/debug() and directly before
do-while condition re-evaluation
Bad trap at PC: 1ff5e458, SR: 21200, vector=d00
NIP: 1FF5E458 XER: 20000000 LR: 1FF5E444 REGS: 1fe2dd58 TRAP: 0d00 DAR:
220980E0
MSR: 00021200 EE: 0 PR: 0 FP: 0 ME: 1 IR/DR: 00

GPR00: 1FF5E444 1FE2DE48 1FE2DF48 0000001D 00000001 1FE2DCF8 FFFFFFFF
00000000
GPR08: 1FF7444F 00000020 FFFFFFFF 000000F1 00000209 8C346C02 1FF743C4
1FF743BC
GPR16: 1FF74454 1FF74414 1FF743D8 1FF74350 1FE2DE68 1FE2DE50 1FE3012C
1FE2E130
GPR24: 00000000 1FE2E130 1FFBC91C 1FE2E229 24666474 61646472 220A007C
61646473
Call backtrace:
1FF5E444 1FF5E4DC 1FF43CF8 1FF43DE8 1FF43C6C 1FF362D8 1FF31648
37133713
Exception in kernel pc 1ff5e458 signal 0
### ERROR ### Please RESET the board ###


-- 
J. Rick Ramstetter
(201) 743-9867
http://paul.rutgers.edu/~jramstet

My @cs.rutgers.edu email address is forwarded to my @gmail.com address.


More information about the U-Boot mailing list