Stanislav Meduna wrote:
> Trying to debug it looks like this ends very soon - the
> code stepped through __lookup_machine_type and proceeded
> to __error_p - looks like the kernel is not happy with what
> skyeye looks like.
For uclinux-dev list: I'd like to use uclinux 2.6 for a mmu-less
at91 arm7tdmi machine with SkyEye - the goal is to have the
same environment for development as the real hardware.
Unfortunately I am not able to get this to boot at all.
I am using 20070130 + uClinux-dist-20070130-20070823.patch.gz
and current (svn) SkyEye. The toolchain is self-compiled
with recent binutils (2.17) and gcc (4.2.1)
So I digged a bit deeper. The code fails in the
__lookup_machine_type. In the attach you'll find
the disassembly and register/memory contents of where
and why it fails.
If you need more info, feel free to ask. Unfortunately
I know nearly nothing about ARM internals, so I am
not (yet? ;)) able to find the exact cause and fix
it myself.
Thanks
--
Stano
arch/arm/kernel/head-nommu.S
0x01008000 <stext+0>: mov r1, #251 ; 0xfb
0x01008004 <stext+4>: msr CPSR_c, #211 ; 0xd3
0x01008008 <stext+8>: mrc 15, 0, r9, cr0, cr0, {0}
0x0100800c <stext+12>: bl 0x10080b4 <__lookup_processor_type>
0x01008010 <stext+16>: movs r10, r5
0x01008014 <stext+20>: beq 0x10080ac <__error_p>
0x01008018 <stext+24>: bl 0x1008114 <__lookup_machine_type>
0x0100801c <stext+28>: movs r8, r5
0x01008020 <stext+32>: beq 0x10080ac <__error_p>
0x01008024 <stext+36>: ldr sp, [pc, #24] ; 0x1008044 <__switch_data>
0x01008028 <stext+40>: add lr, pc, #0 ; 0x0
0x0100802c <stext+44>: add pc, r10, #16 ; 0x10
arch/arm/kernel/head-common.S
0x010080b4 <__lookup_processor_type+0>: add r3, pc, #76 ; 0x4c
0x010080b8 <__lookup_processor_type+4>: ldmda r3, {r5, r6, r7}
0x010080bc <__lookup_processor_type+8>: sub r3, r3, r7
0x010080c0 <__lookup_processor_type+12>: add r5, r5, r3
0x010080c4 <__lookup_processor_type+16>: add r6, r6, r3
0x010080c8 <__lookup_processor_type+20>: ldmia r5, {r3, r4}
0x010080cc <__lookup_processor_type+24>: and r4, r4, r9
0x010080d0 <__lookup_processor_type+28>: teq r3, r4
0x010080d4 <__lookup_processor_type+32>: beq 0x10080e8
<__lookup_processor_type+52>
0x010080d8 <__lookup_processor_type+36>: add r5, r5, #52 ; 0x34
0x010080dc <__lookup_processor_type+40>: cmp r5, r6
0x010080e0 <__lookup_processor_type+44>: bcc 0x10080c8
<__lookup_processor_type+20>
0x010080e4 <__lookup_processor_type+48>: mov r5, #0 ; 0x0
0x010080e8 <__lookup_processor_type+52>: mov pc, lr
0x1008100 <lookup_processor_type+20>: 0x0101431c 0x010144bc
0x01008108 0x010144bc
0x1008110 <lookup_processor_type+36>: 0x010144bc
arch/arm/kernel/head-common.S
0x01008114 <__lookup_machine_type+0>: sub r3, pc, #20 ; 0x14
0x01008118 <__lookup_machine_type+4>: ldmia r3, {r4, r5, r6}
0x0100811c <__lookup_machine_type+8>: sub r3, r3, r4
0x01008120 <__lookup_machine_type+12>: add r5, r5, r3
0x01008124 <__lookup_machine_type+16>: add r6, r6, r3
0x01008128 <__lookup_machine_type+20>: ldr r3, [r5]
==>
r1 0xfb 251
r3 0x54410009 1413545993
r4 0x1008108 16810248
r5 0x10144bc 16860348
r6 0x10144bc 16860348
0x10144bc <__tagtable_parse_tag_cmdline>: 0x54410009 0x0100c2a0
0x54410007
===
0x0100812c <__lookup_machine_type+24>: teq r3, r1
0x01008130 <__lookup_machine_type+28>: beq 0x1008144
<__lookup_machine_type+48>
==> not equal, so it continues
0x01008134 <__lookup_machine_type+32>: add r5, r5, #52 ; 0x34
0x01008138 <__lookup_machine_type+36>: cmp r5, r6
0x0100813c <__lookup_machine_type+40>: bcc 0x1008128
<__lookup_machine_type+20>
==> no more machine infos, so it ends with unknown machine
0x01008140 <__lookup_machine_type+44>: mov r5, #0 ; 0x0
0x01008144 <__lookup_machine_type+48>: mov pc, lr
arch: arm
cpu info: armv3, arm7tdmi, 41007700, fff8ff00, 0
mach info: name at91, mach_init addr 0x80621f0
SKYEYE: use arm7100 mmu ops
big_endian is false.
uart_mod:0, desc_in:, desc_out:, converter:
Loaded ROM ./romfs.img
start addr is set to 0x01008000 by exec file.
sim: At 01008000 Instr e3a010fb Mode 13
sim: At 01008004 Instr e321f0d3 Mode 13
sim: At 01008008 Instr ee109f10 Mode 13
sim: At 0100800c Instr eb000028 Mode 13
sim: At 010080b4 Instr e28f304c Mode 13
sim: At 010080b8 Instr e81300e0 Mode 13
sim: At 010080bc Instr e0433007 Mode 13
sim: At 010080c0 Instr e0855003 Mode 13
sim: At 010080c4 Instr e0866003 Mode 13
sim: At 010080c8 Instr e8950018 Mode 13
sim: At 010080cc Instr e0044009 Mode 13
sim: At 010080d0 Instr e1330004 Mode 13
sim: At 010080d4 Instr 0a000003 Mode 13
sim: At 010080e8 Instr e1a0f00e Mode 13
sim: At 01008010 Instr e1b0a005 Mode 13
sim: At 01008014 Instr 0a000024 Mode 13
sim: At 01008018 Instr eb00003d Mode 13
sim: At 01008114 Instr e24f3014 Mode 13
sim: At 01008118 Instr e8930070 Mode 13
sim: At 0100811c Instr e0433004 Mode 13
sim: At 01008120 Instr e0855003 Mode 13
sim: At 01008124 Instr e0866003 Mode 13
sim: At 01008128 Instr e5953000 Mode 13
sim: At 0100812c Instr e1330001 Mode 13
sim: At 01008130 Instr 0a000003 Mode 13
sim: At 01008134 Instr e2855034 Mode 13
sim: At 01008138 Instr e1550006 Mode 13
sim: At 0100813c Instr 3afffff9 Mode 13
sim: At 01008140 Instr e3a05000 Mode 13
sim: At 01008144 Instr e1a0f00e Mode 13
sim: At 0100801c Instr e1b08005 Mode 13
sim: At 01008020 Instr 0a000021 Mode 13
sim: At 010080ac Instr e1a00000 Mode 13
sim: At 010080b0 Instr eafffffd Mode 13
sim: At 010080ac Instr e1a00000 Mode 13
sim: At 010080b0 Instr eafffffd Mode 13
... loops here
_______________________________________________
uClinux-dev mailing list
[email protected]
http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
This message was resent by [email protected]
To unsubscribe see:
http://mailman.uclinux.org/mailman/options/uclinux-dev