about Conventional Memory Region

Adam Lackorzynski 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
  Lackorzynski         http://os.inf.tu-dresden.de/~adam/

More information about the l4-hackers mailing list