Re: Vramfs: filesystem driver to utilize extra RAM on VGA devices

From: Jonathan Campbell
Date: Thu Jan 29 2009 - 12:31:01 EST


Every VGA device connected to the PCI bus has resources that are known to the Linux kernel. One of the memory resources is the video RAM (always the largest prefetchable resource listed), with the base and length known to the PCI subsystem. So, all vramfs needs on mount is the PCI device, and the mountpoint, and it can dole it out to userspace. Reading and writing is handled with ioremap(). mmap() is handled by directly mmaping() that VRAM into user-space (just like /dev/fb0). Files are recorded in system memory as a list of entities with a starting block and length, so no fragmentation is possible.

No communication with the GPU is needed to do this, it's possible to use VRAM this way even on devices that nobody in the system knows how to talk to.
How do you accomplish that?

(I haven't yet looked at your code...)

-PWM


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