Intel
®
81341 and 81342—Address Translation Unit (PCI Express)
Intel
®
81341 and 81342 I/O Processors
Developer’s Manual
December 2007
244
Order Number: 315037-002US
Once the transaction is claimed, the upper 32-bits of the address is discarded and the
lower 32-bits of the address must be translated from a PCI address to a 36-bit internal
bus address. The algorithm is:
The lower 32-bits of the incoming PCI address are first bitwise ANDed with the bitwise
inverse of the limit register. This result is bitwise ORed with the ATU Translate Value,
which is then ORed with the 4-bit ATU Upper Translate Value left shifted by 32; the
result is the 36-bit internal bus address. This translation mechanism is used for all
inbound memory read and write commands excluding inbound configuration read and
writes. Inbound configuration cycle translation is described in
“Inbound Configuration Cycle Translation (ID Routed)” on page 247
shows an inbound translation example for 32-bit addressing. This example
would hold true for an inbound transaction from PCI Express Link.
Equation 9. Inbound Translation
81341 and 81342 Internal Bus Address = ((PCI_Address[31:0] & ~Limit_Register[31:0]) |
ATU_Translate_Value_Register[31:0]) | (ATU_Upper_Translate Value_Register[3:0] << 32).
Figure 26. Inbound Translation Example
0000 0000H
FFFF FFFFH
0 0000 0000H
F FFFF FFFFH
Base_Register = 3A00 0000H
Limit_Register = FF80 0000H (8 Mbyte limit value)
Inbound
Window
Inbound Translation Window ranges from 3A00 0000H to 3A7F FFFFH (8 Mbytes)
PCI_Address
Value_Register = B100 0000H
Internal_Bus
Address
PCI Address
Space
I/O Processor Local
Memory Address Space
Address Detection (32-bit address)
PCI_Address and Limit_Register == Base_Register
3A45 012CH and FF80 0000H == 3A00 0000H
3A45 012CH
PCI_Address is in the Inbound Translation Window
Address Translation
IB_Address = (PCI_Address and ~Limit_Register) | Value_Register
IB_Address = ((3A45 012CH and 007F FFFFH) | B100 0000H) | (1H << 32)
1 B145 012CH
Register Values
IB_Address = 1 B145 012CH
Upper_Value_Register = 1H
Translation
B6323-01