Data Sheet

Initialization—Ethernet Controller I210
153
If the factory MAC address was restored by the internal firmware, the FWSM.Factory MAC address
restored bit is set.
If the value at word 0x37 is valid, but the MAC addresses in the alternate MAC structure are not valid
(0xFFFFFFFF), the regular MAC address is backed up in the alternate MAC structure.
The I210 supports replacing the MAC address with a BIOS CLP interface.
4.6 Access to Shared Resources
Part of the resources in the I210 are shared between several software entities - namely the driver and
the internal firmware. In order to avoid contentions, a software device driver that needs to access one
of these resources should use the flow described in Section 4.6.1 in order to acquire ownership of this
resource and use the flow described in Section 4.6.2 in order to relinquish ownership of this resource.
The shared resources are:
1. Flash.
2. The PHYs or SerDes port.
3. CSRs accessed by the internal firmware after the initialization process. Currently there are no such
CSRs.
4. SVR/LVR control registers.
5. Management Host Interface
6. I
2
C register set
Note: Any other software tool that accesses the register set directly should also follow the flow
described in the sections that follow.
4.6.1 Acquiring Ownership Over a Shared Resource
The following flow should be used to acquire a shared resource:
1. Get ownership of the software/software semaphore SWSM.SMBI (offset 0x5B50 bit 0).
a. Read the SWSM register.
b. If SWSM.SMBI is read as zero, the semaphore was taken.
c. Otherwise, go back to step a.
This step assures that other software will not access the shared resources register
(SW_FW_SYNC).
2. Get ownership of the software/firmware semaphore SWSM.SWESMBI (offset 0x5B50 bit 1):
a. Set the SWSM.SWESMBI bit.
b. Read SWSM.
c. If SWSM.SWESMBI was successfully set - the semaphore was acquired - otherwise, go back to
step a.
This step assures that the internal firmware will not access the shared resources register
(SW_FW_SYNC).
3. Software reads the Software-Firmware Synchronization Register (SW_FW_SYNC) and checks both
bits in the pair of bits that control the resource it wants to own.
a. If both bits are cleared (both firmware and other software does not own the resource), software
sets the software bit in the pair of bits that control the resource it wants to own.