adam at os.inf.tu-dresden.de
Tue Dec 2 22:52:09 CET 2008
On Tue Dec 02, 2008 at 23:12:56 +0800, Tsai, Tung-Chieh wrote:
> I'm try to port Fiasco to an ARM platform, and I'm confused by
> the memory address settup in bootstrap package.
> What is the relationship between DEFAULT_RELOC_$(ARCH),
> MOD_ADDR, and RAM_BASE ?
> In the setting of Integratorcp, they're :
> DEFAULT_RELOC_arm = 0x0140,0000
> RAM_BASE = 0x0
> MOD_ADDR = 0x0150,0000
> (I wonder if this work on real integratorcp board ? Although QEMU
> just put 2 memory with the same size on 0x0 and 0x8000,0000, is the
> real one will remap all it's memory to 0x0 ?)
I never had a real integrator board myself, so I don't know.
Nevertheless it should not be problem to change the addresses.
> Because I see DEFAULT_RELOC_arm+RAM_BASE is used to be
> start address and in IMAGE_MODE, RAM_BASE+MOD_ADDR
> is used to be _mod_addr, So I guess RAM_BASE manes where the
> physical ram start, and DEFAULT_RELOC_arm, MOD_ADDR are
> realative to RAM_BASE, which are used to control start address of
> bootstrap image and specify where modules move to.
It's exactly like this. RAM_BASE is the start of the RAM,
DEFAULT_RELOC_arm is the relative address (to RAM_BASE) where bootstrap
is linked to and MOD_ADDR is the relative address (to RAM_BASE) where
the modules will be moved to.
> With these assumption, it will work unitl find_kip(), `fail to find kernel
> info page.' And then I found the address in regions are strange, only
> address in bootstrap and multiboot info seems correct, others seems
> irrelevant to RAM_BASE, looks like started at 0x0.
> I guess there is some setting I miss. Could anyone give some advice about
> it ?
Where is fiasco linked to? The addresses in the kernel also need to be
set properly. Look out for mem_layout-xxx.cpp and Kconfig in the bsp.
Adam adam at os.inf.tu-dresden.de
More information about the l4-hackers