Page 1 of 1
paging and I/O addresses
Posted: Sat May 07, 2005 7:21 pm
by Anthony
i am curious, when i enable paging, will i also need to map I/O addresses? (eg: 0x64 for the keyboard, or 0x170 & 0x1f0 for ATA?). or do i not need to worry about those? are they not really treated as addresses when using inportb() and outportb()? sorry if this is a dumb question. thanks in advance
Re:paging and I/O addresses
Posted: Sat May 07, 2005 7:31 pm
by mystran
If you are talking about usermode programs, then yes, you need to give the program access to IO ports it uses... but that is not the same thing as mapping memory.
See what your copy of IA-32 Intel Architechture, Volume 3 has to say about IOPL and the IO map in TSS.
Re:paging and I/O addresses
Posted: Sun May 08, 2005 5:46 am
by Pype.Clicker
I/O ports use a (completely) different addressing scheme than memory accesses. The MMU setup has absolutely no effect on it. You can set up whatever pages/segments you want, keyboard will *always* be at ports 0x60..0x64.