#
685dc743 |
|
16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: one-line .c pattern Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/
|
#
4d846d26 |
|
10-May-2023 |
Warner Losh <imp@FreeBSD.org> |
spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD The SPDX folks have obsoleted the BSD-2-Clause-FreeBSD identifier. Catch up to that fact and revert to their recommended match of BSD-2-Clause. Discussed with: pfg MFC After: 3 days Sponsored by: Netflix
|
#
f859852f |
|
19-Apr-2022 |
John Baldwin <jhb@FreeBSD.org> |
ath: Remove unused devclass arguments to DRIVER_MODULE.
|
#
9966c0f9 |
|
01-Sep-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
ath: clean up empty lines in .c and .h files
|
#
62ba9c86 |
|
07-Jul-2018 |
Warner Losh <imp@FreeBSD.org> |
Fix PCI_SUBDEV call
|
#
4d711ae2 |
|
07-Jul-2018 |
Warner Losh <imp@FreeBSD.org> |
Switch to using new PCI_MATCH stuff.
|
#
718cf2cc |
|
27-Nov-2017 |
Pedro F. Giffuni <pfg@FreeBSD.org> |
sys/dev: further adoption of SPDX licensing ID tags. Mainly focus on files that use BSD 2-Clause license, however the tool I was using misidentified many licenses so this was mostly a manual - error prone - task. The Software Package Data Exchange (SPDX) group provides a specification to make it easier for automated tools to detect and summarize well known opensource licenses. We are gradually adopting the specification, noting that the tags are considered only advisory and do not, in any way, superceed or replace the license texts.
|
#
41059135 |
|
24-May-2017 |
Adrian Chadd <adrian@FreeBSD.org> |
[ath] [ath_hal] (etc, etc) - begin the task of re-modularising the HAL. In the deep past, when this code compiled as a binary module, ath_hal built as a module. This allowed custom, smaller HAL modules to be built. This was especially beneficial for small embedded platforms where you didn't require /everything/ just to run. However, sometime around the HAL opening fanfare, the HAL landed here as one big driver+HAL thing, and a lot of the (dirty) infrastructure (ie, #ifdef AH_SUPPORT_XXX) to build specific subsets of the HAL went away. This was retained in sys/conf/files as "ath_hal_XXX" but it wasn't really floated up to the modules themselves. I'm now in a position where for the reaaaaaly embedded boards (both the really old and the last couple generation of QCA MIPS boards) having a cut down HAL module and driver loaded at runtime is /actually/ beneficial. This reduces the kernel size down by quite a bit. The MIPS modules look like this: adrian@gertrude:~/work/freebsd/head-embedded/src % ls -l ../root/mips_ap/boot/kernel.CARAMBOLA2/ath*ko -r-xr-xr-x 1 adrian adrian 5076 May 23 23:45 ../root/mips_ap/boot/kernel.CARAMBOLA2/ath_dfs.ko -r-xr-xr-x 1 adrian adrian 100588 May 23 23:45 ../root/mips_ap/boot/kernel.CARAMBOLA2/ath_hal.ko -r-xr-xr-x 1 adrian adrian 627324 May 23 23:45 ../root/mips_ap/boot/kernel.CARAMBOLA2/ath_hal_ar9300.ko -r-xr-xr-x 1 adrian adrian 314588 May 23 23:45 ../root/mips_ap/boot/kernel.CARAMBOLA2/ath_main.ko -r-xr-xr-x 1 adrian adrian 23472 May 23 23:45 ../root/mips_ap/boot/kernel.CARAMBOLA2/ath_rate.ko And the x86 versions, like this: root@gertrude:/home/adrian # ls -l /boot/kernel/ath*ko -r-xr-xr-x 1 root wheel 36632 May 24 18:32 /boot/kernel/ath_dfs.ko -r-xr-xr-x 1 root wheel 134440 May 24 18:32 /boot/kernel/ath_hal.ko -r-xr-xr-x 1 root wheel 82320 May 24 18:32 /boot/kernel/ath_hal_ar5210.ko -r-xr-xr-x 1 root wheel 104976 May 24 18:32 /boot/kernel/ath_hal_ar5211.ko -r-xr-xr-x 1 root wheel 236144 May 24 18:32 /boot/kernel/ath_hal_ar5212.ko -r-xr-xr-x 1 root wheel 336104 May 24 18:32 /boot/kernel/ath_hal_ar5416.ko -r-xr-xr-x 1 root wheel 598336 May 24 18:32 /boot/kernel/ath_hal_ar9300.ko -r-xr-xr-x 1 root wheel 406144 May 24 18:32 /boot/kernel/ath_main.ko -r-xr-xr-x 1 root wheel 55352 May 24 18:32 /boot/kernel/ath_rate.ko .. so you can see, not building the whole HAL can save quite a bit. For example, if you don't need AR9300 support, you can actually avoid wasting half a megabyte of RAM. On embedded routers this is quite a big deal. The AR9300 HAL can be later further shrunk because, hilariously, it indeed supports AH_SUPPORT_<xxx> for optionally adding chipset support. (I'll chase that down later as it's quite a big savings if you're only building for a single embedded target.) So: * Create a very hackish way to load/unload HAL modules * Create module metadata for each HAL subtype - ah_osdep_arXXXX.c * Create module metadata for ath_rate and ath_dfs (bluetooth is currently just built as part of it) * .. yes, this means we could actually build multiple rate control modules and pick one at load time, but I'd rather just glue this into net80211's rate control code. Oh well, baby steps. * Main driver is now "ath_main" * Create an "if_ath" module that does what the ye olde one did - load PCI glue, main driver, HAL and all child modules. In this way, if you have "if_ath_load=YES" in /boot/modules.conf it will load everything the old way and stuff should still work. * For module autoloading purposes, I actually /did/ fix up the name of the modules in if_ath_pci and if_ath_ahb. If you want to selectively load things (eg on ye cheape ARM/MIPS platforms where RAM is at a premium) you should: * load ath_hal * load the chip modules in question * load ath_rate, ath_dfs * load ath_main * load if_ath_pci and/or if_ath_ahb depending upon your particular bus bind type - this is where probe/attach is done. TODO: * AR5312 module and associated pieces - yes, we have the SoC side support now so the wifi support would be good to "round things out"; * Just nuke AH_SUPPORT_AR5416 for now and always bloat the packet structures; this'll simplify other things. * Should add a simple refcnt thing to the HAL RF/chip modules so you can't unload them whilst you're using them. * Manpage updates, UPDATING if appropriate, etc.
|
#
f6b6084b |
|
02-May-2016 |
Pedro F. Giffuni <pfg@FreeBSD.org> |
dev/ath: minor spelling fixes in comments. No functional change. Reviewed by: adrian
|
#
b94ab337 |
|
28-Sep-2015 |
Adrian Chadd <adrian@FreeBSD.org> |
Remove the references to the TX IC lock - i ended up solving this using net80211 to seralise encap+xmit, so now it's a non-issue.
|
#
35a32b04 |
|
14-Feb-2015 |
Adrian Chadd <adrian@FreeBSD.org> |
Move the lock destruction/creation to earlier in the process - if interrupts are enabled and the NIC is awake (think: loading a module) then there's a not-quite-zero window where we'll get an interrupt for the device before the attach method is called to finish setting up the hardware. Since I grab locks in ath_intr() to check various things, the locks need to be ready much earlier.
|
#
9389d5a9 |
|
29-Sep-2014 |
Adrian Chadd <adrian@FreeBSD.org> |
Add initial support for the AR9485 CUS198 / CUS230 variants. These variants have a few differences from the default AR9485 NIC, namely: * a non-default antenna switch config; * slightly different RX gain table setup; * an external XLNA hooked up to a GPIO pin; * (and not yet done) RSSI threshold differences when doing slow diversity. To make this possible: * Add the PCI device list from Linux ath9k, complete with vendor and sub-vendor IDs for various things to be enabled; * .. and until FreeBSD learns about a PCI device list like this, write a search function inspired by the USB device enumeration code; * add HAL_OPS_CONFIG to the HAL attach methods; the HAL can use this to initialise its local driver parameters upon attach; * copy these parameters over in the AR9300 HAL; * don't default to override the antenna switch - only do it for the chips that require it; * I brought over ar9300_attenuation_apply() from ath9k which is cleaner and easier to read for this particular NIC. This is a work in progress. I'm worried that there's some post-AR9380 NIC out there which doesn't work without the antenna override set as I currently haven't implemented bluetooth coexistence for the AR9380 and later HAL. But I'd rather have this code in the tree and fix it up before 11.0-RELEASE happens versus having a set of newer NICs in laptops be effectively RX deaf. Tested: * AR9380 (STA) * AR9485 CUS198 (STA) Obtained from: Qualcomm Atheros, Linux ath9k
|
#
e7d939bd |
|
06-Jul-2014 |
Marcel Moolenaar <marcel@FreeBSD.org> |
Remove ia64. This includes: o All directories named *ia64* o All files named *ia64* o All ia64-specific code guarded by __ia64__ o All ia64-specific makefile logic o Mention of ia64 in comments and documentation This excludes: o Everything under contrib/ o Everything under crypto/ o sys/xen/interface o sys/sys/elf_common.h Discussed at: BSDcan
|
#
c3322cb9 |
|
28-Oct-2013 |
Gleb Smirnoff <glebius@FreeBSD.org> |
Include necessary headers that now are available due to pollution via if_var.h. Sponsored by: Netflix Sponsored by: Nginx, Inc.
|
#
1b3502e5 |
|
07-Feb-2013 |
Adrian Chadd <adrian@FreeBSD.org> |
Create a new TX lock specifically for queuing frames. This now separates out the act of queuing frames from the act of running TX and TX completion.
|
#
1b5c5f5a |
|
31-Oct-2012 |
Adrian Chadd <adrian@FreeBSD.org> |
I give up - introduce a TX lock to serialise TX operations. I've tried serialising TX using queues and such but unfortunately due to how this interacts with the locking going on elsewhere in the networking stack, the TX task gets delayed, resulting in quite a noticable throughput loss: * baseline TCP for 2x2 11n HT40 is ~ 170mbit/sec; * TCP for TX task in the ath taskq, with the RX also going on - 80mbit/sec; * TCP for TX task in a separate, second taskq - 100mbit/sec. So for now I'm going with the Linux wireless stack approach - lock tx early. The linux code does in the wireless stack, before the 802.11 state stuff happens and before it's punted to the driver. But TX locking needs to also occur at the driver layer as the TX completion code _also_ begins to drain the ifnet TX queue. Whilst I'm here, add some KTR traces for the TX path. Note: * This really should be done at the net80211 layer (as well, at least.) But that'll have to wait for a little more thought to happen.
|
#
54c99795 |
|
22-Jul-2012 |
Adrian Chadd <adrian@FreeBSD.org> |
Flesh out a new DMA map for the EDMA TX completion status, as well as a lock to go with that whole code path.
|
#
2fe91baa |
|
13-Jul-2012 |
Adrian Chadd <adrian@FreeBSD.org> |
Create an RX queue lock. Ideally these locks would go away and there'd be a single driver lock, like what iwn(4) does. I'll worry about that later.
|
#
b890549d |
|
14-Apr-2012 |
Adrian Chadd <adrian@FreeBSD.org> |
Override some default values to work around various issues in the deep, dirty and murky past. * Override the default cache line size to be something reasonable if it's set to 0. Some NICs initialise with '0' (eg embedded ones) and there are comments in the driver stating that various OSes (eg older Linux ones) would incorrectly program things and 0 out this register. * Just default to overriding the latency timer. Every other driver does this. * Use a default cache line size of 32 bytes. It should be "reasonable enough". Obtained from: Linux ath9k, Atheros
|
#
79f57b35 |
|
13-Apr-2012 |
Adrian Chadd <adrian@FreeBSD.org> |
Upgrade ATH_EEPROM_FIRMWARE to a configuration option.
|
#
0f60da6f |
|
13-Apr-2012 |
Adrian Chadd <adrian@FreeBSD.org> |
Introduce the ability to grab local EEPROM data from the firmware(9) interface. * Introduce a device hint, 'eeprom_firmware', which is the name of firmware to lookup. * If the lookup succeeds, take a copy of it and use it as the eeprom data. This isn't enabled by default - you have to define ATH_EEPROM_FIRMWARE. I'll add it to the configuration variables in a later commit. TODO: * just keep a firmware reference in ath_softc, and remove the need to waste the extra memory in having sc_eepromdata be a malloc()ed block.
|
#
0f0c074e |
|
08-Nov-2011 |
Adrian Chadd <adrian@FreeBSD.org> |
Conditionally compile the PCI latency workaround; I think it's only required for some earlier NICs.
|
#
3dd85b265 |
|
07-Nov-2011 |
Adrian Chadd <adrian@FreeBSD.org> |
Begin merging in some of my 802.11n TX aggregation driver changes. * Add a PCU lock, which isn't currently used but will eventually be used to serialise some of the driver access. * Add in all the software TX aggregation state, that's kept per-node and per-TID. * Add in the software and aggregation state to ath_buf. * Add in hooks to ath_softc for aggregation state and the (upcoming) aggregation TX state calls. * Add / fix the HAL access macros. Obtained from: Linux, ath9k Sponsored by: Hobnob, Inc.
|
#
2c0dd4bb |
|
17-Oct-2011 |
Adrian Chadd <adrian@FreeBSD.org> |
Add in a currently-disabled WAR for PCI NICs. Some earlier series (~AR5212?) play badly with BIOSes. In these instances, they may require a forced reset (by transitioning the NIC through D0 -> D3 -> D0) before they probe/attach correctly. This is currently disabled because: * I haven't figured out the "right" code to ensure this only happens for PCI NICs (not PCIe or Cardbus); * I haven't at all done wide scale testing for this, and I'm not yet ready for said wide-scale testing. I'm documenting this primarily so users with misbehaving NICs have something to tinker with. Obtained from: Atheros
|
#
65d1eb94 |
|
17-Oct-2011 |
Adrian Chadd <adrian@FreeBSD.org> |
Add a WAR from the reference code - clear the PCI error status upon detach. Obtained from: Atheros
|
#
cdd36f96 |
|
13-Oct-2011 |
Adrian Chadd <adrian@FreeBSD.org> |
ath_pci PCI setup fixes. * Break out the PCI setup override code into a new function. * Re-apply the PCI overrides on powersave resume. The retry timeout register isn't currently being saved/resumed by the PCI driver/bus code.
|
#
dba9c859 |
|
31-Mar-2011 |
Adrian Chadd <adrian@FreeBSD.org> |
Break out the ath PCI logic into a separate device/module. Introduce the AHB glue for Atheros embedded systems. Right now it's hard-coded for the AR9130 chip whose support isn't yet in this HAL; it'll be added in a subsequent commit. Kernel configuration files now need both 'ath' and 'ath_pci' devices; both modules need to be loaded for the ath device to work.
|
#
a7d5f7eb |
|
19-Oct-2010 |
Jamie Gritton <jamie@FreeBSD.org> |
A new jail(8) with a configuration file, to replace the work currently done by /etc/rc.d/jail.
|
#
b8f5836a |
|
15-May-2009 |
Warner Losh <imp@FreeBSD.org> |
The module name convention is foo, not if_foo.
|
#
155a83e8 |
|
09-Mar-2009 |
Warner Losh <imp@FreeBSD.org> |
remove now-redunant cardbus attachment.
|
#
50666d87 |
|
05-Jan-2009 |
Sam Leffler <sam@FreeBSD.org> |
remove the ath_rate module dependency; it's all bundled
|
#
33644623 |
|
01-Dec-2008 |
Sam Leffler <sam@FreeBSD.org> |
Switch to ath hal source code. Note this removes the ath_hal module; the ath module now brings in the hal support. Kernel config files are almost backwards compatible; supplying device ath_hal gives you the same chip support that the binary hal did but you must also include options AH_SUPPORT_AR5416 to enable the extended format descriptors used by 11n parts. It is now possible to control the chip support included in a build by specifying exactly which chips are to be supported in the config file; consult ath_hal(4) for information.
|
#
d7f03759 |
|
19-Oct-2008 |
Ulf Lilleengen <lulf@FreeBSD.org> |
- Import the HEAD csup code which is the basis for the cvsmode work.
|
#
b032f27c |
|
20-Apr-2008 |
Sam Leffler <sam@FreeBSD.org> |
Multi-bss (aka vap) support for 802.11 devices. Note this includes changes to all drivers and moves some device firmware loading to use firmware(9) and a separate module (e.g. ral). Also there no longer are separate wlan_scan* modules; this functionality is now bundled into the wlan module. Supported by: Hobnob and Marvell Reviewed by: many Obtained from: Atheros (some bits)
|
#
e3e2d9bf |
|
22-Oct-2007 |
Kevin Lo <kevlo@FreeBSD.org> |
- Use pci_enable_busmaster() to turn on busmaster. - Don't test memory/port status and emit an error message; the PCI bus will do this. Reviewed by: sam
|
#
515d617e |
|
06-Jun-2007 |
Sam Leffler <sam@FreeBSD.org> |
update copyrights to 2007 and convert to be 2-clause bsd-only
|
#
ef544f63 |
|
22-Feb-2007 |
Paolo Pisati <piso@FreeBSD.org> |
o break newbus api: add a new argument of type driver_filter_t to bus_setup_intr() o add an int return code to all fast handlers o retire INTR_FAST/IH_FAST For more info: http://docs.freebsd.org/cgi/getmsg.cgi?fetch=465712+0+current/freebsd-current Reviewed by: many Approved by: re@
|
#
c2175ff5 |
|
21-Jan-2007 |
Marius Strobl <marius@FreeBSD.org> |
Change the remainder of the drivers for DMA'ing devices enabled in the sparc64 GENERIC and the sound device drivers known working on sparc64 to use bus_get_dma_tag() to obtain the parent DMA tag so we can get rid of the sparc64_root_dma_tag kludge eventually. Except for ath(4), sk(4), stge(4) and ti(4) these changes are runtime tested (unless I booted up the wrong kernels again...).
|
#
30e218c0 |
|
01-Dec-2006 |
Sam Leffler <sam@FreeBSD.org> |
clarify shortcut return Submitted by: cognet, kevlo MFC after: 1 week
|
#
465c8d67 |
|
07-Jun-2006 |
Sam Leffler <sam@FreeBSD.org> |
bandaid type coercion for ia64 Submitted by: marcel
|
#
f9fc583f |
|
05-Jun-2006 |
Sam Leffler <sam@FreeBSD.org> |
move hal bus+tag externalization to the bus glue code where it belongs; this is a noop on all current freebsd architectures MFC after: 1 month
|
#
6ccb8ea7 |
|
08-May-2006 |
Sam Leffler <sam@FreeBSD.org> |
quiet tindexbox complaints about passing BUS_SPACE_MAXADDR as a bus_size_t to bus_dma_tag_create; when PAE is enabled this does not work Cluebat by: scottl MFC after: 2 weeks
|
#
53ee7173 |
|
05-Mar-2005 |
Warner Losh <imp@FreeBSD.org> |
Use BUS_PROBE_DEFAULT for pci probe return value
|
#
0b19ce1e |
|
18-Jan-2005 |
Sam Leffler <sam@FreeBSD.org> |
o disable pci retry timeout to avoid problems when operating in C3 state (fix imported from madwifi by Takanori Watanabe) o eliminate save/restore of pci registers handled by the system o eliminate duplicate zero of the softc (noted by njl) o consolidate common code MFC after: 1 week
|
#
1f1d7810 |
|
31-Dec-2004 |
Sam Leffler <sam@FreeBSD.org> |
bump copyright for 2005
|
#
c42a7b7e |
|
08-Dec-2004 |
Sam Leffler <sam@FreeBSD.org> |
Update with last year of work.
|
#
cb344d95 |
|
02-Apr-2004 |
Sam Leffler <sam@FreeBSD.org> |
update copyright notice for 2004
|
#
5f96beb9 |
|
17-Mar-2004 |
Nate Lawson <njl@FreeBSD.org> |
Convert callers to the new bus_alloc_resource_any(9) API. Submitted by: Mark Santcroos <marks@ripe.net> Reviewed by: imp, dfr, bde
|
#
347934fa |
|
27-Nov-2003 |
Warner Losh <imp@FreeBSD.org> |
Sometimes cardbus attachments don't attach, so while we track down this problem put these lines back in. While they should be unnecessary, they appear to be sometimes necessary. Reviewed in concept: dfr Approved by: re (scottl@)
|
#
0be389f3 |
|
03-Nov-2003 |
Doug Rabson <dfr@FreeBSD.org> |
Remove explicit cardbus attachments from drivers where this is identical to the pci attachment. Cardbus is a derived class of pci so all pci drivers are automatically available for matching against cardbus devices. Reviewed by: imp
|
#
f0b2a0be |
|
14-Oct-2003 |
Sam Leffler <sam@FreeBSD.org> |
o convert mutex calls to #defines for portability, etc. o destroy mutex's on detach (was missing)
|
#
b58b3803 |
|
13-Aug-2003 |
Sam Leffler <sam@FreeBSD.org> |
Close a race where ath_intr is installed and may be called before the HAL is setup: use sc_invalid to discard such entries into ath_intr. This can easily happen if the device is assigned a shared IRQ.
|
#
f6b1c44d |
|
01-Jul-2003 |
Scott Long <scottl@FreeBSD.org> |
Mega busdma API commit. Add two new arguments to bus_dma_tag_create(): lockfunc and lockfuncarg. Lockfunc allows a driver to provide a function for managing its locking semantics while using busdma. At the moment, this is used for the asynchronous busdma_swi and callback mechanism. Two lockfunc implementations are provided: busdma_lock_mutex() performs standard mutex operations on the mutex that is specified from lockfuncarg. dftl_lock() is a panic implementation and is defaulted to when NULL, NULL are passed to bus_dma_tag_create(). The only time that NULL, NULL should ever be used is when the driver ensures that bus_dmamap_load() will not be deferred. Drivers that do not provide their own locking can pass busdma_lock_mutex,&Giant args in order to preserve the former behaviour. sparc64 and powerpc do not provide real busdma_swi functions, so this is largely a noop on those platforms. The busdma_swi on is64 is not properly locked yet, so warnings will be emitted on this platform when busdma callback deferrals happen. If anyone gets panics or warnings from dflt_lock() being called, please let me know right away. Reviewed by: tmm, gibbs
|
#
5591b213 |
|
23-Jun-2003 |
Sam Leffler <sam@FreeBSD.org> |
Atheros 802.11 driver. Requires Atheros Hardware Access Lay (HAL). Supported by: Atheros Comunications
|