Device Reset Procedure
BCM5718 Programmer’s Guide
Broadcom
®
January 29, 2016 • 5718-PG108-R
Page 146
72.
Setup the physical layer and restart auto-negotiation. For details on PHY auto-negotiation, refer to the
applicable PHY data sheet.
73.
“Packet Filtering” on page 135
for details on multicast filter setup.
74.
Enable the Host Interrupt:
a. Set the Clear_Interrupt bit in the Miscellaneous Host Control register (offset: 0x68) to clear the interrupt
and Clear the Mask_Interrupt bit in the Miscellaneous Host Control register (offset: 0x68) to unmask the
interrupt.
b. Set the interrupt mail box register (offset: 0x200) to 0.
Device Reset Procedure
1.
Write the T3_MAGIC_NUMBER (0x4B657654 = KevT) to the device memory at offset 0xB50 to notify the
bootcode that the reset is a warm reset (driver initiated core_clocks reset).
2.
Save PCI command register 0x4 before chip reset (GRC_MISC_CFG core clock reset will clear the memory
enable bit in PCI register 0x4, so we save relevant registers here)
3.
Clear the Fast Boot Program Counter register (Offset 0x6894) and enable the Memory Arbiter (see
Arbiter Mode Register (offset: 0x4000)” on page 426
4.
Initialize the Miscellaneous Host Control register (see
“Miscellaneous Host Control Register (offset: 0x68)”
a. Set the Enable_Endian_Word_Swap bit in the Miscellaneous Host Control register, when the host
processor architecture is little-endian. Set the Enable_Endian_Word_Swap bit and the
Enable_Endian_Byte_Swap bit in the Miscellaneous Host Control register, when the host processor
architecture is big-endian.
b. Enable the indirect register pairs by setting the Enable_Indirect_Access bit in the Miscellaneous Host
Control register (see
).
c. Enable the PCI State register to allow the device driver read/write access by setting the
Enable_PCI_State_Register bit in the Miscellaneous Host Control register.
5.
Reset the core clocks by setting the CORE_Clock_Blocks-Reset bit in the General Control Miscellaneous
Configuration register and setting the Disable_GRC_Reset_on_PCI-E_Block bit (bit-29) to 1
(
“Miscellaneous Configuration Register (offset: 0x6804)” on page 470
).
6.
Wait for the core-clock reset to complete. The core clock reset disables indirect mode and flat/standard
modes ¡X software cannot poll the core-clock reset bit to deassert, since the local memory interface is
disabled by the reset. Delay a minimum of 1 millisecond before continuing the initialization sequence.
7.
Enable MAC memory space decode and bus mastering by setting the Bus_Master and Memory_Space bits
in the PCI Configuration Space Command register (see
“Status and Command Register (offset: 0x04)” on
8.
Enable the MAC memory arbiter by setting the Enable bit in the Memory Arbiter Mode register (see
Arbiter Mode Register (offset: 0x4000)” on page 426
9.
Initialize the Miscellaneous Host Control register (see