--- a/sys/dev/netif/ath/ath_hal/ar9002/ar9287_attach.c +++ b/sys/dev/netif/ath/ath_hal/ar9002/ar9287_attach.c @@ -432,6 +432,22 @@ if (!ar5416FillCapabilityInfo(ah)) return AH_FALSE; + + /* + * The AR9287 (Kiwi-2) is 2GHz-only silicon. The 9287 EEPROM + * layer refuses AR_EEP_AMODE (ah_eeprom_9287.c), but the shared + * ar5416 GMODE block re-adds the 11A/11NA modes and the 5GHz + * channel edges are inherited unconditionally. Admitting 5GHz + * modes lets regdomain-derived 5GHz channels into the channel + * list even though the EEPROM carries only 2GHz calibration + * data (NULL pier walk -> panic in ar9287_reset.c). Clamp here. + */ + pCap->halWirelessModes &= ~(HAL_MODE_11A | HAL_MODE_TURBO | + HAL_MODE_108A | HAL_MODE_11A_HALF_RATE | HAL_MODE_11A_QUARTER_RATE | + HAL_MODE_11NA_HT20 | HAL_MODE_11NA_HT40PLUS | + HAL_MODE_11NA_HT40MINUS); + pCap->halLow5GhzChan = 0; + pCap->halHigh5GhzChan = 0; pCap->halNumGpioPins = 10; pCap->halWowSupport = AH_TRUE; pCap->halWowMatchPatternExact = AH_TRUE;