building bootstrap

Tsai, Tung-Chieh tsaitungchieh at gmail.com
Tue Dec 2 16:12:56 CET 2008


Dear All,

  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 ?)

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.

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 ?

Best Regards,
Tsai, Tung-Chieh




More information about the l4-hackers mailing list