This function ensures that the chip is setup correctly and is ready for use.
Backup the 32 bit contents of SHM control word 0x0001, offset 0x0000
Write 0xAA5555AA to SHM control word 0x0001, offset 0x0000
Read the 32 bit contents of SHM control word 0x0001, offset 0x0000 and if it does not match the value we just wrote, return false
Write 0x55AAAA55 to SHM control word 0x0001, offset 0x0000
Read the 32 bit contents of SHM control word 0x0001, offset 0x0000 and if it does not match the value we just wrote, return false
Restore the 32 bit value we backed up from SHM control word 0x0001, offset 0x0000
- If the SB Core Revision is 3 or greater
Write 0xAAAA to MMIO offset 0x18C (16 bit write)
Write 0xCCCCBBBB to MMIO offset 0x18C (32 bit write)
Read MMIO offset 0x604 (16 bit read)
- If the value read is not 0xBBBB, return false
Read MMIO offset 0x606 (16 bit read)
- If the value read is not 0xCCCC, return false
Write 0 to MMIO offset 0x18C (32 bit write)
If MMIO offset 0x120 ORed with 0x80000000 is not 0x80000400, return false
If MMIO offset 0x128 isn't set to 0, return false
Chip Access is validated if PHY Type is less than 3, and isn't otherwise.