I/O port protection
adam at os.inf.tu-dresden.de
Fri Jan 12 11:50:28 CET 2007
On Fri Jan 12, 2007 at 00:12:46 +0100, Daniel Vandersee wrote:
> Adam Lackorzynski wrote:
> > On Thu Jan 11, 2007 at 22:25:56 +0100, Daniel Vandersee wrote:
> >> is it possible to allow I/O page mapping at the RMGR for a newly created
> >> task (using l4_task_new) as it were possible using the "allow_cli" flag
> >> in the roottask configuration?
> >> Usually the pager of the newly created task would handle its I/O
> >> pagefaults. Unfortunately this won't work here as this particular task
> >> (L4 loader) tries to directly map I/O pages using an IPC call to the
> >> ressource manager.
> >> So the question is: How can I tell the ressource manager to allow I/O
> >> mapping for this particular task?
> > The loader can be configured to allow only specific ports for specific
> > applications. roottask just gives them out, so it already does this?!
> Yes, of course, but it seems that the loader is not allowed to map an
> I/O page (task #d2 is the L4 loader):
> > ROOT: Task #d2 is not allowed to execute cli/sti
> > D2.03:loader | linux_drivers,#10: Can't map I/O space, ROOT denies page (result=0000
> > D2.03:loader : 4000)
> IMO this is because the loader was not started with the "allow_cli" flag
> turned on. The loader was started by another server (using l4_task_new)
> - not by the roottask.
Ok, you need to start the loader with alloc_cli because the current
implementation of the loader requires this. There usually is a feature
in roottask that allows to register attributes for tasks that will be
started later (i.e. not by roottask) but that is currently nonworking.
So the answer is that this probably won't work without putting some
effort in roottask and/or loader.
Adam adam at os.inf.tu-dresden.de
More information about the l4-hackers