Intel
®
IXP45X and Intel
®
IXP46X Product Line of Network Processors
August 2006
Developer’s Manual
Order Number: 306262-004US
655
Expansion Bus Controller—Intel
®
IXP45X and Intel
®
IXP46X Product Line of Network
Processors
has 16-MByte or smaller devices on all of the chip selects, one of the EXP_CS_TIMING
register could be programmed to a 32-Mbyte device so the Expansion bus address
mapping will not change if that design switches to 32-MByte device sometime in the
future. The Expansion bus controller will still work with the smaller device, however an
error response will not be generated if there is an access outside the device window for
that device.
12.4.1.3
Address and Data Byte Steering
shows the address and data mapping from the AHB to the Expansion Bus.
This table applies to Intel, Synchronous Intel, Micron ZBT and Motorola defined cycles
only. For 32-bit read operations to a byte/halfword wide interface, multiple bytes are
collected and then transferred as a complete 32-bit word. This pattern occurs as shown
below for any allowable sub-length read access. Four- and eight-word reads are also
supported and generate multiple accesses to the target device. Four- and eight-word
reads to Synchronous Intel only generate one burst access to the device. Byte enables
are generated for both reads and writes and are valid the same cycles (T1-T4 phases)
as EX_ADDR is valid. Byte write devices (devices that need EX_BE_N asserted in the
same exact cycles that EX_WR_N is asserted) are not supported. The AHB bus is
always big-endian format and the Expansion bus is little-endian. The conversions for
each cycle are shown in
For 8-bit devices, EX_DATA[31:8] must not toggle to conserve power. Similarly, for 16-
bit devices, EX_DATA[31:16] must not toggle. For sub-word writes to 32-bit devices,
EX_DATA must not toggle for byte enables not asserted.
Figure 126. Chip Select Address Allocation when a 32-Mbyte Device is Programmed
B4398-01
cs_n[7]
256
MBytes
cs_n[0]
cs_n[1]
cs_n[2]
cs_n[3]
cs_n[4]
cs_n[5]
cs_n[6]
base + 0x2000000
base + 0x4000000
base + 0x6000000
base + 0x8000000
base + 0xA000000
base + 0xC000000
base + 0xE000000
base + 0x0000000
32 MB
0b00000 : 512 Bytes
CNFG[4:0] = 0b00001
SIZE = 32 MBytes
0b11100 : 8 MBytes
0b11010 : 4 MBytes
0b11000 : 2 MBytes
0b10110 : 1 MBytes
cs_n[x]
base + 0xFFFFFFF
0b11110 : 16 MBytes