[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: