[parisc-linux] request_region()
Grant Grundler
grundler@puffin.external.hp.com
Mon, 02 Apr 2001 21:06:10 -0600
Richard Hirst wrote:
> My 715/old, with a cvs head kernel, has no entries in /proc/ioports.
> If I change our IO_SPACE_LIMIT in io.h from 0x00ffffff to 0xfffffff,
> I get
>
> apollo:~# cat /proc/ioports
> f0800000-f08fffff : ASP
> f0800000-f0800013 : reserved
> f0800020-f0800020 : led_data
> f0824800-f0824802 : parport0
> f0826000-f0826010 : i82596
...
> Should all that ASP related stuff be doing a request_mem_region()
> so they show up in /proc/iomem rather than /proc/ioports?
Yes. I think so.
Ideally, /proc/ioports should be empty for systems without PCI or EISA.
> If so, does that have implications for EISA devices which will appear
> under ASP, where we might want to use exisiting drivers that do
> request_region()?
The plan was EISA devices under ASP should use request_region()
and inb/outb. I have no clue how EISA "bus walk" works or how EISA
drivers will find/claim their devices.
The EISA HBA needs to register it's "pci_ops".
See arch/parisc/kernel/pci.c:PCI_PORT_OUT macro.
> from io.h:
>
> /* IO Port space is : BBiiii where BB is HBA number. */
> #define IO_SPACE_LIMIT 0x00ffffff
Yup - that's correct. It means the "offending" drivers above aren't
using inb/outb since "BB" value would index beyond the end
of the HBA array and crash the box.
grant
Grant Grundler
parisc-linux {PCI|IOMMU|SMP} hacker
+1.408.447.7253