Booting L4
"bahadir balban" <[email protected]>
| Newsgroups | gmane.comp.micro-kernel.l4.l4ka.general |
|---|---|
| Message-ID | <[email protected]> |
Hi, I've been working on an ARM platform port for a while on L4::NICTA::Pistachio. The boot fails in allocation of utcb during creation of sigma0 (the first task that get's created.) The problem is I am getting memory aborts for utcb access, after allocation of the utcb. I suspect this happens because space_t::allocate_utcb uses UTCB_AREA_START (I presume this is used for user tasks?) and create_root_server() uses ROOT_UTCB_START as a basis for utcb_location. In my setup these values are: ROOT_UTCB_START: cff00000 UTCB_AREA_START: d0000000 In create_root_server() there's the line: tcb->set_utcb_location(utcb_address) where utcb_address equals ROOT_UTCB_START. However, then create_root_server() calls tcb->activate(). During activate(), there's the line: this->utcb = get_space()->allocate_utcb(this); which returns 0xd1f00000, using UTCB_AREA_START as a basis. Is this ok? The actual problem is though, allocate_utcb() checks whether 0xd1f00000 is already mapped, finds out that it isn't, allocates a new page and maps that. This mapping seems to fail since I get memory aborts. I will investigate that, but do you think the former is normal? Thanks Bahadir