init routine
- turn off interrupts
do initial PHY calibration
do Backplane timeout fixup
- reset PSM by setting the MAC control register to "IHR Region Enabled" | "PSM Jump 0"
upload Microcode
upload PCM microcode
- set all MAC interrupt register bits and start PSM by writing "Infra Mode" | "IHR Region Enabled" | "PSM Run" to the MAC control register
- wait (up to one second) until MAC suspended is set in the MAC interrupt register
- initialise GPIOs (to be detailed)
write core dependent Initial Values
fix up FIFO sizes if necessary
validate that FIFO sizes in SHM match expectations
- set default antenna swap threshold value in SHM
- initialise PIO
- invalidate the last posted broadcast/multicast frame ID in the SHM (by writing 0xffff)
- update slot timings
- initialise FIFO interrupts
- allow MAC to control PHY clock (by setting the "MAC PHY Clock Control Enable" bit in the TM State Low register)
if core revision is >= 5, program the dynamic clock control faster powerup delay (to be detailed)
- write core revision to SHM
- write retry limits to microcode registers
- write rate fallback retry limits to SHM
- set MAC address and BSSID
clear crypto engine
- initialise DMA engines/PIO
initialise band
- enable MAC