d68875eb7e
controller. These controllers are also known as L1C(AR8131) and L2C(AR8132) respectively. These controllers resembles the first generation controller L1 but usage of different descriptor format and new register mappings over L1 register space requires a new driver. There are a couple of registers I still don't understand but the driver seems to have no critical issues for performance and stability. Currently alc(4) supports the following hardware features. o MSI o TCP Segmentation offload o Hardware VLAN tag insertion/stripping o Tx/Rx interrupt moderation o Hardware statistics counters(dev.alc.%d.stats) o Jumbo frame o WOL AR8131/AR8132 also supports Tx checksum offloading but I disabled it due to stability issues. I'm not sure this comes from broken sample boards or hardware bugs. If you know your controller works without problems you can still enable it. The controller has a silicon bug for Rx checksum offloading, so the feature was not implemented. I'd like to say big thanks to Atheros. Atheros kindly sent sample boards to me and answered several questions I had. HW donated by: Atheros Communications, Inc.
620 lines
8.2 KiB
Makefile
620 lines
8.2 KiB
Makefile
# $FreeBSD$
|
|
|
|
.include <bsd.own.mk>
|
|
|
|
SUBDIR= ${_3dfx} \
|
|
${_3dfx_linux} \
|
|
${_aac} \
|
|
accf_data \
|
|
accf_dns \
|
|
accf_http \
|
|
${_acpi} \
|
|
ae \
|
|
age \
|
|
${_agp} \
|
|
aha \
|
|
${_ahb} \
|
|
${_aic} \
|
|
aic7xxx \
|
|
aio \
|
|
${_amd} \
|
|
${_amdtemp} \
|
|
alc \
|
|
ale \
|
|
amr \
|
|
${_an} \
|
|
${_aout} \
|
|
${_apm} \
|
|
${_arcmsr} \
|
|
${_arcnet} \
|
|
${_asmc} \
|
|
${_asr} \
|
|
ata \
|
|
ath \
|
|
${_auxio} \
|
|
bce \
|
|
bfe \
|
|
bge \
|
|
${_bios} \
|
|
${_bktr} \
|
|
${_bm} \
|
|
bridgestp \
|
|
cam \
|
|
${_canbepm} \
|
|
${_canbus} \
|
|
${_cardbus} \
|
|
${_cbb} \
|
|
cd9660 \
|
|
cd9660_iconv \
|
|
${_ce} \
|
|
${_ciss} \
|
|
${_cm} \
|
|
${_cmx} \
|
|
coda \
|
|
coda5 \
|
|
${_coff} \
|
|
${_coretemp} \
|
|
${_cp} \
|
|
${_cpuctl} \
|
|
${_cpufreq} \
|
|
${_crypto} \
|
|
${_cryptodev} \
|
|
${_cs} \
|
|
${_ctau} \
|
|
cxgb \
|
|
${_cyclic} \
|
|
dc \
|
|
dcons \
|
|
dcons_crom \
|
|
de \
|
|
${_dpms} \
|
|
${_dpt} \
|
|
${_drm} \
|
|
${_dtrace} \
|
|
dummynet \
|
|
${_ed} \
|
|
${_elink} \
|
|
${_em} \
|
|
en \
|
|
${_ep} \
|
|
${_et} \
|
|
${_ex} \
|
|
${_exca} \
|
|
${_ext2fs} \
|
|
fatm \
|
|
fdc \
|
|
fdescfs \
|
|
${_fe} \
|
|
firewire \
|
|
firmware \
|
|
fxp \
|
|
gem \
|
|
geom \
|
|
${_glxsb} \
|
|
hatm \
|
|
hifn \
|
|
hme \
|
|
${_hptiop} \
|
|
${_hptmv} \
|
|
${_hptrr} \
|
|
hwpmc \
|
|
${_i2c} \
|
|
${_ibcs2} \
|
|
${_ichwd} \
|
|
${_ida} \
|
|
${_ie} \
|
|
if_bridge \
|
|
if_disc \
|
|
if_edsc \
|
|
if_ef \
|
|
if_faith \
|
|
if_gif \
|
|
if_gre \
|
|
if_lagg \
|
|
${_if_ndis} \
|
|
if_stf \
|
|
if_tap \
|
|
if_tun \
|
|
if_vlan \
|
|
${_igb} \
|
|
${_iir} \
|
|
${_io} \
|
|
ipdivert \
|
|
${_ipfilter} \
|
|
ipfw \
|
|
ipfw_nat \
|
|
${_ipmi} \
|
|
ip_mroute_mod \
|
|
${_ips} \
|
|
${_ipw} \
|
|
${_ipwfw} \
|
|
iscsi \
|
|
isp \
|
|
ispfw \
|
|
${_iwi} \
|
|
${_iwifw} \
|
|
${_iwn} \
|
|
${_iwnfw} \
|
|
${_ixgb} \
|
|
jme \
|
|
joy \
|
|
kbdmux \
|
|
krpc \
|
|
ksyms \
|
|
le \
|
|
lge \
|
|
libalias \
|
|
libiconv \
|
|
libmbpool \
|
|
libmchain \
|
|
${_linprocfs} \
|
|
${_linsysfs} \
|
|
${_linux} \
|
|
lmc \
|
|
lpt \
|
|
mac_biba \
|
|
mac_bsdextended \
|
|
mac_ifoff \
|
|
mac_lomac \
|
|
mac_mls \
|
|
mac_none \
|
|
mac_partition \
|
|
mac_portacl \
|
|
mac_seeotheruids \
|
|
mac_stub \
|
|
mac_test \
|
|
malo \
|
|
mcd \
|
|
md \
|
|
mem \
|
|
mfi \
|
|
mii \
|
|
mlx \
|
|
${_mly} \
|
|
mmc \
|
|
mmcsd \
|
|
mpt \
|
|
mqueue \
|
|
msdosfs \
|
|
msdosfs_iconv \
|
|
${_mse} \
|
|
msk \
|
|
mwl \
|
|
mxge \
|
|
my \
|
|
${_ncp} \
|
|
${_ncv} \
|
|
${_ndis} \
|
|
netgraph \
|
|
${_nfe} \
|
|
nfscl \
|
|
nfsclient \
|
|
nfscommon \
|
|
nfsd \
|
|
nfslockd \
|
|
nfsserver \
|
|
nfssvc \
|
|
nge \
|
|
nmdm \
|
|
${_nsp} \
|
|
ntfs \
|
|
ntfs_iconv \
|
|
nullfs \
|
|
${_nve} \
|
|
${_nvram} \
|
|
${_nwfs} \
|
|
${_nxge} \
|
|
${_opensolaris} \
|
|
${_padlock} \
|
|
patm \
|
|
${_pccard} \
|
|
${_pcfclock} \
|
|
pcn \
|
|
${_pf} \
|
|
${_pflog} \
|
|
plip \
|
|
${_pmc} \
|
|
portalfs \
|
|
ppbus \
|
|
ppc \
|
|
ppi \
|
|
pps \
|
|
procfs \
|
|
pseudofs \
|
|
${_pst} \
|
|
puc \
|
|
ral \
|
|
ralfw \
|
|
${_random} \
|
|
rc4 \
|
|
${_rdma} \
|
|
re \
|
|
reiserfs \
|
|
rl \
|
|
${_s3} \
|
|
${_safe} \
|
|
${_sbni} \
|
|
scc \
|
|
scd \
|
|
${_scsi_low} \
|
|
sdhci \
|
|
sem \
|
|
sf \
|
|
sis \
|
|
sk \
|
|
${_smbfs} \
|
|
sn \
|
|
${_snc} \
|
|
snp \
|
|
${_sound} \
|
|
${_speaker} \
|
|
${_splash} \
|
|
${_sppp} \
|
|
ste \
|
|
${_stg} \
|
|
stge \
|
|
${_streams} \
|
|
${_svr4} \
|
|
sym \
|
|
${_syscons} \
|
|
sysvipc \
|
|
ti \
|
|
tl \
|
|
${_tmpfs} \
|
|
trm \
|
|
${_twa} \
|
|
twe \
|
|
tx \
|
|
txp \
|
|
uart \
|
|
ubsec \
|
|
udf \
|
|
udf_iconv \
|
|
${_ufs} \
|
|
unionfs \
|
|
usb \
|
|
utopia \
|
|
${_vesa} \
|
|
vge \
|
|
vkbd \
|
|
${_vpo} \
|
|
vr \
|
|
vx \
|
|
wb \
|
|
${_wi} \
|
|
wlan \
|
|
wlan_acl \
|
|
wlan_amrr \
|
|
wlan_ccmp \
|
|
wlan_rssadapt \
|
|
wlan_tkip \
|
|
wlan_wep \
|
|
wlan_xauth \
|
|
${_wpi} \
|
|
${_wpifw} \
|
|
${_xe} \
|
|
xfs \
|
|
xl \
|
|
${_zfs} \
|
|
zlib \
|
|
|
|
.if ${MACHINE_ARCH} != "powerpc"
|
|
_syscons= syscons
|
|
_vpo= vpo
|
|
.endif
|
|
|
|
.if defined(ALL_MODULES)
|
|
_ufs= ufs
|
|
.endif
|
|
|
|
.if ${MK_CRYPT} != "no" || defined(ALL_MODULES)
|
|
.if exists(${.CURDIR}/../opencrypto)
|
|
_crypto= crypto
|
|
_cryptodev= cryptodev
|
|
.endif
|
|
.if exists(${.CURDIR}/../crypto)
|
|
_random= random
|
|
.endif
|
|
.endif
|
|
|
|
.if ${MK_IPFILTER} != "no" || defined(ALL_MODULES)
|
|
_ipfilter= ipfilter
|
|
.endif
|
|
|
|
.if ${MK_PF} != "no" || defined(ALL_MODULES)
|
|
_pf= pf
|
|
_pflog= pflog
|
|
.endif
|
|
|
|
.if ${MACHINE_ARCH} == "i386"
|
|
# XXX some of these can move to the general case when de-i386'ed
|
|
# XXX some of these can move now, but are untested on other architectures.
|
|
_3dfx= 3dfx
|
|
_3dfx_linux= 3dfx_linux
|
|
_agp= agp
|
|
_aic= aic
|
|
_amd= amd
|
|
_an= an
|
|
_aout= aout
|
|
_apm= apm
|
|
_arcnet= arcnet
|
|
_bktr= bktr
|
|
_cardbus= cardbus
|
|
_cbb= cbb
|
|
_ce= ce
|
|
_coff= coff
|
|
_cp= cp
|
|
_cpuctl= cpuctl
|
|
_cpufreq= cpufreq
|
|
_cs= cs
|
|
.if ${MK_CDDL} != "no" || defined(ALL_MODULES)
|
|
_cyclic= cyclic
|
|
.endif
|
|
_dpms= dpms
|
|
_drm= drm
|
|
.if ${MK_CDDL} != "no" || defined(ALL_MODULES)
|
|
_dtrace= dtrace
|
|
.endif
|
|
_ed= ed
|
|
_elink= elink
|
|
_em= em
|
|
_ep= ep
|
|
_et= et
|
|
_exca= exca
|
|
_ext2fs= ext2fs
|
|
_fe= fe
|
|
_glxsb= glxsb
|
|
_i2c= i2c
|
|
_ibcs2= ibcs2
|
|
_ie= ie
|
|
_if_ndis= if_ndis
|
|
_igb= igb
|
|
_io= io
|
|
_linprocfs= linprocfs
|
|
_linsysfs= linsysfs
|
|
_linux= linux
|
|
_mse= mse
|
|
.if ${MK_NCP} != "no"
|
|
_ncp= ncp
|
|
.endif
|
|
_ncv= ncv
|
|
_ndis= ndis
|
|
_nsp= nsp
|
|
.if ${MK_NCP} != "no"
|
|
_nwfs= nwfs
|
|
.endif
|
|
.if ${MK_CDDL} != "no" || defined(ALL_MODULES)
|
|
_opensolaris= opensolaris
|
|
.endif
|
|
_pccard= pccard
|
|
_pcfclock= pcfclock
|
|
_pst= pst
|
|
_rdma= rdma
|
|
_safe= safe
|
|
_sbni= sbni
|
|
_scsi_low= scsi_low
|
|
_smbfs= smbfs
|
|
_sound= sound
|
|
_speaker= speaker
|
|
_splash= splash
|
|
_sppp= sppp
|
|
_stg= stg
|
|
_streams= streams
|
|
_svr4= svr4
|
|
_tmpfs= tmpfs
|
|
_wi= wi
|
|
_xe= xe
|
|
.if ${MK_ZFS} != "no" || defined(ALL_MODULES)
|
|
_zfs= zfs
|
|
.endif
|
|
.if ${MACHINE} == "i386"
|
|
_aac= aac
|
|
_acpi= acpi
|
|
_ahb= ahb
|
|
_amdtemp= amdtemp
|
|
_arcmsr= arcmsr
|
|
_asmc= asmc
|
|
_asr= asr
|
|
_bios= bios
|
|
_ciss= ciss
|
|
_cm= cm
|
|
_cmx= cmx
|
|
_coretemp= coretemp
|
|
_ctau= ctau
|
|
_dpt= dpt
|
|
_ex= ex
|
|
_hptiop= hptiop
|
|
_hptmv= hptmv
|
|
_hptrr= hptrr
|
|
_ichwd= ichwd
|
|
_ida= ida
|
|
_iir= iir
|
|
_ipmi= ipmi
|
|
_ips= ips
|
|
_ipw= ipw
|
|
_ipwfw= ipwfw
|
|
_iwi= iwi
|
|
_iwifw= iwifw
|
|
_iwn= iwn
|
|
_iwnfw= iwnfw
|
|
_ixgb= ixgb
|
|
_mly= mly
|
|
_nfe= nfe
|
|
_nve= nve
|
|
_nvram= nvram
|
|
_nxge= nxge
|
|
_wpi= wpi
|
|
_wpifw= wpifw
|
|
.if ${MK_CRYPT} != "no" || defined(ALL_MODULES)
|
|
.if exists(${.CURDIR}/../crypto/via)
|
|
_padlock= padlock
|
|
.endif
|
|
.endif
|
|
_s3= s3
|
|
_twa= twa
|
|
_vesa= vesa
|
|
.elif ${MACHINE} == "pc98"
|
|
_canbepm= canbepm
|
|
_canbus= canbus
|
|
_pmc= pmc
|
|
_snc= snc
|
|
.endif
|
|
.endif
|
|
|
|
.if ${MACHINE_ARCH} == "amd64"
|
|
_aac= aac
|
|
_acpi= acpi
|
|
_agp= agp
|
|
_an= an
|
|
_amdtemp= amdtemp
|
|
_arcmsr= arcmsr
|
|
_asmc= asmc
|
|
_cardbus= cardbus
|
|
_cbb= cbb
|
|
_cmx= cmx
|
|
_ciss= ciss
|
|
_coretemp= coretemp
|
|
_cpuctl= cpuctl
|
|
_cpufreq= cpufreq
|
|
.if ${MK_CDDL} != "no" || defined(ALL_MODULES)
|
|
_cyclic= cyclic
|
|
.endif
|
|
_drm= drm
|
|
.if ${MK_CDDL} != "no" || defined(ALL_MODULES)
|
|
_dtrace= dtrace
|
|
.endif
|
|
_ed= ed
|
|
_et= et
|
|
_em= em
|
|
_exca= exca
|
|
_ext2fs= ext2fs
|
|
_hptiop= hptiop
|
|
_hptmv= hptmv
|
|
_hptrr= hptrr
|
|
_i2c= i2c
|
|
_ichwd= ichwd
|
|
_ida= ida
|
|
_if_ndis= if_ndis
|
|
_igb= igb
|
|
_iir= iir
|
|
_io= io
|
|
_ipmi= ipmi
|
|
_ips= ips
|
|
_ipw= ipw
|
|
_ipwfw= ipwfw
|
|
_iwn= iwn
|
|
_iwnfw= iwnfw
|
|
_ixgb= ixgb
|
|
_linprocfs= linprocfs
|
|
_linsysfs= linsysfs
|
|
_linux= linux
|
|
_mly= mly
|
|
_ndis= ndis
|
|
_nfe= nfe
|
|
_nve= nve
|
|
_nvram= nvram
|
|
_nxge= nxge
|
|
.if ${MK_CDDL} != "no" || defined(ALL_MODULES)
|
|
_opensolaris= opensolaris
|
|
.endif
|
|
.if ${MK_CRYPT} != "no" || defined(ALL_MODULES)
|
|
.if exists(${.CURDIR}/../crypto/via)
|
|
_padlock= padlock
|
|
.endif
|
|
.endif
|
|
_pccard= pccard
|
|
_rdma= rdma
|
|
_safe= safe
|
|
_scsi_low= scsi_low
|
|
_smbfs= smbfs
|
|
_sound= sound
|
|
_speaker= speaker
|
|
_sppp= sppp
|
|
_tmpfs= tmpfs
|
|
_twa= twa
|
|
_wi= wi
|
|
_wpi= wpi
|
|
_wpifw= wpifw
|
|
.if ${MK_ZFS} != "no" || defined(ALL_MODULES)
|
|
_zfs= zfs
|
|
.endif
|
|
.endif
|
|
|
|
.if ${MACHINE_ARCH} == "ia64"
|
|
# Modules not enabled on ia64 (as compared to i386) include:
|
|
# aac acpi aout apm atspeaker drm ibcs2 linprocfs linux ncv
|
|
# nsp s3 sbni stg vesa
|
|
# acpi is not enabled because it is broken as a module on ia64
|
|
_aic= aic
|
|
_an= an
|
|
_arcnet= arcnet
|
|
_asr= asr
|
|
_bktr= bktr
|
|
_cardbus= cardbus
|
|
_cbb= cbb
|
|
_ciss= ciss
|
|
_cm= cm
|
|
_cmx= cmx
|
|
_coff= coff
|
|
_cpufreq= cpufreq
|
|
_em= em
|
|
_ep= ep
|
|
_exca= exca
|
|
_fe= fe
|
|
_igb= igb
|
|
_iir= iir
|
|
_mly= mly
|
|
_pccard= pccard
|
|
_scsi_low= scsi_low
|
|
_smbfs= smbfs
|
|
_sound= sound
|
|
_splash= splash
|
|
_sppp= sppp
|
|
_streams= streams
|
|
_wi= wi
|
|
_xe= xe
|
|
.endif
|
|
|
|
.if ${MACHINE_ARCH} == "powerpc"
|
|
_an= an
|
|
_bm= bm
|
|
_cpufreq= cpufreq
|
|
_nvram= powermac_nvram
|
|
_smbfs= smbfs
|
|
_sound= sound
|
|
.endif
|
|
|
|
.if ${MACHINE_ARCH} == "sparc64"
|
|
_auxio= auxio
|
|
_em= em
|
|
_i2c= i2c
|
|
_igb= igb
|
|
.if ${MK_CDDL} != "no" || defined(ALL_MODULES)
|
|
_opensolaris= opensolaris
|
|
.endif
|
|
_sound= sound
|
|
.if ${MK_ZFS} != "no" || defined(ALL_MODULES)
|
|
_zfs= zfs
|
|
.endif
|
|
.endif
|
|
|
|
.if defined(MODULES_OVERRIDE) && !defined(ALL_MODULES)
|
|
SUBDIR=${MODULES_OVERRIDE}
|
|
.endif
|
|
|
|
.for reject in ${WITHOUT_MODULES}
|
|
SUBDIR:= ${SUBDIR:N${reject}}
|
|
.endfor
|
|
|
|
# Calling kldxref(8) for each module is expensive.
|
|
.if !defined(NO_XREF)
|
|
.MAKEFLAGS+= -DNO_XREF
|
|
afterinstall:
|
|
@if type kldxref >/dev/null 2>&1; then \
|
|
${ECHO} kldxref ${DESTDIR}${KMODDIR}; \
|
|
kldxref ${DESTDIR}${KMODDIR}; \
|
|
fi
|
|
.endif
|
|
|
|
.include <bsd.subdir.mk>
|