revert between 56095 -> 55830 in arch
[AROS.git] / rom / hidds / pci / pci.conf
blob4a267bc5157a994e5c0f58b7908593fd46171848
1 ##begin config
2 basename        PCI
3 version         40.0
4 libbasetype     struct pcibase
5 classptr_field  psd.pciClass
6 classid         CLID_Hidd_PCI
7 superclass      CLID_HW
8 residentpri     90
9 oopbase_field   psd.oopBase
10 seglist_field   psd.segList
11 ##end config
13 ##begin cdefprivate
14 #include <hidd/pci.h>
15 #include "pci.h"
16 ##end cdefprivate
18 ##begin interface
19 ##begin config
20 interfaceid hidd.pci
21 interfacename Hidd_PCI
22 methodstub    HIDD_PCI
23 methodbase    HiddPCIBase
24 attributebase HiddPCIAttrBase
25 ##end config
27 ##begin attributelist
28 ##end   attributelist
30 ##begin methodlist
31 VOID AddHardwareDriver(OOP_Class *driverClass)
32 BOOL RemHardwareDriver(OOP_Class *driverClass)
33 VOID EnumDevices(struct Hook *callback, const struct TagItem *requirements)
34 ##end   methodlist
35 ##end interface
37 ##begin interface
38 ##begin config
39 interfaceid   hidd.pci.driver
40 interfacename Hidd_PCIDriver
41 methodstub    HIDD_PCIDriver
42 methodbase    HiddPCIDriverBase
43 attributebase HiddPCIDriverAttrBase
44 ##end config
46 ##begin attributelist
47 BOOL DirectBus # [..G] DirectBus shows whether CPUtoPCI and PCItoCPU methods are usable
48 IPTR IOBase    # [..G] Offset to host IO space
49 APTR IRQRoutingTable # [..G] Get IRQ routing table for that driver, if available
50 ##end   attributelist
52 ##begin methodlist
53 UBYTE ReadConfigByte(OOP_Object *device, UBYTE bus, UBYTE dev, UBYTE sub, UWORD reg)
54 UWORD ReadConfigWord(OOP_Object *device, UBYTE bus, UBYTE dev, UBYTE sub, UWORD reg)
55 ULONG ReadConfigLong(OOP_Object *device, UBYTE bus, UBYTE dev, UBYTE sub, UWORD reg)
56 VOID  WriteConfigByte(OOP_Object *device, UBYTE bus, UBYTE dev, UBYTE sub, UWORD reg, UBYTE val)
57 VOID  WriteConfigWord(OOP_Object *device, UBYTE bus, UBYTE dev, UBYTE sub, UWORD reg, UWORD val)
58 VOID  WriteConfigLong(OOP_Object *device, UBYTE bus, UBYTE dev, UBYTE sub, UWORD reg, ULONG val)
59 APTR CPUtoPCI(APTR address)
60 APTR PCItoCPU(APTR address)
61 APTR MapPCI(APTR PCIAddress, ULONG Length)
62 VOID UnmapPCI(APTR CPUAddress, ULONG Length)
63 APTR AllocPCIMem(ULONG Size)
64 VOID FreePCIMem(APTR Address)
65 BOOL AddInterrupt(OOP_Object *device, struct Interrupt *interrupt)
66 VOID RemoveInterrupt(OOP_Object *device, struct Interrupt *interrupt)
67 IPTR HasExtendedConfig(UBYTE bus, UBYTE dev, UBYTE sub)
68 ##end  methodlist
69 ##end  interface
71 ##begin interface
72 ##begin config
73 interfaceid   hidd.pci.device
74 interfacename Hidd_PCIDevice
75 methodstub    HIDD_PCIDevice
76 methodbase    HiddPCIDeviceBase
77 attributebase HiddPCIDeviceAttrBase
78 ##end config
80 ##begin attributelist
81 OOP_Object *Driver      # [I.G] Hardware PCI driver that handles this device
82 UBYTE       Bus         # [I.G] Bus the device is on
83 UBYTE       Dev         # [I.G] Device number
84 UBYTE       Sub         # [I.G] Function number
85 UWORD       VendorID    # [..G] VendorID of device as defined in PCI specs
86 UWORD       ProductID   # [..G] ProductID
87 UWORD       RevisionID  # [..G] RevisionID
88 UBYTE       Interface   # [..G]
89 UBYTE       Class       # [..G]
90 UBYTE       SubClass    # [..G]
91 UWORD       SubsystemVendorID # [..G]
92 UWORD       SubsystemID       # [..G]
93 UBYTE       INTLine     # [..G]
94 UBYTE       IRQLine     # [..G]
95 IPTR        RomBase     # [.SG] Location of ROM on the PCI bus (if ROM exists)
96 IPTR        RomSize     # [..G] Size of ROM area
97 IPTR        Base0       # [.SG] Location of Memory Area 0
98 IPTR        Size0       # [..G] Size of Memory Area 0
99 UBYTE       Type0       # [..G]
100 IPTR        Base1       # [.SG]
101 IPTR        Size1       # [..G]
102 UBYTE       Type1       # [..G]
103 IPTR        Base2       # [.SG]
104 IPTR        Size2       # [..G]
105 UBYTE       Type2       # [..G]
106 IPTR        Base3       # [.SG]
107 IPTR        Size3       # [..G]
108 UBYTE       Type3       # [..G]
109 IPTR        Base4       # [.SG]
110 IPTR        Size4       # [..G]
111 UBYTE       Type4       # [..G]
112 IPTR        Base5       # [.SG]
113 IPTR        Size5       # [..G]
114 UBYTE       Type5       # [..G]
115 BOOL        isIO        # [.SG] Can device access IO space?
116 BOOL        isMEM       # [.SG] Can device access Mem space?
117 BOOL        isMaster    # [.SG] Can device work in BusMaster mode?
118 BOOL        paletteSnoop  # [.SG] Should VGA compatible card snoop the palette?
119 BOOL        is66MHz     # [..G] Is device 66MHz capable?
120 CONST_STRPTR ClassDesc    # [..G] String description of device Class
121 CONST_STRPTR SubClassDesc # [..G] String description of device SubClass
122 CONST_STRPTR InterfaceDesc # [..G] String description of device Interface
123 BOOL        isBridge    # [..G] Is the device a PCI-PCI bridge?
124 UBYTE       SecBus      # [..G] Bus number managed by bridge
125 IPTR        MemoryBase  # [.SG] PCI bridge will forwart addresses from MemoryBase to
126 IPTR        MemoryLimit # [.SG] MemoryLimit through 
127 IPTR        PrefetchableBase # [.SG] like above, regarding the prefetchable memory
128 IPTR        PrefetchableLimit # [.SG]
129 IPTR        IOBase            # [.SG] PCI bridge will forward IO accesses from IOBase to IOLimit
130 IPTR        IOLimit           # [.SG]
131 BOOL        ISAEnable         # [.SG] Enable ISA-specific IO forwarding
132 BOOL        VGAEnable         # [.SG] Enable VGA-specific IO/MEM forwarding regardless of limits
133 BOOL        IRQStatus         # [..G] Get current irq status (does device request irq?)
134 ULONG       CapabilitiesPresent # [..G] Use this to check if PCI features extra capabilities (such as PM, MSI, PCI-X, PCI-E)
135 UWORD       CapabilityPowerManagement # [..G] Get offset of Power Management capability area or 0 if not present
136 UWORD       CapabilityAGP       # [..G] Get offset of AGP capability area or 0 if not present
137 UWORD       CapabilityVitalProductData # [..G] Get offset of Vital Product Data capability area or 0 if not present
138 UWORD       CapabilitySlotID # [..G] Get offset of Slot Indentification capability area or 0 if not present
139 UWORD       CapabilityMSI  # [..G] Get offset of Message Signalled Interrupts capability area or 0 if not present
140 UWORD CapabilityCPCIHotSwap # [..G] Get offset of CompactPCI HotSwap capability area or 0 if not present
141 UWORD CapabilityPCIX # [..G] Get offset of PCI-X capability area or 0 if not present
142 UWORD CapabilityHyperTransport # [..G] Get offset of Hyper Transport capability area or 0 if not present
143 UWORD CapabilityVendorSpecific # [..G] Get offset of Vendor Specific capability area or 0 if not present
144 UWORD CapabilityDebugPort # [..G] Get offset of Debug Port capability area or 0 if not present
145 UWORD CapabilityCPCICRC # [..G] Get offset of CompactPCI Central Resource Control capability area or 0 if not present
146 UWORD CapabilityHotPlugController # [..G] Get offset of PCI Standard Hot-Plug Controller capability area or 0 if not present
147 UWORD CapabilitySSVPID # [..G] Get offset of Bridge Subsystem VendorID/ProductID capability area or 0 if not present
148 UWORD CapabilityAGP3 # [..G] Get offset of AGP3 capability area or 0 if not present
149 UWORD CapabilityPCIE # [..G] Get offset of PCI Express capability area or 0 if not present
150 UWORD CapabilityMSIX # [..G] Get offset of MSI-X capability area or 0 if not present
151 UWORD CapabilityAdvancedFeatures # [..G] Get offset of PCI Advanced Features capability area or 0 if not present
152 CONST_STRPTR Owner # [..G] Get current owner
153 IPTR  ExtendedConfig
154 UWORD ExtendedCapabilityAER # [..G] Get offset of PCIE Advanced Error Handling area or 0 if not present
155 UWORD ExtendedCapabilityVC # [..G] Get offset of PCIE Virtual Channel area or 0 if not present
156 UWORD ExtendedCapabilitySerialNumber # [..G] Get offset of PCIE Serial Number area or 0 if not present
157 UWORD ExtendedCapabilityPowerBudgeting # [..G] Get offset of PCIE Power Budgeting area or 0 if not present
158 UWORD       ConfigSize
159 ##end   attributelist
161 ##begin methodlist
162 UBYTE ReadConfigByte(UWORD reg)
163 UWORD ReadConfigWord(UWORD reg)
164 ULONG ReadConfigLong(UWORD reg)
165 VOID  WriteConfigByte(UWORD reg, UBYTE val)
166 VOID  WriteConfigWord(UWORD reg, UWORD val)
167 VOID  WriteConfigLong(UWORD reg, ULONG val)
168 BOOL AddInterrupt(struct Interrupt *interrupt)
169 VOID RemoveInterrupt(struct Interrupt *interrupt)
170 CONST_STRPTR Obtain(CONST_STRPTR owner)
171 VOID Release()
172 IPTR HasExtendedConfig()
173 ##end   methodlist
174 ##end interface
177 ##begin methodlist
178 .interface Root
180 Dispose
181 .interface HW
182 SetUpDriver
183 RemoveDriver
184 .interface Hidd_PCI
185 AddHardwareDriver
186 EnumDevices
187 RemHardwareDriver
188 ##end methodlist
191 ##begin class
192 ##begin config
193 basename       PCIDrv
194 type           hidd
195 superclass     CLID_Hidd
196 classptr_field psd.pciDriverClass
197 classid        CLID_Hidd_PCIDriver
198 classdatatype  struct DrvInstData
199 ##end config
201 ##begin methodlist
202 .interface Root
205 .interface Hidd_PCIDriver
206 ReadConfigByte
207 ReadConfigWord
208 ReadConfigLong
209 WriteConfigByte
210 WriteConfigWord
211 WriteConfigLong
212 CPUtoPCI
213 PCItoCPU
214 MapPCI
215 UnmapPCI
216 AllocPCIMem
217 FreePCIMem
218 AddInterrupt
219 RemoveInterrupt
220 HasExtendedConfig
221 ##end methodlist
222 ##end class
225 ##begin class
226 ##begin config
227 basename       PCIDev
228 type           hidd
229 superclass     CLID_Root
230 classptr_field psd.pciDeviceClass
231 classdatatype  struct DeviceData
232 ##end config
234 ##begin methodlist
235 .interface Root
239 .interface Hidd_PCIDevice
240 ReadConfigByte
241 ReadConfigWord
242 ReadConfigLong
243 WriteConfigByte
244 WriteConfigWord
245 WriteConfigLong
246 AddInterrupt
247 RemoveInterrupt
248 Obtain
249 Release
250 HasExtendedConfig
251 ##end methodlist
252 ##end class