RMGR-Extension to control I/O access

Christian Stueble stueble at amaunet.cs.uni-dortmund.de
Sun Oct 17 13:35:37 CEST 1999


Am Sun, 17 Oct 1999 schrieben Sie:
> Christian Stueble <stueble at amaunet.cs.uni-dortmund.de> writes:
> 
> > 
> > Hello,
> > 
> > I don´t know very much about the i386-processor and Fiasco, therefore
> > I would like to know if the following RMGR/Fiasco extensions are possible.
> > 
> > 1) As default, no task has I/O port access. (CPL > IOPL or I/O permission
> >     bitmap pointer invalid)
> > 
> > 2) A task asks via IPC the RMGR for I/O port access, e.g. port=0x80, length=4.
> > 
> > 3) The RMGR checks, if port access can be granted. If yes, the RMGR decreases   
> > the tasks CPL and/or changes the tasks I/O permission bitmap.
> > 
> > ==> Task is able to access port 0x80 - 0x83.
> > 
> > The main question: I don´t know if a task is able to change the CPL
> > or the I/O permission bitmap of another task. 
> 
> 
> That is exactly what io flex pages are designed for. Initially sigma0
> has access to all io ports and can use io flex pages to grant port
> access to other task. If sigma0 grants access a subset of the io
> address space (adressses which are accessed by in/out instructions)
> the task gets an io permission bitmap. If sigma0 (or someone else)
> grants access to the whole io address space l4 changes the iopl so
> that any thread in this task can access any port and can even disable
> interrupts.
I understand the x86 manual in that way: i/o access is permitted only if the
tasks CPL <= IOPL _and_ if appropriated bits are set to 0.
 
> 
> So the only missing feature is an implementation of io flex pages.
Generally, only two new IPC messages (to the RMGR or sigma0?) are
necessary:
1) demandPort( port_nr, size )
2) releasePort( port_nr, size )

Does someone know, why the l4 reference manual restricts the granularity of
port access to 16 byte?
 
Chris

P.S. Unfortunately this does not work with memory mapped i/o, because iopl
and permission bitmap only control in/out instructions. 
-- 
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
 Christian Stueble............stueble at ls6.cs.uni-dortmund.de
 PubKey[BF7104F5].......fp=8678C5D3CAD9CD8C F1DDB8EC202F116A

 To be or not to be is true...   (apocrypha of George Boole)
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-              



More information about the l4-hackers mailing list