On Thu, Mar 31, 2011 at 12:18 PM, Goichon Francois
<francois.goic...@insa-lyon.fr> wrote:

> After looking a bit further, I saw that the range checking on on the pager's
> physical memory mapping capability fails: the default capability allows the
> pager to map physical pages from 0x1000000 to 0xe000000, while the UART's
> base is at 0x101f2000 for the pb926 platform. When I change the capability
> to allow to map up to 0x20000000, qemu fails with the following error
> message: qemu: fatal: Trying to execute code outside RAM or ROM at
> 0x20000000.

The qemu error message means that your program (or Codezero) is trying
to use physical memory that is not backed with real (emulated)
hardware memory. You may want to increase the emulated memory in qemu
(with -m switch).


> For me, capabilities are nothing more than permissions, so why can't I
> extend the pager's capability to map physical pages to 0x20000000? What does
> that induce which causes this error?

AFAIK Codezero does not try to use/initialize memory ranges in given
capacities so I suspect it must be a userspace trying to use it (or a
bug).


> I saw in the changelogs that a lot of flags previously provided for the
> cap_control syscall where removed, such as the CAP_SHARE_ALL_SPACES used in
> the baremetal example. Why have they been removed and is the fact that they
> are missing somehow related with my problem?

Yes. The capabilities system has been minimized as our team is doing a
lot of development in different areas and this part was not complete,
not very useful and getting in the way. It may be re-introduced in the
future if there's a demand for it.

Regards,
-- 
Dawid Ciężarkiewicz
B-Labs. http://b-labs.com/

_______________________________________________
codezero-devel mailing list
codezero-devel@lists.l4dev.org
http://lists.l4dev.org/mailman/listinfo/codezero-devel_lists.l4dev.org

Reply via email to