summaryrefslogtreecommitdiffstats
path: root/sys/modules
diff options
context:
space:
mode:
authoradrian <adrian@FreeBSD.org>2011-04-28 12:47:40 +0000
committeradrian <adrian@FreeBSD.org>2011-04-28 12:47:40 +0000
commita4f08be08e135ccfb609b61b096ce1849e2a1e6a (patch)
tree054204116e570df7c016e1567dc5a2f5d878dd94 /sys/modules
parenta09ee46337e80760839065ecb43f8003cd7a7f85 (diff)
downloadFreeBSD-src-a4f08be08e135ccfb609b61b096ce1849e2a1e6a.zip
FreeBSD-src-a4f08be08e135ccfb609b61b096ce1849e2a1e6a.tar.gz
Introduce AR9130 (HOWL) WMAC support to the FreeBSD HAL.
The AR9130 is an AR9160/AR5416 family WMAC which is glued directly to the AR913x SoC peripheral bus (APB) rather than via a PCI/PCIe bridge. The specifics: * A new build option is required to use the AR9130 - AH_SUPPORT_AR9130. This is needed due to the different location the RTC registers live with this chip; hopefully this will be undone in the future. This does currently mean that enabling this option will break non-AR9130 builds, so don't enable it unless you're specifically building an image for the AR913x SoC. * Add the new probe, attach, EEPROM and PLL methods specific to Howl. * Add a work-around to ah_eeprom_v14.c which disables some of the checks for endian-ness and magic in the EEPROM image if an eepromdata block is provided. This'll be fixed at a later stage by porting the ath9k probe code and making sure it doesn't break in other setups (which my previous attempt at this did.) * Sprinkle Howl modifications throughput the interrupt path - it doesn't implement the SYNC interrupt registers, so ignore those. * Sprinkle Howl chip powerup/down throughout the reset path; the RTC methods were * Sprinkle some other Howl workarounds in the reset path. * Hard-code an alternative setup for the AR_CFG register for Howl, that sets up things suitable for Big-Endian MIPS (which is the only platform this chip is glued to.) This has been tested on the AR913x based TP-Link WR-1043nd mode, in legacy, HT/20 and HT/40 modes. Caveats: * 2ghz has only been tested. I've not seen any 5ghz radios glued to this chipset so I can't test it. * AR5416_INTERRUPT_MITIGATION is not supported on the AR9130. At least, it isn't implemented in ath9k. Please don't enable this. * This hasn't been tested in MBSS mode or in RX/TX block-aggregation mode.
Diffstat (limited to 'sys/modules')
-rw-r--r--sys/modules/ath/Makefile25
1 files changed, 20 insertions, 5 deletions
diff --git a/sys/modules/ath/Makefile b/sys/modules/ath/Makefile
index e5fc7f6..b66ec09 100644
--- a/sys/modules/ath/Makefile
+++ b/sys/modules/ath/Makefile
@@ -75,13 +75,14 @@ SRCS+= ar2425.c
SRCS+= ar5413.c
#
-# AR5416, AR9160 support; these are 11n parts but only really
-# supported (right now) operating in legacy mode. Note enabling
-# this support requires defining AH_SUPPORT_AR5416 in opt_ah.h
-# so the 11n tx/rx descriptor format is handled.
+# AR5416, AR9130, AR9160, AR9220, AR9280, AR9285 support.
+
+# Note enabling this support requires defining AH_SUPPORT_AR5416
+# in opt_ah.h so the 11n tx/rx descriptor format is handled.
#
# NB: 9160 depends on 5416 but 5416 does not require 9160
#
+# + 5416 (Owl)
.PATH: ${.CURDIR}/../../dev/ath/ath_hal/ar5416
SRCS+= ah_eeprom_v14.c ah_eeprom_v4k.c \
ar5416_ani.c ar5416_attach.c ar5416_beacon.c ar5416_cal.c \
@@ -90,14 +91,28 @@ SRCS+= ah_eeprom_v14.c ah_eeprom_v4k.c \
ar5416_misc.c ar5416_phy.c ar5416_power.c ar5416_recv.c \
ar5416_reset.c ar5416_xmit.c
-# RF backend for 5416 and 9160
+# RF backend for 5416, 9130 and 9160
SRCS+= ar2133.c
+# + AR9160 (Sowl)
.PATH: ${.CURDIR}/../../dev/ath/ath_hal/ar9001
SRCS+= ar9160_attach.c
+# + AR9130 - (Sowl) - Embedded (AR913x SoC)
+#
+# This requires AH_SUPPORT_AR9130 in order to function as some
+# register values have shifted for this chipset. Definig this however
+# (currently) breaks non-AR9130 chipsets - since this is an embedded
+# chipset and no other radios are glued to it, this shouldn't pose a
+# problem.
+SRCS+= ar9130_attach.c ar9130_eeprom.c ar9130_phy.c
+
+# AR9002 series chips
+# + AR9220/AR9280 - Merlin
.PATH: ${.CURDIR}/../../dev/ath/ath_hal/ar9002
SRCS+= ar9280.c ar9280_attach.c ar9280_olc.c
+
+# + AR9285 - Kite
SRCS+= ar9285.c ar9285_reset.c ar9285_attach.c ar9285_cal.c ar9285_phy.c
SRCS+= ar9285_diversity.c
OpenPOWER on IntegriCloud