[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}
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.


Reply to: