123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- The SGI IOC4 PCI device is a bit of a strange beast, so some notes on
- it are in order.
- First, even though the IOC4 performs multiple functions, such as an
- IDE controller, a serial controller, a PS/2 keyboard/mouse controller,
- and an external interrupt mechanism, it's not implemented as a
- multifunction device. The consequence of this from a software
- standpoint is that all these functions share a single IRQ, and
- they can't all register to own the same PCI device ID. To make
- matters a bit worse, some of the register blocks (and even registers
- themselves) present in IOC4 are mixed-purpose between these several
- functions, meaning that there's no clear "owning" device driver.
- The solution is to organize the IOC4 driver into several independent
- drivers, "ioc4", "sgiioc4", and "ioc4_serial". Note that there is no
- PS/2 controller driver as this functionality has never been wired up
- on a shipping IO card.
- ioc4
- ====
- This is the core (or shim) driver for IOC4. It is responsible for
- initializing the basic functionality of the chip, and allocating
- the PCI resources that are shared between the IOC4 functions.
- This driver also provides registration functions that the other
- IOC4 drivers can call to make their presence known. Each driver
- needs to provide a probe and remove function, which are invoked
- by the core driver at appropriate times. The interface of these
- IOC4 function probe and remove operations isn't precisely the same
- as PCI device probe and remove operations, but is logically the
- same operation.
- sgiioc4
- =======
- This is the IDE driver for IOC4. Its name isn't very descriptive
- simply for historical reasons (it used to be the only IOC4 driver
- component). There's not much to say about it other than it hooks
- up to the ioc4 driver via the appropriate registration, probe, and
- remove functions.
- ioc4_serial
- ===========
- This is the serial driver for IOC4. There's not much to say about it
- other than it hooks up to the ioc4 driver via the appropriate registration,
- probe, and remove functions.
|