HardenedBSD/sys/modules/Makefile
Pyun YongHyeon d68875eb7e Add alc(4), a driver for Atheros AR8131/AR8132 PCIe ethernet
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.
2009-06-10 02:07:58 +00:00

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>