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

Reply via email to