Root/
1 | The SGI IOC4 PCI device is a bit of a strange beast, so some notes on |
2 | it are in order. |
3 | |
4 | First, even though the IOC4 performs multiple functions, such as an |
5 | IDE controller, a serial controller, a PS/2 keyboard/mouse controller, |
6 | and an external interrupt mechanism, it's not implemented as a |
7 | multifunction device. The consequence of this from a software |
8 | standpoint is that all these functions share a single IRQ, and |
9 | they can't all register to own the same PCI device ID. To make |
10 | matters a bit worse, some of the register blocks (and even registers |
11 | themselves) present in IOC4 are mixed-purpose between these several |
12 | functions, meaning that there's no clear "owning" device driver. |
13 | |
14 | The solution is to organize the IOC4 driver into several independent |
15 | drivers, "ioc4", "sgiioc4", and "ioc4_serial". Note that there is no |
16 | PS/2 controller driver as this functionality has never been wired up |
17 | on a shipping IO card. |
18 | |
19 | ioc4 |
20 | ==== |
21 | This is the core (or shim) driver for IOC4. It is responsible for |
22 | initializing the basic functionality of the chip, and allocating |
23 | the PCI resources that are shared between the IOC4 functions. |
24 | |
25 | This driver also provides registration functions that the other |
26 | IOC4 drivers can call to make their presence known. Each driver |
27 | needs to provide a probe and remove function, which are invoked |
28 | by the core driver at appropriate times. The interface of these |
29 | IOC4 function probe and remove operations isn't precisely the same |
30 | as PCI device probe and remove operations, but is logically the |
31 | same operation. |
32 | |
33 | sgiioc4 |
34 | ======= |
35 | This is the IDE driver for IOC4. Its name isn't very descriptive |
36 | simply for historical reasons (it used to be the only IOC4 driver |
37 | component). There's not much to say about it other than it hooks |
38 | up to the ioc4 driver via the appropriate registration, probe, and |
39 | remove functions. |
40 | |
41 | ioc4_serial |
42 | =========== |
43 | This is the serial driver for IOC4. There's not much to say about it |
44 | other than it hooks up to the ioc4 driver via the appropriate registration, |
45 | probe, and remove functions. |
46 |
Branches:
ben-wpan
ben-wpan-stefan
javiroman/ks7010
jz-2.6.34
jz-2.6.34-rc5
jz-2.6.34-rc6
jz-2.6.34-rc7
jz-2.6.35
jz-2.6.36
jz-2.6.37
jz-2.6.38
jz-2.6.39
jz-3.0
jz-3.1
jz-3.11
jz-3.12
jz-3.13
jz-3.15
jz-3.16
jz-3.18-dt
jz-3.2
jz-3.3
jz-3.4
jz-3.5
jz-3.6
jz-3.6-rc2-pwm
jz-3.9
jz-3.9-clk
jz-3.9-rc8
jz47xx
jz47xx-2.6.38
master
Tags:
od-2011-09-04
od-2011-09-18
v2.6.34-rc5
v2.6.34-rc6
v2.6.34-rc7
v3.9