about Conventional Memory Region
adam at os.inf.tu-dresden.de
Sun Jul 6 23:51:46 CEST 2008
On Sun Jul 06, 2008 at 21:49:03 +0800, Zhang Yinfei wrote:
> As in *Mem_region Kip::last_free() const*, the function try to find the
> highest *Conventional* memory region's physical address. (I guess it gets
> physical memory bottom in the first time?). However in *void
> Kip_init::init(),* I only see one Conventional memory region which stores
> virtual address. Where does last_free() get the physical address??
> And in bootstrap, I see it manipulate KIP. I thought at that time, KIP is
> not initialize, because bootstrap runs before Fiasco Startup, where
> Kip_init::init() is called.
The KIP data structure is indeed in the kernel binary but it is filled
with memory descriptors by bootstrap. I.e. look for find_kip in
bootstrap which looks for the KIP in the kernel. Kip_init::init() does
setup a few things in the KIP but it does not start from scratch with
the memory descriptors.
Adam adam at os.inf.tu-dresden.de
More information about the l4-hackers