Specifications

Futurebus+ Bus Support
15.3 Futurebus+ CSR Addressing
Figure 15–2 Format of an A32 CSR Address
ZK6727AGE
A32 CSR Addressing
available
space
00000000
EFFFFFFF
F0000000
FFFFFFFF
0
512
1K
2K
4K
reserved
for node
registers
bus 1023 node 63 Unit
bus 0
bus 1
node 0
CSR
Core
Fbus +
dependent
ROM
A32 space Bus space Node space
Initial
Node space
031 12 1118 1728 27
register space
bus number
node number
register offset
A32 CSR Address
Futurebus+ node 0 Initial Node Space base address = FFFC0000
Futurebus+ A32 register space is accessed when bits 31:28 of the address
are 1111 (binary). This uses up 1/16 of the available 32 bit address space for
register space. Futurebus+ A32 addressing allows for bus numbers, such that
1023 separate buses, each with 63 nodes, can exist in the same address space.
Futurebus+ reserves node 63 as a "broadcast space" address, so Futurebus+
systems are limited to 62 nodes on a bus.
Configuration software is expected to number all of the buses that may be present
in a system. Nodes on the same Futurebus+ can access each other’s register
space using the actual bus number (from the NODE_IDS register) or bus number
1023, which is always interpreted as the local bus. OpenVMS AXP uses bus
number 1023 for all accesses to Futurebus+ address space. Modules get the 5
most significant bits of their 6 bit node address from the Geographical Address
lines GA<4:0>, which are hardwired in each backplane slot. The least significant
bit of the node address determines which node on a module is addressed (0 or
1). Modules which only implement a single node are supposed to use node 0
addresses. As shown in the above diagram, each node is assigned a 4KB block
of initial node space for CSRs. The 4KB space is broken up into 4 regions–CSR
15–3