![Intel IXP45X Developer'S Manual Download Page 719](http://html1.mh-extra.com/html/intel/ixp45x/ixp45x_developers-manual_2073092719.webp)
Intel
®
IXP45X and Intel
®
IXP46X Product Line of Network Processors
August 2006
Developer’s Manual
Order Number: 306262-004US
719
Expansion Bus Controller—Intel
®
IXP45X and Intel
®
IXP46X Product Line of Network
Processors
12.5.15
EXP_LOCK0
The intent of the EXP_LOCK0 register is to provide multiple masters a mechanism to
lock some arbitrary hardware resource such as a particular region in DDR address
space. When the EXP_LOCK0 register is read for the first time, the Expansion bus
controller will return 0x0 to that master. If the value read from the EXP_LOCK0 register
is 0x0, that master will have access to the resource that was locked until that master
clears the lock by writing a ‘1’ to any of the bits in the EXP_LOCK0 register. If another
master reads the EXP_LOCK0 register before the original master clears the lock, the
2nd master will observe 0xFFFFFFFF, which means that the resource is locked and it
does not have access to the resource. The IXP45X/IXP46X network processors do not
have any hardware to prevent the 2nd master from accessing the locked resource and
it is up to software to ensure that the 2nd master complies to this protocol. The 2nd
master will continue to poll EXP_LOCK0 until it owns the lock (observes 0x0). Once the
2nd master is completed with the lock, it clears the lock to allow another master to
obtain the locked resource. Only the master that owns the lock should be writing the
EXP_LOCK0 register to clear the lock. Other masters must not write the EXP_LOCK0
register when it does own the lock.
Table 235.
EX_ADDR Value to Access EXP_INBOUND_ADDR Register
AddrWidth
EX_ADDR[3:0] to read/
write
EXP_INBOUND_ADDR
EX_ADDR[19:4] to read/
write
EXP_INBOUND_ADDR
EX_ADDR[24:20] to read/
write
EXP_INBOUND_ADDR
0x8
“01XX”
0x0000
“10000”
0x9
“01XX”
0x0000
“X1000”
0xA
“01XX”
0x0000
“XX100”
0xB
“01XX”
0x0000
“XXX10”
Register Name:
EXP_LOCK0
Physical Address:
0xC4000108 and
from External
Master (See note
below)
Reset Hex Value:
0x00000000
Register Description:
This register is intended to facilitate resource locking for multiple masters
Access: See below.
3
1
1
0
LOCK
Register
EXP_LOCK0
Bits
Name
Description
Reset
Value
Access
31:0
LOCK
If the value of LOCK is 0x0 when read, the master owns the resource
and the Expansion bus controller will set LOCK to 0xFFFFFFFF in the
following cycle. The master owns the resource until the master writes
a 1 to any of the bits in this register to clear the lock to 0x0. If LOCK is
0xFFFFFFFF when read, the resource is locked and the master does not
own the resource and must re-read this register again to lock the
resource.
0x0
RS/W1C