NanoNote debootstrap debugging
Hello again,
I'm still trying to debootstrap my NanoNote. I have the feeling that
there is something fairly fundamental that is preventing this from
working. Maybe there is a MIPS expert out there who understands this properly?
The NanoNote ships with OpenWRT. I have a debootstrapped tree on a
microSD card.
The symptom I have is that executables from my Debian chroot just hang
using 100% CPU when run. When I run them under gdb I see something
like this:
# gdb /usr/sbin/chroot
(gdb) run /card /bin/ls
{100% CPU observed in top in another terminal}
^C
Program received signal SIGINT, Interrupt.
0x2aac2d00 in ?? ()
(gdb) disas 0x2aac2cf0 0x2aac2d10
Dump of assembler code from 0x2aac2cf0 to 0x2aac2d10:
0x2aac2cf0: lui gp,0x2
0x2aac2cf4: addiu gp,gp,-7392
0x2aac2cf8: addu gp,gp,t9
0x2aac2cfc: move v0,a0
0x2aac2d00: swc1 $f20,56(a0)
0x2aac2d04: swc1 $f21,60(a0)
0x2aac2d08: swc1 $f22,64(a0)
0x2aac2d0c: swc1 $f23,68(a0)
It always hangs at the same address in all the programs I've tried (ls,
bash, echo, ...), except for ldconfig, which I believe is the only
statically-linked program; that stops at a different address which
disassembles to:
0x00441530 in ?? ()
(gdb) disas 0x00441520 0x00441540
Dump of assembler code from 0x441520 to 0x441540:
0x00441520: lui v0,0x1c3
0x00441524: ori v0,v0,0xffff
0x00441528: and a0,a0,v0
0x0044152c: lui v0,0xfe3c
0x00441530: cfc1 v1,$31
0x00441534: nop
0x00441538: and v1,v1,v0
0x0044153c: or v1,v1,a0
That "swc1 $f20" looks like a floating-point instruction. Similarly
"cfc1 v1,$31".
My guess is that this is the first FP instruction that it finds, and
that there is either a kernel or hardware incompatibility issue. Does
the CPU in my NanoNote have FP? Is there some sort of kernel emulation
or other support requirement?
Thanks for any suggestions.
Phil.
Reply to: