Intel 82558 Manuale Utente

Pagina di 175
30
Intel 8255x 10/100 Mbps Ethernet Controller Family Open Source Software Developer Manual  
 
 
Host Software Interface
To support linear addressing, the device should be programmed as follows:
Load a value of 00000000h into the CU base using the Load CU Base Address SCB command.
Load a value of 00000000h into the RU base using the Load RU Base Address SCB command.
Use the offset pointer values in the various data structures as absolute 32-bit linear addresses.
To support 32-bit segmented addressing, the device should be programmed as follows:
Load the desired segment value into the CU base using the Load CU Base Address SCB 
command.
Load the desired segment value into the RU Base using the Load RU Base Address SCB 
command.
Use the offset pointer values in the various data structures as 16-bit offsets. Software must 
ensure that the upper 16 bits of this offset equal 0000h as the device will add all 32 bits of the 
base and offset values.
Note: The Load CU Base and the Load RU Base commands can only be executed when the CU and RU 
are in the idle state. Issuing these commands when the CU or RU is not idle is prohibited.
As mentioned earlier, the 8255x data structures have special memory alignment requirements. The 
table below lists these requirements. Most of the structures listed in the table will be discussed in 
much greater detail in subsequent sections.
Table 9.  Device Addressing Formats
Points to
Base Register
32-bit Offset Pointer
Physical Address
Start of Command 
Block List (CBL)
CU Base (32-bit)
SCB General Pointer
Base (32) + Offset (32)
Start of Receive Frame 
Area (RFA)
RU Base (32-bit)
SCB General Pointer
Base (32) + Offset (32)
Next Command Block 
(CB)
CU Base (32-bit)
Link Address in CB
Base (32) + Offset (32)
Start of TBD Array
CU Base (32-bit)
TBD Array Address in TxCB
Base (32) + Offset (32)
Next Receive Frame 
Descriptor (RFD)
RU Base (32-bit)
Link Address in RFD
Base (32) + Offset (32)
TX Buffer
No Base Register
Transmit Buffer #n Address in 
TBD Array
Offset (32)
(Physical address)
Dump Buffer (Dump 
CB)
CU Base (32-bit)
Buffer Address in CB
Base (32) + Offset (32)
Port Dump / Self-Test
No Base Register
Port Address
Offset (32)
(Physical address)
Dump Counters
No Base Register
SCB General Pointer
Offset (32)
(Physical address)