How to Enable and Disable Base Address Register (BAR)
Note | The X710, XL710, and XXV710 adapters do not support disabling the 64-bit BAR. These Adapters only support 64-bit Registers. |
What is the problem?
In modern systems, controllers often get assigned 64-bit memory BARs. The 64-bit memory is not a problem for Windows*, Linux*, EFI* environment, and other systems. However, legacy expansion ROMs cannot address above 32-bits.
What am I seeing?
- PXE
PXE returns an error message and fails. Common errors are:
- “PXE-EC8!PXE structure was not found in UNDI driver code segment.”
- “PXE-EC9: PXENV + structure was not found in UNDI driver code segment.”
For a complete technical description of the problem, see the last chapter of Boot_Agent_book rev1_9.pdf.
- iSCSI
iSCSI boot does not appear in the BIOS bootable device table and never executes.
How do I disable 64-bit BAR?
The change in BootUtil is the addition of two command line parameters: -64d and -64e.
- Parameter -64d disables 64-bit BAR assignments on a controller.
- Parameter -64e enables 64-bit BAR assignments on a controller.
Example: BootUtil –nic=xx -64d
Where xx is the NIC number. The nic numbers are listed by running BootUtil with no parameters.
See the BootUtil user guide for complete instructions.
What if 64-bit BAR is already disabled?
If 64-bit BAR is disabled, the BAR must be set to Not Prefetchable.
- In the Intel® Ethernet Connection I210:
- EEPROM functions control word 0x21
- bit 10 is 32-bit BAR
- bit 9 is PERFBAR (Prefetch).
- In Intel® 10 Gigabit Ethernet Connections:
- PCIe* control word 0x3
- bit 15 is 32-bit BAR. In the datasheet, it is listed as “reserved.”
What utilities can I use to adjust BAR status?
You can edit the image of the EEPROM directly with EEUPDATE or LANConf.
Refer to the Intel® Ethernet Connection datasheet and read the instructions for using either EEUPDATE or LANConf utilities.
Intel® Boot Agent Application Notes for BIOS Engineers (PDF)
The Intel® Boot Agent is:
- A personal computer option ROM.
- Designed to supply industry standard PXE-compliant pre-boot services for x86 architecture computers.
- Stored depending on the component design:
- On a Flash component.
- On an add-in Network Interface Card (NIC).
- Integrated into the BIOS.
Size: 94 KB
Date: November 2015
Revision: 1.9
Note: PDF files require Adobe Acrobat Reader*