| Zeile 29: | Zeile 29: | ||
1. IRQ und I/O-Ports vom PCI-Treiber holen und gegebenenfalls registrieren | 1. IRQ und I/O-Ports vom PCI-Treiber holen und gegebenenfalls registrieren | ||
| − | 2. MAC-Adresse herausfinden; | + | 2. MAC-Adresse herausfinden; diese steht in drei 16-Bit-Registern ab 0x00 (APROM0, APROM2 und APROM4) in Little-Endian-Reihenfolge (also in APROM0 (0x00) die niederwertigsten 16 Bit und in APROM4 (0x04) die höchstwertigen 16 Bit). |
3. Die Karte zurücksetzen; es muss ein Word vom Resetregister (0x14) eingelesen werden, um einen Software-Reset durchzuführen. Anschließend empfiehlt es sich, zehn Millisekunden zu warten, bis der Reset beendet ist. Danach sollte das BCR20-Register auf 0x0102 gesetzt werden, dies verändert den Softwarestyle zu PCnet-PCI, dadurch werden 32-Bit- und nicht 16-Bit-Strukturen verwendet. Außerdem wird dadurch das SSIZE32-Bit gesetzt, auch dadurch werden 32-Bit-Strukturen aktiviert. | 3. Die Karte zurücksetzen; es muss ein Word vom Resetregister (0x14) eingelesen werden, um einen Software-Reset durchzuführen. Anschließend empfiehlt es sich, zehn Millisekunden zu warten, bis der Reset beendet ist. Danach sollte das BCR20-Register auf 0x0102 gesetzt werden, dies verändert den Softwarestyle zu PCnet-PCI, dadurch werden 32-Bit- und nicht 16-Bit-Strukturen verwendet. Außerdem wird dadurch das SSIZE32-Bit gesetzt, auch dadurch werden 32-Bit-Strukturen aktiviert. | ||
| Zeile 87: | Zeile 87: | ||
//16-Bit-I/O-Ports (bzw. Offsets zum Beginn des I/O-Raums) | //16-Bit-I/O-Ports (bzw. Offsets zum Beginn des I/O-Raums) | ||
#define APROM0 0x00 | #define APROM0 0x00 | ||
| − | |||
#define APROM2 0x02 | #define APROM2 0x02 | ||
| − | |||
#define APROM4 0x04 | #define APROM4 0x04 | ||
| − | |||
#define RDP 0x10 | #define RDP 0x10 | ||
#define RAP 0x12 | #define RAP 0x12 | ||