
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.