Re: Question: Mapping non-prefetchable memory in odd-ball BIOS

Alan Cox (alan@lxorguk.ukuu.org.uk)
Thu, 5 Nov 1998 03:31:39 +0000 (GMT)


> differ from the kernel's assumptions? The i386 io.h and page.h files appear
> to make a hard coded assumptions about the location of non-prefetchable
> memory.

Are you looking at the virtual or physical maps here. The
kernel mapping looks like

[0->0xBFFFFFFF] = user space
[0xC0000000->..] = kernel logical map of physical space and memory (ram)

and the rest it uses for logical remappings of high memory space on demand
(via vremap() and ioremap())

> The problem comes when we go to program the frame buffer address via BTTV.
> We had to modify the code to not muck around with the high bits. Right now
> the code explicitly tests for certain address ranges and programs the BT848

Sounds like you have the old version of bttv.c that checks versus 0xE0000000
thats just broken code that leaked in from older buggier stuff. For
frame buffers the correct bttv code always takes a physical address, so the
kernel mapping doesnt even come into it, its an across the bus DMA host/host
with the MMU completely uninvolved.

Alan

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/