From: Jon S. <jon...@ya...> - 2002-12-30 15:36:14
|
Just to summarize, a lot of things in the physical address space are at fixed, well know locations. Examples are IO ports, ROMs, DMA controller, AGP port, etc. If the address isn't absolutely fixed, it is controlled by writing an new address to an IO port. As far as I know, UML doesn't have a way of tracking memmapping from physical space to kernel virtual space. This is why I had to add the ioremap code. I had to record these mappings in the region array but this might not have been the best place to put them. Another example of this is the current IOMAP= support. To do this the find_iomem UML kernel call was added. Instead something like IOMAP=0xPhysicallAddr,file should have been used. Then the normal kernel call of ioremap(0xPhysicalAddr) would have worked. I've also got to get it into my head that just because UML is running on my X86 box, it's not an X86 kernel. This means that things things that are standard in the X86 kernel may not be there in UML (like the 0xA0 - 0X100) mapping. In general adding support for physical addresses to UML isn't very hard to do, it's just real confusing to do it because of all the layers of virtualization. ===== Jon Smirl jon...@ya... __________________________________________________ Do you Yahoo!? Yahoo! Mail Plus - Powerful. Affordable. Sign up now. http://mailplus.yahoo.com |