Re: Help me grok the ath(4) device attach code

From: John Nielsen <lists_at_jnielsen.net>
Date: Mon, 12 Jun 2023 01:16:42 UTC
> On May 30, 2023, at 11:17 PM, Adrian Chadd <adrian@freebsd.org> wrote:
> 
> There's known issues with all the Atheros chips (sigh) with how the EEPROM and PCIe bus reset .. interact.
> (If the bus reset is too short then the EEPROM state machine gets stuck and nothing gets read.) It makes debugging this hard because the NIC itself will work in another device fine, because it's the BIOS/ACPI code. :(

Does “nothing gets read” manifest as getting zeroes back? That does appear to be what’s happening on my laptop:

Trying (2) EEPROM access at address 0x03ff
ar9300_eeprom_restore_internal_address: Found block at 3ff: code=0 ref=0 length=0 major=0 minor=0
ar9300_eeprom_restore_internal_address: word[0]=0x00 word[1]=0x00 word[2]=0x00 word[3]=0x00
ar9300_eeprom_restore_internal_address: checksum 0 0
ar9300_eeprom_restore_internal_address: EEPROM structure size mismatch memory=1088 eeprom=0

Are there any workarounds (even gross ones like sleeping 2 seconds somewhere)?