[okl4-developer] S3C2440A and okl4

Rémy Gottschalk rgottschalk at linagora.com
Tue Aug 19 00:33:49 EST 2008


Geoffrey Lee a écrit :
> On Mon, Aug 18, 2008 at 01:01:15PM +0000, Rémy Gottschalk wrote:
>> Hello all,
>>
>> Loading kernel.traps @ 0x3002c000 (4096 bytes)
>> Loading kernel.utcb_page @ 0x3002d000 (4096 bytes)
>> Loading l4test.text @ 0x300a0000 (212444 bytes)
>> Loading l4test.rodata @ 0x300d3ddc (28900 bytes)
>> Loading l4test.data @ 0x30503000 (33240 bytes)
>> Loading l4test.got @ 0x3050b1d8 (16 bytes)
>> Clearing l4test.bss @ 0x3050c000 (217132 bytes)
>> Loading bootinfo @ 0x3002e000 (4096 bytes)
>> ## Starting application at 0x30000000 ...
>> s3c2410_init_interrupts:124: LN2410_INT_MASK
>> s3c2410_init_interrupts:135: LN2410_INT_MASK: 6f7f7fff
>>
>> OKL4 - (provider: Open Kernel Labs) built on Aug 18 2008 12:20:23 using 
>> gcc version 3.4.4.
>> Kernel undefined exception at f002c12c
>> --- KD# exception  ---
> 
> Hi Remy
> 
> The f002c12c is the location of the instruction which caused
> the undefined exception.  You can work out what was happening at
> that point by disassembling the kernel binary. 

The faulty instruction seems to be  a clzeq within arm_comon_return :

f002c100 <arm_common_return>:
f002c100:       e3a0020f        mov     r0, #-268435456 ; 0xf0000000
f002c104:       e5900000        ldr     r0, [r0]
f002c108:       e3a0c20f        mov     ip, #-268435456 ; 0xf0000000
f002c10c:       e59cc014        ldr     ip, [ip, #20]
f002c110:       ee03cf10        mcr     15, 0, ip, cr3, cr0, {0}
f002c114:       e3a0020f        mov     r0, #-268435456 ; 0xf0000000
f002c118:       e5900000        ldr     r0, [r0]
f002c11c:       e20d1ffe        and     r1, sp, #1016   ; 0x3f8
f002c120:       e3510ffe        cmp     r1, #1016       ; 0x3f8
f002c124:       0280d058        addeq   sp, r0, #88     ; 0x58
f002c128:       059010b8        ldreq   r1, [r0, #184]

f002c12c:       016f1f11        clzeq   r1, r1

f002c130:       03510000        cmpeq   r1, #0  ; 0x0
f002c134:       e59de044        ldr     lr, [sp, #68]
f002c138:       e9dd7fff        ldmib   sp, {r0, r1, r2, r3, r4, r5, r6, 
r7, r8, r9, sl, fp, ip, sp, lr}^
f002c13c:       e1a00000        nop                     (mov r0,r0)
f002c140:       e16ff00e        msr     SPSR_fsxc, lr
f002c144:       e59de040        ldr     lr, [sp, #64]
f002c148:       e28dd048        add     sp, sp, #72     ; 0x48
f002c14c:       125ef001        subnes  pc, lr, #1      ; 0x1
f002c150:       e59f0d48        ldr     r0, [pc, #3400] ; f002cea0 
<scheduler_ptr+0xc>
f002c154:       e1a0f000        mov     pc, r0


> Also, when you 
> download the image.boot image to your machine, where does the
> bootloader put it in memory?
> 

The image is downloaded at 0x33000000. (My ram goes from 0x30000000 to 
0x34000000).


Regards,

-- 
Remy Gottschalk - rgottschalk at linagora.com
Ingénieur informatique embarquée
Groupe LINAGORA - http://www.linagora.com
Tél.: +33(0)1 58 18 68 28 - Fax : +33(0)1 58 18 68 29



More information about the Developer mailing list