[okl4-developer] Stuck in kmem::free()

Charles Chiou cchiou at ambarella.com
Sun Jul 20 19:31:48 EST 2008


Hi,

I'm in the process of trying to port pistachio to an SoC with an ARM926EJ-S
core. It seems to run into prefetch abort exception in kmem::free(). I'd
appreciate if somebody could shed some lights on what I'm doing wrong.

The place it occurs is (where r3 is 0x10000100):

_ZN6kmem_t4freeEPvm:
0xF0004268 E92D40F0    STMFD       SP!,{R4-R7,LR}
0xF000426C E59F318C    LDR         R3,[PC,#+0x18c]
0xF0004270 E5933000    LDR         R3,[R3,#+0]
0xF0004274 E24DD010    SUB         SP,SP,#0x10
...
0xF00043E4 EAFFFFAD    B           0xf00042a0
0xF00043E8 E5933010    LDR         R3,[R3,#+0x10]    <--- !!!
0xF00043EC E3130002    TST         R3,#0x2
0xF00043F0 0AFFFFA6    BEQ         0xf0004290
0xF00043F4 E3A0003D    MOV         R0,#0x3d
0xF00043F8 EB0026AB    BL          _Z12tb_log_eventm ;
_Z12tb_log_eventm=0xf000deac
0xF00043FC EAFFFFA3    B           0xf0004290

It looks like kmem:free() is called with (start = 0xf0022590, end =
0xf0100000).

I'm stuck before the console is up, which is makes debugging very difficult
:( However, I also think the init hasn't run into where I mapped the
physical memory of my uart to 0xf9000000 (writing there doesn't output
anything).

This is my machine.py:

class a2(arm926ejs):
    platform = "ambarella"

class a2bub(a2):
    virtual = False
    memory = a2.memory.copy()
    memory['physical'] =     [Region(0xc0100000L, 0xc1000000L)]
    bootimage = "binary"


Thanks for the help!

Charles




More information about the Developer mailing list