#
95ee2897 |
|
16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: two-line .h pattern Remove /^\s*\*\n \*\s+\$FreeBSD\$$\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
|
#
0e72eb46 |
|
07-Mar-2021 |
Mark Johnston <markj@FreeBSD.org> |
ath_hal: Stop printing messages during boot ath_hal is compiled into the kernel by default and so always prints a message to dmesg even when the system has no ath hardware. MFC after: 1 week Sponsored by: The FreeBSD Foundation
|
#
9966c0f9 |
|
01-Sep-2020 |
Mateusz Guzik <mjg@FreeBSD.org> |
ath: clean up empty lines in .c and .h files
|
#
08f5e6bb |
|
21-Feb-2020 |
Pawel Biernacki <kaktus@FreeBSD.org> |
Mark more nodes as CTLFLAG_MPSAFE or CTLFLAG_NEEDGIANT (7 of many) r357614 added CTLFLAG_NEEDGIANT to make it easier to find nodes that are still not MPSAFE (or already are but aren’t properly marked). Use it in preparation for a general review of all nodes. This is non-functional change that adds annotations to SYSCTL_NODE and SYSCTL_PROC nodes using one of the soon-to-be-required flags. Mark all low hanging fruits as MPSAFE. Reviewed by: markj Approved by: kib (mentor, blanket) Differential Revision: https://reviews.freebsd.org/D23626
|
#
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.
|
#
86a656de |
|
28-Jun-2017 |
Adrian Chadd <adrian@FreeBSD.org> |
[ath_hal] if building with ALQ, ensure we actually depend upon ALQ.
|
#
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.
|
#
17f42e0d |
|
03-Jan-2016 |
Adrian Chadd <adrian@FreeBSD.org> |
[ath] remove the inline version of the register access macros. These are going to be much more efficient on low end embedded systems but unfortunately they make it .. less convenient to implement correct bus barriers and debugging. They also didn't implement the register serialisation workaround required for Owl (AR5416.) So, just remove them for now. Later on I'll just inline the routines from ah_osdep.c.
|
#
ef91dbce |
|
02-Jan-2016 |
Adrian Chadd <adrian@FreeBSD.org> |
[ath] add explicit bus barriers. The ath hal and driver code all assume the world is an x86 or the bus layer does an explicit bus flush after each operation (eg netbsd.) However, we don't do that. So, to be "correct" on platforms like sparc64, mips and ppc (and maybe ARM, I am not sure), just do explicit barriers after each operation. Now, this does slow things down a tad on embedded platforms but I'd rather things be "correct" versus "fast." At some later point if someone wishes it to be fast then we should add the barrier calls to the HAL and driver. Tested: * carambola 2 (AR9331.)
|
#
af3b2549 |
|
27-Jun-2014 |
Hans Petter Selasky <hselasky@FreeBSD.org> |
Pull in r267961 and r267973 again. Fix for issues reported will follow.
|
#
37a107a4 |
|
27-Jun-2014 |
Glen Barber <gjb@FreeBSD.org> |
Revert r267961, r267973: These changes prevent sysctl(8) from returning proper output, such as: 1) no output from sysctl(8) 2) erroneously returning ENOMEM with tools like truss(1) or uname(1) truss: can not get etype: Cannot allocate memory
|
#
3da1cf1e |
|
27-Jun-2014 |
Hans Petter Selasky <hselasky@FreeBSD.org> |
Extend the meaning of the CTLFLAG_TUN flag to automatically check if there is an environment variable which shall initialize the SYSCTL during early boot. This works for all SYSCTL types both statically and dynamically created ones, except for the SYSCTL NODE type and SYSCTLs which belong to VNETs. A new flag, CTLFLAG_NOFETCH, has been added to be used in the case a tunable sysctl has a custom initialisation function allowing the sysctl to still be marked as a tunable. The kernel SYSCTL API is mostly the same, with a few exceptions for some special operations like iterating childrens of a static/extern SYSCTL node. This operation should probably be made into a factored out common macro, hence some device drivers use this. The reason for changing the SYSCTL API was the need for a SYSCTL parent OID pointer and not only the SYSCTL parent OID list pointer in order to quickly generate the sysctl path. The motivation behind this patch is to avoid parameter loading cludges inside the OFED driver subsystem. Instead of adding special code to the OFED driver subsystem to post-load tunables into dynamically created sysctls, we generalize this in the kernel. Other changes: - Corrected a possibly incorrect sysctl name from "hw.cbb.intr_mask" to "hw.pcic.intr_mask". - Removed redundant TUNABLE statements throughout the kernel. - Some minor code rewrites in connection to removing not needed TUNABLE statements. - Added a missing SYSCTL_DECL(). - Wrapped two very long lines. - Avoid malloc()/free() inside sysctl string handling, in case it is called to initialize a sysctl from a tunable, hence malloc()/free() is not ready when sysctls from the sysctl dataset are registered. - Bumped FreeBSD version to indicate SYSCTL API change. MFC after: 2 weeks Sponsored by: Mellanox Technologies
|
#
6ed22fae |
|
08-Apr-2014 |
Adrian Chadd <adrian@FreeBSD.org> |
Add a function to check whether the given register can be accessed whilst the chip is asleep. It's AR5416 and later specific; I'll add a HAL method to generalise it later. Tested: * AR5416, STA mode
|
#
517dfcb1 |
|
19-Mar-2014 |
Adrian Chadd <adrian@FreeBSD.org> |
Add some debugging code to print out if registers are touched whilst the device is asleep. This doesn't avoid logging errors for things that are actually OK to access whilst the chip is asleep (eg, the RTC registers (0x7000->0x70ff on the AR5416 and later.) But, this is a pretty good indicator if things are accessed incorrectly. Tested: * AR5416, STA
|
#
020841a2 |
|
30-Jun-2012 |
Adrian Chadd <adrian@FreeBSD.org> |
Fix the HAL debugging to only use one bit to mark a message as unmaskable. Whilst I'm here, remove the duplication of the #define.
|
#
a47f39da |
|
18-Apr-2012 |
Adrian Chadd <adrian@FreeBSD.org> |
Stop using the hardware register value byte order swapping for now, at least until I can root cause what's going on. The only platform I've seen this on is the AR9220 when attached to the AR71xx CPUs. I get immediate PCIe bus errors and all subsequent accesses cause further MIPS bus exceptions. I don't have any other big-endian platforms to test this on. If I get a chance (or two), I'll try to whack this on a bus analyser and see exactly what happens. I'd rather leave this on, especially for slower, embedded platforms. But the #ifdef hell is something I'm trying to avoid.
|
#
2fe1131c |
|
04-Apr-2012 |
Adrian Chadd <adrian@FreeBSD.org> |
Add a threadid to the ah_decode API. This adds the current thread ID to each logged register and mark entry, allowing for easier debugging of concurrent/overlapping NIC operations.
|
#
ddbe3036 |
|
09-Nov-2011 |
Adrian Chadd <adrian@FreeBSD.org> |
Introduce a work-around for issues with the AR5416 based MAC on SMP devices. The AR5416 MAC (which shows up in the AR5008, AR9001, AR9002 devices) has issues with PCI transactions on SMP machines. This work-around enforces that register access is serialised through a (global for now) spinlock. This should stop the hangs people have seen with the AR5416 PCI devices on SMP hosts. Obtained by: Linux, Atheros
|
#
6472ac3d |
|
07-Nov-2011 |
Ed Schouten <ed@FreeBSD.org> |
Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs. The SYSCTL_NODE macro defines a list that stores all child-elements of that node. If there's no SYSCTL_DECL macro anywhere else, there's no reason why it shouldn't be static.
|
#
d745c852 |
|
06-Nov-2011 |
Ed Schouten <ed@FreeBSD.org> |
Mark MALLOC_DEFINEs static that have no corresponding MALLOC_DECLAREs. This means that their use is restricted to a single C file.
|
#
0e56140a |
|
29-Sep-2011 |
Adrian Chadd <adrian@FreeBSD.org> |
Fix a corner case in the HAL debugging changes, where ah was NULL. Although I tried to fix this earlier by introducing HALDEBUG_G(), it turns out there seem to be other cases where the pointer value is still NULL. * Fix DO_HALDEBUG() and the HALDEBUG macro to check whether ah is NULL before deferencing it * Remove HALDEBUG_G() as it's no longer needed This is hopefully a merge candidate for 9.0-RELEASE as enabling debugging at startup could result in a kernel panic.
|
#
1292e2e9 |
|
14-Jul-2011 |
Adrian Chadd <adrian@FreeBSD.org> |
Add a missing check for the global ath_hal_debug. This was removed accidentally when the per HAL instance code was added, and not reverted when I added back the global debug variable (for early chip setup debugging.)
|
#
1a940429 |
|
24-Jun-2011 |
Adrian Chadd <adrian@FreeBSD.org> |
Commit missing piece from a couple days ago - re-add ath_hal_debug.
|
#
37931a35 |
|
22-Jun-2011 |
Adrian Chadd <adrian@FreeBSD.org> |
Break out most of the HAL related tweaks into a per-HAL instance, rather than global variables. This specifically allows for debugging to be enabled per-NIC, rather than globally. Since the ath driver doesn't know about AH_DEBUG, and to keep the ABI consistent regardless of whether AH_DEBUG is enabled or not, enable the debug parameter always but only conditionally compile in the debug methods if needed. The ALQ support is currently still global pending some brainstorming. Submitted by: ssgriffonuser@gmail.com Reviewed by: adrian, bschmidt
|
#
6c63a20b |
|
17-May-2011 |
Adrian Chadd <adrian@FreeBSD.org> |
Fix the debugging code path to correctly support HAL_DEBUG_UNMASKABLE.
|
#
c5d52723 |
|
05-Apr-2011 |
Adrian Chadd <adrian@FreeBSD.org> |
Make the alq log path tunable
|
#
646640c5 |
|
23-Mar-2011 |
Adrian Chadd <adrian@FreeBSD.org> |
Fix a completely wrong variable reference.
|
#
ef58d1e0 |
|
23-Mar-2011 |
Adrian Chadd <adrian@FreeBSD.org> |
Make the ar2133ForceBias() call controllable at runtime. At least one AR5416 user has reported measurable throughput drops with this option. For now, disable it and make it a run-time twiddle. It won't take affect until the next radio programming trip though (eg channel scan, channel change.)
|
#
f247e820 |
|
05-Mar-2011 |
Adrian Chadd <adrian@FreeBSD.org> |
Change HALDEBUG() to be a macro that conditionally calls the debug output routine. The earlier way of doing debugging would evaluate the function parameters before calling the HALDEBUG. In the case of detailed register debugging would mean a -lot- of unneeded register IO and other stuff was going on. This method evaluates the ath_hal_debug variable before the function parameters are evaluated, drastically reducing the amount of overhead enabling HAL debugging during compilation.
|
#
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.
|
#
67784314 |
|
08-Sep-2009 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Revert previous commit and add myself to the list of people who should know better than to commit with a cat in the area.
|
#
b34421bf |
|
08-Sep-2009 |
Poul-Henning Kamp <phk@FreeBSD.org> |
Add necessary include.
|
#
2ef29b4c |
|
07-Sep-2009 |
Sam Leffler <sam@FreeBSD.org> |
remove extranous return Submitted by: phk MFC after: 1 week
|
#
69ad6b34 |
|
06-Jul-2009 |
Sam Leffler <sam@FreeBSD.org> |
Fix AR5416 and later parts when building with AH_DEBUG or similar defined: always define OS_REG_UNSWAPPED and use it in ath_hal_reg_{read,write}. Approved by: re (kib)
|
#
b4307a77 |
|
07-May-2009 |
Sam Leffler <sam@FreeBSD.org> |
kill more portability functions that are no longer useful
|
#
8ab663f3 |
|
07-May-2009 |
Sam Leffler <sam@FreeBSD.org> |
kill unused OS_GETUPTIME
|
#
aa28501a |
|
23-Mar-2009 |
Sam Leffler <sam@FreeBSD.org> |
fix build w/ AH_DEBUG
|
#
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.
|
#
411373eb |
|
27-Oct-2008 |
Sam Leffler <sam@FreeBSD.org> |
prepare for a new hal
|
#
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)
|
#
515d617e |
|
06-Jun-2007 |
Sam Leffler <sam@FreeBSD.org> |
update copyrights to 2007 and convert to be 2-clause bsd-only
|
#
cc807dbd |
|
10-Apr-2007 |
Robert Watson <rwatson@FreeBSD.org> |
Remove unnecessary suser() check in the sysctl to set up ath_hal logging: the sysctl framework will already have checked for privilege if a sysctl value is being set. Discussed a long time ago with: sam
|
#
3fe92528 |
|
18-Sep-2006 |
Sam Leffler <sam@FreeBSD.org> |
o move ath hal os glue code from the hal to the driver: this code was part of the hal distribution early on when the hal was built for each os but it's been portable for a long time so move the os-specific code out (and off the vendor branch) o correct the copyright on ah_osdep.?; it was mistakenly given a restricted license and not a dual-bsd/gpl license o remove the module api definition as it was never used o fixup include paths for move of ah_osdep.h MFC after: 2 weeks
|