AMD PCnet — Änderungen 6758 → 6759

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; deren einzelne Bytes stehen in den ersten Bytes des I/O-Raums (APROM0 bis APROM5).
+
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 APROM1 0x01
 
 
#define APROM2 0x02
 
#define APROM2 0x02
−
#define APROM3 0x03
 
 
#define APROM4 0x04
 
#define APROM4 0x04
−
#define APROM5 0x05
 
 
#define RDP    0x10
 
#define RDP    0x10
 
#define RAP    0x12
 
#define RAP    0x12