| Zeile 12: | Zeile 12: | ||
<br /> | <br /> | ||
| − | === Aufbau des Konfigurations- | + | === Aufbau des Konfigurations-Adressraum === |
| − | {| | + | {| {{Prettytable}} align="right" |
| − | ! Register || 31-24 | + | |- align="center" |
| − | |- | + | ! Register || width="22%" | 31-24 || width="22%" | 23-16 || width="22%" | 15-8 || width="22%" | 7-0 |
| − | | | + | |- align="center" |
| − | |- | + | | 0x00 || colspan="2" | Device ID || colspan="2" | Vendor ID |
| − | | | + | |- align="center" |
| − | |- | + | | 0x04 || colspan="2" | Status || colspan="2" | Command |
| − | | | + | |- align="center" |
| − | |- | + | | 0x08 || colspan="3" | Classcode || Revision ID |
| + | |- align="center" | ||
| 0x0C || BIST || Header Type || Latency Timer || Cache Line Size | | 0x0C || BIST || Header Type || Latency Timer || Cache Line Size | ||
| − | |- | + | |} |
| + | Die ersten 16 Byte sind für alle PCI-Geräte gleich. | ||
| + | |||
| + | *''Classcode'' ist noch einmal geteilt. Die oberen 8 Bit repräsentieren die ''Haput''-Klasse. Die mittleren 8 Bit stehen für die Subclass und die unter 8 Bit für das ''Programming Interface''. | ||
| + | *''Header Type'' spezifiziert den Inhalt der Register 0x10-0x3C, wobei Bit 7 angibt ob es sich um ein Multifunction-Device handelt oder nicht. | ||
| + | :{| {{Prettytable}} | ||
| + | |- align="center" | ||
| + | ! Header Type || Kurze Beschreibung | ||
| + | |- align="center" | ||
| + | | 0x00 || [[#Header_Type_0x00|Standard]] | ||
| + | |- align="center" | ||
| + | | 0x01 || PCI/PCI-Bridge | ||
| + | |- align="center" | ||
| + | | 0x02 || CardBus-Bridge | ||
| + | |} | ||
| + | <br /> | ||
| + | |||
| + | ====Header Type 0x00==== | ||
| + | {| {{Prettytable}} | ||
| + | |- align="center" | ||
| + | ! Register || width="22%" | 31-24 || width="22%" | 23-16 || width="22%" | 15-8 || width="22%" | 7-0 | ||
| + | |- align="center" | ||
| 0x10 || colspan="4" | Base Address 0 (BAR0) | | 0x10 || colspan="4" | Base Address 0 (BAR0) | ||
| − | |- | + | |- align="center" |
| 0x14 || colspan="4" | Base Address 1 (BAR1) | | 0x14 || colspan="4" | Base Address 1 (BAR1) | ||
| − | |- | + | |- align="center" |
| 0x18 || colspan="4" | Base Address 2 (BAR2) | | 0x18 || colspan="4" | Base Address 2 (BAR2) | ||
| − | |- | + | |- align="center" |
| 0x1C || colspan="4" | Base Address 3 (BAR3) | | 0x1C || colspan="4" | Base Address 3 (BAR3) | ||
| − | |- | + | |- align="center" |
| 0x20 || colspan="4" | Base Address 4 (BAR4) | | 0x20 || colspan="4" | Base Address 4 (BAR4) | ||
| − | |- | + | |- align="center" |
| 0x24 || colspan="4" | Base Address 5 (BAR5) | | 0x24 || colspan="4" | Base Address 5 (BAR5) | ||
| − | |- | + | |- align="center" |
| 0x28 || colspan="4" | Cardbus CIS Pointer | | 0x28 || colspan="4" | Cardbus CIS Pointer | ||
| − | |- | + | |- align="center" |
| 0x2C || colspan="2" | Subsystem ID || colspan="2" | Subsystem Vendor ID | | 0x2C || colspan="2" | Subsystem ID || colspan="2" | Subsystem Vendor ID | ||
| − | |- | + | |- align="center" |
| 0x30 || colspan="4" | Expansion ROM base address | | 0x30 || colspan="4" | Expansion ROM base address | ||
| − | |- | + | |- align="center" |
| − | | 0x34 || colspan="4" | Reserviert | + | | 0x34 || colspan="4" bgcolor="#bbb" | Reserviert |
| − | |- | + | |- align="center" |
| − | | 0x38 || colspan="4" | Reserviert | + | | 0x38 || colspan="4" bgcolor="#bbb" | Reserviert |
| − | |- | + | |- align="center" |
| − | | 0x3C | + | | 0x3C || Max Latency || Min Grant || Interrupt Pin || Interrupt Line |
|} | |} | ||
<br /> | <br /> | ||