Programmer’s Guide BCM5722
10/15/07
Broadcom Corporation
Document 5722-PG101-R Configuration Space Page 130
PCI Base Address Register
The PCI_Base_Address Register (BAR) specifies the location of a BCM5722 Ethernet controller memory mapped I/O block.
The BCM5722 Ethernet controller mode configuration (Flat vs. Standard) affects how the BAR is setup (see Figure 51).
• Bits 4–31 in the PCI_Base_Address register are selectively programmable based on the amount of host memory
requested. The PnP BIOS/OS will use an algorithm to test the BAR bits and determine the amount of physical memory
requested.
• The Memory_Space_Indicator bit designates whether the BAR is memory or I/O mapped. The BCM5722 Ethernet
controller hard codes the Memory_Space_Indicator bit to zero (de-asserted).
• The Location/Type bits specify locations in host memory space where a device can decode physical addresses. The
BCM5722 Ethernet controller memory mapped I/O range may be placed anywhere in 64-bit address space (Type = 10).
• The BCM5722 Ethernet controller deasserts the Prefetchable bit to indicate that the memory range should not be
cached.
Figure 51: PCI Base Address Register
The BCM5722 Ethernet controller 64K memory mapped I/O block is determined by the first programmable bit in the BAR.
When the MAC is configured in standard mode, the mask 0xFFFF0000 identifies the BAR bits, which are programmable. Bit
16 is the first bit encountered in the scan upward, which is programmable; bits 0–3 are ignored. Host software will read zero
values from bits 4–16. Figure 52 shows the BAR register and the bits returned to the OS/BIOS during resource allocation.
Figure 52: PCI Base Address Register Bits Read in Standard Mode
Base Address P Type M
Memory Space Indicator:
I/O = 1
Memory = 0
Location:
00 = Anywhere
01 = Below 1 MB
10 = Anywhere in 64-bit Addr Spac
11 = Reserved
Prefetchable:
0 = Disabled
1 = Enabled
Binary Weighted Value:
the 1st programmable
bit (ascending) indicates
requested block size.
[0][2:1][3][31:4]
XXXX XXXX XXXX XXX1 0000 0000 0000 0 11 0
[0
[2:1][3][31:4]
Binary Weighted Value:
0x00010000 = 64K
X's are don't cares
Ignored:
Bits 0-3