Intel 82558 Switch User Manual


 
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)