for config_time.h and athhal_options.h.
Note: we still copy param.c because I'm told that we should still support
people editing that on a per-compile basis.
rest of the kernel uses it to store the value of curlwp. Sam won't
recompile the HAL for us (fair enough), and we can't modify the HAL
to use another register because doing so could put us in breach of
the license (v. crappy). So, do a save/set/restore on %s7 in KernIntr()
and in the stubs that the HAL uses to call back into the kernel.
- struct timeval time is gone
time.tv_sec -> time_second
- struct timeval mono_time is gone
mono_time.tv_sec -> time_uptime
- access to time via
{get,}{micro,nano,bin}time()
get* versions are fast but less precise
- support NTP nanokernel implementation (NTP API 4)
- further reading:
Timecounter Paper: http://phk.freebsd.dk/pubs/timecounter.pdf
NTP Nanokernel: http://www.eecis.udel.edu/~mills/ntp/html/kern.html
In these cases, passing NULL for it solves a problem on AMD64 where the bus
tag is an integer rather than uintptr_t. (I.e. fix the cast warning on
amd64.)
New HAL includes some driver changes to register accesses.
Adds support for WLAN devices on AR5312 family devices.
Adds support 32-bit SPARC ath devices (untested).
ath enabled in SPARC64 GENERIC builds.
This HAL is tested and known to work for i386 PCI devices, SPARC64 PCI devices,
and AR5312 WiSoC devices. MIPS PCI devices appear to be busted (possibly only
on Alchemy hardware, unconfirmed), and cardbus support is untested due to
lack of test hardware.
Please report any new problems with this import to garrett@.
Use the opt_ah.h for the provided HAL to get options like AH_REGOPS_FUNC.
Add AH_REGOPS_FUNC to a few opt_ah.h that don't have it in this version
of the HAL but need it. (The next version from Sam should have this fixed
in it. If it doesn't, then we'll have to take care at import time.)
Ultimately, this should make future imports even easier, and individual ports
should not have to worry about whether AH_REGOPS_FUNC is properly defined or
not, since the opt_ah.h will just take care of it automatically.
Ok'd by dyoung@.
can automatically use the AH_XXX options that the HAL was built, without
requiring additional machine-specific configuration.
A follow up commit will activate this change.
the rules due to needing to conditionally postprocess the HAL object file.
Macppc needs a a non-ELF HAL (EABI) object, so take care of that by default
in the atheros include file.
including easy override mechanism for ports that need it.
To use this, just .include this file instead of listing explicit rules
for building the target. A change to std/conf/files will be made shortly
that lists /athhal.o as an object if "ath" is defined.
If you need to override the default HAL selected for some reason (for example
to use an xscale version of the HAL on evbarm kernels that support it), add
a "makeoptions ATH_MACHINE_HAL=<hal>", for example to select the XScale
LE configuration you could use "makeoptions ATH_MACHINE_HAL=xscale-le-elf".
http://mail-index.netbsd.org/tech-net/2006/03/15/0000.html.
The new layout almost precisely matches FreeBSD, and should make
future imports much easier.
At the same time, import the current 0.9.16.16 HAL from FreeBSD. According
to sam@, this is the proper version we should be using.