d193ed0bed
This driver was written by Alexander Pohoyda and greatly enhanced by Nikolay Denev. I don't have these hardwares but this driver was tested by Nikolay Denev and xclin. Because SiS didn't release data sheet for this controller, programming information came from Linux driver and OpenSolaris. Unlike other open source driver for SiS190/191, sge(4) takes full advantage of TX/RX checksum offloading and does not require additional copy operation in RX handler. The controller seems to have advanced offloading features like VLAN hardware tag insertion/stripping, TCP segmentation offload(TSO) as well as jumbo frame support but these features are not available yet. Special thanks to xclin <xclin<> cs dot nctu dot edu dot tw> who sent fix for receiving VLAN oversized frames.
660 lines
8.7 KiB
Makefile
660 lines
8.7 KiB
Makefile
# $FreeBSD$
|
|
|
|
.include <bsd.own.mk>
|
|
|
|
SUBDIR= ${_3dfx} \
|
|
${_3dfx_linux} \
|
|
${_aac} \
|
|
accf_data \
|
|
accf_dns \
|
|
accf_http \
|
|
${_acpi} \
|
|
ae \
|
|
age \
|
|
${_agp} \
|
|
aha \
|
|
${_ahb} \
|
|
ahci \
|
|
${_aic} \
|
|
aic7xxx \
|
|
aio \
|
|
alc \
|
|
ale \
|
|
alq \
|
|
${_amd} \
|
|
${_amdsbwd} \
|
|
${_amdtemp} \
|
|
amr \
|
|
${_an} \
|
|
${_aout} \
|
|
${_apm} \
|
|
${_arcmsr} \
|
|
${_arcnet} \
|
|
${_asmc} \
|
|
${_asr} \
|
|
ata \
|
|
ath \
|
|
${_auxio} \
|
|
bce \
|
|
bfe \
|
|
bge \
|
|
${_bios} \
|
|
${_bktr} \
|
|
${_bm} \
|
|
bridgestp \
|
|
bwi \
|
|
bwn \
|
|
cam \
|
|
${_canbepm} \
|
|
${_canbus} \
|
|
${_cardbus} \
|
|
cas \
|
|
${_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} \
|
|
${_epic} \
|
|
${_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_epair \
|
|
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 \
|
|
${_lindev} \
|
|
${_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} \
|
|
nfs_common \
|
|
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} \
|
|
pty \
|
|
puc \
|
|
ral \
|
|
ralfw \
|
|
${_random} \
|
|
rc4 \
|
|
${_rdma} \
|
|
re \
|
|
reiserfs \
|
|
rl \
|
|
runfw \
|
|
${_s3} \
|
|
${_safe} \
|
|
${_sbni} \
|
|
scc \
|
|
scd \
|
|
${_scsi_low} \
|
|
sdhci \
|
|
sem \
|
|
sf \
|
|
sge \
|
|
siba_bwn \
|
|
siis \
|
|
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} \
|
|
${_x86bios} \
|
|
${_xe} \
|
|
xfs \
|
|
xl \
|
|
${_zfs} \
|
|
zlib \
|
|
|
|
.if ${MACHINE_ARCH} != "powerpc" && ${MACHINE_ARCH} != "arm" && \
|
|
${MACHINE_ARCH} != "mips"
|
|
_syscons= syscons
|
|
_vpo= vpo
|
|
.endif
|
|
|
|
.if ${MACHINE_ARCH} != "arm" && ${MACHINE_ARCH} != "mips"
|
|
# no BUS_SPACE_UNSPECIFIED
|
|
# No barrier instruction support (specific to this driver)
|
|
_sym= sym
|
|
# intr_disable() is a macro, causes problems
|
|
_cxgb= cxgb
|
|
.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_NETGRAPH} != "no" || defined(ALL_MODULES)
|
|
_netgraph= netgraph
|
|
.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
|
|
_lindev= lindev
|
|
_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
|
|
_wi= wi
|
|
_xe= xe
|
|
.if ${MK_ZFS} != "no" || defined(ALL_MODULES)
|
|
_zfs= zfs
|
|
.endif
|
|
.if ${MACHINE} == "i386"
|
|
_aac= aac
|
|
_acpi= acpi
|
|
_ahb= ahb
|
|
_amdsbwd= amdsbwd
|
|
_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
|
|
_x86bios= x86bios
|
|
.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
|
|
_amdsbwd= amdsbwd
|
|
_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
|
|
_dpms= dpms
|
|
_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
|
|
_iwi= iwi
|
|
_iwifw= iwifw
|
|
_iwn= iwn
|
|
_iwnfw= iwnfw
|
|
_ixgb= ixgb
|
|
_lindev= lindev
|
|
_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
|
|
_s3= s3
|
|
_safe= safe
|
|
_scsi_low= scsi_low
|
|
_smbfs= smbfs
|
|
_sound= sound
|
|
_speaker= speaker
|
|
_splash= splash
|
|
_sppp= sppp
|
|
_twa= twa
|
|
_vesa= vesa
|
|
_x86bios= x86bios
|
|
_wi= wi
|
|
_wpi= wpi
|
|
_wpifw= wpifw
|
|
.if ${MK_ZFS} != "no" || defined(ALL_MODULES)
|
|
_zfs= zfs
|
|
.endif
|
|
.endif
|
|
|
|
.if ${MACHINE_ARCH} == "ia64"
|
|
_aac= aac
|
|
_aic= aic
|
|
_an= an
|
|
_arcnet= arcnet
|
|
_asr= asr
|
|
_bktr= bktr
|
|
_cardbus= cardbus
|
|
_cbb= cbb
|
|
_ciss= ciss
|
|
_cm= cm
|
|
_cmx= cmx
|
|
_coff= coff
|
|
_cpufreq= cpufreq
|
|
_dpt= dpt
|
|
_em= em
|
|
_ep= ep
|
|
_et= et
|
|
_exca= exca
|
|
_fe= fe
|
|
_hptiop= hptiop
|
|
_ida= ida
|
|
_igb= igb
|
|
_iir= iir
|
|
_ips= ips
|
|
_mly= mly
|
|
_pccard= pccard
|
|
_scsi_low= scsi_low
|
|
_smbfs= smbfs
|
|
_sound= sound
|
|
_splash= splash
|
|
_sppp= sppp
|
|
_streams= streams
|
|
_twa= twa
|
|
_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
|
|
_epic= epic
|
|
_i2c= i2c
|
|
_igb= igb
|
|
.if ${MK_CDDL} != "no" || defined(ALL_MODULES)
|
|
_opensolaris= opensolaris
|
|
.endif
|
|
_smbfs= smbfs
|
|
_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>
|