AMD PCnet — Änderungen 5514 → 6758

Zeile 1: Zeile 1:
 
{{Hinweis|Text=Ich kenne mich mit der PCnet-Karte nicht besonders aus. Ich habe diesen Artikel auf Basis des týndur-Treibers und der drei unten genannten Spezifikationen erstellt, da diese Seite schon sehr lange auf der TODO-Liste steht, sich jedoch niemand darum gekümmert hat.
 
{{Hinweis|Text=Ich kenne mich mit der PCnet-Karte nicht besonders aus. Ich habe diesen Artikel auf Basis des týndur-Treibers und der drei unten genannten Spezifikationen erstellt, da diese Seite schon sehr lange auf der TODO-Liste steht, sich jedoch niemand darum gekümmert hat.
  
−
Wenn '''du''' dich mit dieser Netzwerkkarte einigermaßen auskennst, dann bist du '''jetzt''' aufgerufen, diesen Artikel zu erweitern und/oder zu korrigieren!}}
+
Wenn '''du''' dich mit dieser Netzwerkkarte einigermaßen auskennst, dann bist du '''jetzt''' aufgerufen, diesen Artikel zu erweitern und/oder zu korrigieren (oder natürlich diesen Hinweis zu entfernen, wenn du den Artikel für korrekt befindest)!}}
  
 
Dieser Artikel beschäftigt sich mit der Programmierung der AMD-PCnet-FAST-III-Netzwerkkarte (Am79C973).
 
Dieser Artikel beschäftigt sich mit der Programmierung der AMD-PCnet-FAST-III-Netzwerkkarte (Am79C973).
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; 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).
+
2. MAC-Adresse herausfinden; deren einzelne Bytes stehen in den ersten Bytes des I/O-Raums (APROM0 bis APROM5).
  
 
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