[U-Boot] ARM926EJ-S: defining TEXT_BASE

Roman Mashak romez777 at gmail.com
Sun Dec 21 02:48:46 CET 2008


Hello

I have a trouble defining a valid TEXT_BASE value. On my chip, after
reset 0x0 and before remap points at NOR flash, RAM is mapped to
0x1000_0000. Therefore, U-Boot image should be linked to 0x0000_0000
address to properly start off the flash, i.e. TEXT_BASE defined in
$(uboot)/board/my_board/config.mk should be 0x00000000, right?

But uboot usually copies itself to RAM, which is at 0x1000_0000 in my
case -- it won't work as I understand, as my image is linked to
0x0000_0000. Then if we do remap first (making RAM at 0x0000_0000),
then copy image to  RAM, then there will no be a room for 'malloc'
area (which uboot allocates at lower addresses), as we specified
TEXT_BASE=0x0, and this is  the address U-Boot copies itself in memory
at.

How should I do then?

My guess is that ARM's startup code should be position independent,
but I have not found any compiler or linker options doing this (like
-fpic or -pie etc.). Perhaps I misunderstand something in a work of
U-Boot...

Thanks.

-- 
Roman Mashak


More information about the U-Boot mailing list