[PATCH] VGA arbitration: draft of kernel side

Benjamin Herrenschmidt benh at kernel.crashing.org
Tue Mar 8 21:37:13 PST 2005


On Tue, 2005-03-08 at 23:35 -0500, Jon Smirl wrote:
> This is from /linux-2.5/Documentation/filesystems/sysfs-pci.txt. It
> describes how ia64 is achieving legacy IO.  The VGA control code
> probably needs to be coordinated with this.

This is a different thing, and I will implement it on ppc one of these
days. This is for issuing the IO cycles on the bus. It has nothing
to do with the actual arbitration work.

> --------------------------------------------------------------------------
> 
> Accessing legacy resources through sysfs
> 
> Legacy I/O port and ISA memory resources are also provided in sysfs if the
> underlying platform supports them.  They're located in the PCI class heirarchy,
> e.g.
> 
>         /sys/class/pci_bus/0000:17/
>         |-- bridge -> ../../../devices/pci0000:17
>         |-- cpuaffinity
>         |-- legacy_io
>         `-- legacy_mem
> 
> The legacy_io file is a read/write file that can be used by applications to
> do legacy port I/O.  The application should open the file, seek to the desired
> port (e.g. 0x3e8) and do a read or a write of 1, 2 or 4 bytes.  The legacy_mem
> file should be mmapped with an offset corresponding to the memory offset
> desired, e.g. 0xa0000 for the VGA frame buffer.  The application can then
> simply dereference the returned pointer (after checking for errors of course)
> to access legacy memory space.
> 
> Supporting PCI access on new platforms
> 
> In order to support PCI resource mapping as described above, Linux platform
> code must define HAVE_PCI_MMAP and provide a pci_mmap_page_range function.
> Platforms are free to only support subsets of the mmap functionality, but
> useful return codes should be provided.
> 
> Legacy resources are protected by the HAVE_PCI_LEGACY define.  Platforms
> wishing to support legacy functionality should define it and provide
> pci_legacy_read, pci_legacy_write and pci_mmap_legacy_page_range functions.
> 
> 
-- 
Benjamin Herrenschmidt <benh at kernel.crashing.org>




More information about the xorg mailing list