4 Copyright © 1995-2001, The AROS Development Team. All rights reserved.
7 Desc: PCI stuff for standalone i386 AROS
11 #include <exec/types.h>
16 typedef struct _PCI_ClassCodes
27 This list contains all classes defined in the
30 static const PCI_ClassCodes PCI_ClassTable
[] =
32 { 0x00, 0x00, 0x00, "Legacy PCI", "Non-VGA", "" },
33 { 0x00, 0x01, 0x00, "Legacy PCI", "VGA Compatible", "" },
35 { 0x01, 0x00, 0x00, "Mass storage", "SCSI", "" },
36 { 0x01, 0x01, 0x00, "Mass storage", "IDE", "" },
37 { 0x01, 0x02, 0x00, "Mass storage", "Floppy", "" },
38 { 0x01, 0x03, 0x00, "Mass storage", "IPI", "" },
39 { 0x01, 0x04, 0x00, "Mass storage", "RAID", "" },
40 { 0x01, 0x80, 0x00, "Mass storage", "Other", "" },
42 { 0x02, 0x00, 0x00, "Network", "Ethernet", "" },
43 { 0x02, 0x01, 0x00, "Network", "Token ring", "" },
44 { 0x02, 0x02, 0x00, "Network", "FDDI", "" },
45 { 0x02, 0x03, 0x00, "Network", "ATM", "" },
46 { 0x02, 0x04, 0x00, "Network", "ISDN", "" },
47 { 0x02, 0x80, 0x00, "Network", "Other", "" },
49 { 0x03, 0x00, 0x00, "Video", "PC Compatible", "VGA" },
50 { 0x03, 0x00, 0x01, "Video", "PC Compatible", "IBM8514" },
51 { 0x03, 0x01, 0x00, "Video", "XGA", "" },
52 { 0x03, 0x03, 0x00, "Video", "3D", "" },
53 { 0x03, 0x80, 0x00, "Video", "Other", "" },
55 { 0x04, 0x00, 0x00, "Multimedia", "Video", "" },
56 { 0x04, 0x01, 0x00, "Multimedia", "Audio", "" },
57 { 0x04, 0x02, 0x00, "Multimedia", "Telephony", "" },
58 { 0x04, 0x80, 0x00, "Multimedia", "Other", "" },
60 { 0x05, 0x00, 0x00, "Memory controller", "RAM", "" },
61 { 0x05, 0x01, 0x00, "Memory controller", "Flash", "" },
62 { 0x05, 0x80, 0x00, "Memory controller", "Other", "" },
64 { 0x06, 0x00, 0x00, "Bridge", "Host-PCI", "" },
65 { 0x06, 0x01, 0x00, "Bridge", "PCI-ISA", "" },
66 { 0x06, 0x02, 0x00, "Bridge", "PCI-EISA", "" },
67 { 0x06, 0x03, 0x00, "Bridge", "PCI-MCA", "" },
68 { 0x06, 0x04, 0x00, "Bridge", "PCI-PCI", "Standard" },
69 { 0x06, 0x04, 0x01, "Bridge", "PCI-PCI", "Subtractive" },
70 { 0x06, 0x05, 0x00, "Bridge", "PCI-PCMCIA", "" },
71 { 0x06, 0x06, 0x00, "Bridge", "PCI-NuBus", "" },
72 { 0x06, 0x07, 0x00, "Bridge", "PCI-CardBus", "" },
73 { 0x06, 0x08, 0x00, "Bridge", "PCI-RACEway", "" },
74 { 0x06, 0x80, 0x00, "Bridge", "Other", "" },
76 { 0x07, 0x00, 0x00, "Communication", "Serial", "XT compatible" },
77 { 0x07, 0x00, 0x01, "Communication", "Serial", "16450 UART" },
78 { 0x07, 0x00, 0x02, "Communication", "Serial", "16550 UART" },
79 { 0x07, 0x00, 0x03, "Communication", "Serial", "16650 UART" },
80 { 0x07, 0x00, 0x04, "Communication", "Serial", "16750 UART" },
81 { 0x07, 0x00, 0x05, "Communication", "Serial", "16850 UART" },
82 { 0x07, 0x00, 0x06, "Communication", "Serial", "16950 UART" },
83 { 0x07, 0x01, 0x00, "Communication", "Parallel", "Standard" },
84 { 0x07, 0x01, 0x01, "Communication", "Parallel", "Bi-directional" },
85 { 0x07, 0x01, 0x02, "Communication", "Parallel", "ECP" },
86 { 0x07, 0x01, 0x03, "Communication", "Parallel", "IEEE1284 host" },
87 { 0x07, 0x01, 0x04, "Communication", "Parallel", "IEEE1284 device" },
88 { 0x07, 0x02, 0x00, "Communication", "Multiport serial", "" },
89 { 0x07, 0x03, 0x00, "Communication", "Modem", "Generic" },
90 { 0x07, 0x03, 0x01, "Communication", "Modem", "Hayes 16450 UART" },
91 { 0x07, 0x03, 0x02, "Communication", "Modem", "Hayes 16550 UART" },
92 { 0x07, 0x03, 0x03, "Communication", "Modem", "Hayes 16650 UART" },
93 { 0x07, 0x03, 0x04, "Communication", "Modem", "Hayes 16750 UART" },
94 { 0x07, 0x80, 0x00, "Communication", "Other", "" },
96 { 0x08, 0x00, 0x00, "System", "PIC", "Generic 8259" },
97 { 0x08, 0x00, 0x01, "System", "PIC", "ISA" },
98 { 0x08, 0x00, 0x02, "System", "PIC", "EISA" },
99 { 0x08, 0x00, 0x03, "System", "PIC", "I/O APIC" },
100 { 0x08, 0x00, 0x04, "System", "PIC", "I/O(x) APIC" },
101 { 0x08, 0x01, 0x00, "System", "DMA", "Generic 8237" },
102 { 0x08, 0x01, 0x01, "System", "DMA", "ISA" },
103 { 0x08, 0x01, 0x02, "System", "DMA", "EISA" },
104 { 0x08, 0x02, 0x00, "System", "Timer", "Generic 8254" },
105 { 0x08, 0x02, 0x01, "System", "Timer", "ISA" },
106 { 0x08, 0x02, 0x02, "System", "Timer", "EISA" },
107 { 0x08, 0x03, 0x00, "System", "RTC", "Generic" },
108 { 0x08, 0x03, 0x01, "System", "RTC", "ISA" },
109 { 0x08, 0x04, 0x00, "System", "PCI Hotplug", "Generic" },
110 { 0x08, 0x80, 0x00, "System", "Other", "" },
112 { 0x09, 0x00, 0x00, "Input", "Keyboard", "" },
113 { 0x09, 0x01, 0x00, "Input", "Digitizer", "" },
114 { 0x09, 0x02, 0x00, "Input", "Mouse", "" },
115 { 0x09, 0x03, 0x00, "Input", "Scanner", "" },
116 { 0x09, 0x04, 0x00, "Input", "Gameport", "Generic" },
117 { 0x09, 0x04, 0x01, "Input", "Gameport", "Legacy" },
118 { 0x09, 0x80, 0x00, "Input", "Other", "" },
120 { 0x0a, 0x00, 0x00, "Docking station", "Generic", "" },
121 { 0x0a, 0x80, 0x00, "Docking station", "Other", "" },
123 { 0x0b, 0x00, 0x00, "CPU", "386", "" },
124 { 0x0b, 0x01, 0x00, "CPU", "486", "" },
125 { 0x0b, 0x02, 0x00, "CPU", "Pentium", "" },
126 { 0x0b, 0x10, 0x00, "CPU", "Alpha", "" },
127 { 0x0b, 0x20, 0x00, "CPU", "PowerPC", "" },
128 { 0x0b, 0x30, 0x00, "CPU", "MIPS", "" },
129 { 0x0b, 0x40, 0x00, "CPU", "Co-processor", "" },
131 { 0x0c, 0x00, 0x00, "Serial", "IEE1394", "FireWire" },
132 { 0x0c, 0x00, 0x01, "Serial", "IEE1394", "OpenHCI" },
133 { 0x0c, 0x01, 0x00, "Serial", "ACCESS.bus", "" },
134 { 0x0c, 0x02, 0x00, "Serial", "SSA", "" },
135 { 0x0c, 0x03, 0x00, "Serial", "USB", "UHCI" },
136 { 0x0c, 0x03, 0x01, "Serial", "USB", "OHCI" },
137 { 0x0c, 0x03, 0x02, "Serial", "USB", "Non-standard" },
138 { 0x0c, 0x04, 0x00, "Serial", "Fibrechannel", "" },
140 { 0x0d, 0x00, 0x00, "Wireless", "iRDA", "" },
141 { 0x0d, 0x01, 0x00, "Wireless", "Consumer IR", "" },
142 { 0x0d, 0x02, 0x00, "Wireless", "RF", "" },
143 { 0x0d, 0x80, 0x00, "Wireless", "Other", "" },
145 { 0x0e, 0x00, 0x00, "Intelligent I/O", "I2O", "" },
147 { 0x0f, 0x00, 0x00, "Satellite", "TV", "" },
148 { 0x0f, 0x01, 0x00, "Satellite", "Audio", "" },
149 { 0x0f, 0x02, 0x00, "Satellite", "Voice", "" },
150 { 0x0f, 0x03, 0x00, "Satellite", "Data", "" },
152 { 0x10, 0x00, 0x00, "Crypto", "Network", "" },
153 { 0x10, 0x10, 0x00, "Crypto", "Entertainment", "" },
154 { 0x10, 0x80, 0x00, "Crypto", "Other", "" },
156 { 0x11, 0x00, 0x00, "Data acquisition", "DPIO", "" },
157 { 0x11, 0x80, 0x00, "Data acquisition", "Other", "" },
160 void getPCIClassDesc( UBYTE
class, UBYTE sub
, UBYTE prgif
, STRPTR
*cdesc
, STRPTR
*sdesc
, STRPTR
*pdesc
);
161 ULONG
sizePCIBaseReg( OOP_Object
*driver
, struct pci_staticdata
*psd
, UBYTE bus
, UBYTE dev
, UBYTE func
, UBYTE basenum
);
163 /* Use this for walking the PCI_ClassTable */
164 #define PCI_CLASSTABLE_LEN (sizeof(PCI_ClassTable)/sizeof(PCI_ClassCodes))