mt76: add module build framework and man pages
Add framework to build if_mt7915 and if_mt7921 with LinuxKPI as well as initial man pages for the two mt76 chipset drivers. MFC after: 2 months
This commit is contained in:
parent
6c92544d7c
commit
3c4ba5f554
100
share/man/man4/mt7915.4
Normal file
100
share/man/man4/mt7915.4
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
.\"-
|
||||||
|
.\" Copyright (c) 2023 Bjoern A. Zeeb
|
||||||
|
.\"
|
||||||
|
.\" Redistribution and use in source and binary forms, with or without
|
||||||
|
.\" modification, are permitted provided that the following conditions
|
||||||
|
.\" are met:
|
||||||
|
.\" 1. Redistributions of source code must retain the above copyright
|
||||||
|
.\" notice, this list of conditions and the following disclaimer.
|
||||||
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
.\" notice, this list of conditions and the following disclaimer in the
|
||||||
|
.\" documentation and/or other materials provided with the distribution.
|
||||||
|
.\"
|
||||||
|
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||||
|
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||||
|
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||||
|
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||||
|
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||||
|
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
|
.\" SUCH DAMAGE.
|
||||||
|
.\"
|
||||||
|
.\" $FreeBSD$
|
||||||
|
.\"
|
||||||
|
.Dd April 18, 2023
|
||||||
|
.Dt MT7915 4
|
||||||
|
.Os
|
||||||
|
.Sh NAME
|
||||||
|
.Nm mt7915
|
||||||
|
.Nd MediaTek IEEE 802.11ax wireless network driver
|
||||||
|
.Sh SYNOPSIS
|
||||||
|
The driver will auto-load without any user interaction using
|
||||||
|
.Xr devmatch 8
|
||||||
|
if enabled in
|
||||||
|
.Xr rc.conf 5 .
|
||||||
|
.Pp
|
||||||
|
Only if auto-loading is explicitly disabled, place the following
|
||||||
|
lines in
|
||||||
|
.Xr rc.conf 5
|
||||||
|
to manually load the driver as a module at boot time:
|
||||||
|
.Bd -literal -offset indent
|
||||||
|
kld_list="${kld_list} if_mt7915"
|
||||||
|
.Ed
|
||||||
|
.Pp
|
||||||
|
The driver should automatically load any
|
||||||
|
firmware needed for the particular chipset.
|
||||||
|
.Pp
|
||||||
|
It is discouraged to load the driver from
|
||||||
|
.Xr loader 8 .
|
||||||
|
.Sh DESCRIPTION
|
||||||
|
The
|
||||||
|
.Nm
|
||||||
|
driver is derived from MediaTek's Linux mt76 driver and provides support for
|
||||||
|
the following chipsets:
|
||||||
|
.Pp
|
||||||
|
.Bl -tag -width Ds -offset indent -compact
|
||||||
|
.It MediaTek MT7915E (PCIe)
|
||||||
|
.El
|
||||||
|
.Pp
|
||||||
|
This driver requires firmware to be loaded before it will work.
|
||||||
|
The package
|
||||||
|
.Pa wifi-firmware-mt76-kmod
|
||||||
|
from the
|
||||||
|
.Pa ports/net/wifi-firmware-mt76-kmod
|
||||||
|
port needs to be installed before the driver is loaded.
|
||||||
|
Otherwise no
|
||||||
|
.Xr wlan 4
|
||||||
|
interface can be created using
|
||||||
|
.Xr ifconfig 8 .
|
||||||
|
.Pp
|
||||||
|
The driver uses the
|
||||||
|
.\" No LinuxKPI man pages so no .Xr here.
|
||||||
|
.Em linuxkpi_wlan
|
||||||
|
and
|
||||||
|
.Em linuxkpi
|
||||||
|
compat framework to bridge between the Linux and
|
||||||
|
native
|
||||||
|
.Fx
|
||||||
|
driver code as well as to the native
|
||||||
|
.Xr net80211 4
|
||||||
|
wireless stack.
|
||||||
|
.Pp
|
||||||
|
While
|
||||||
|
.Nm
|
||||||
|
supports all 802.11 a/b/g/n/ac and ax
|
||||||
|
the compatibility code currently only supports 802.11 a/b/g modes.
|
||||||
|
Support for 802.11 n/ac is to come.
|
||||||
|
.Sh BUGS
|
||||||
|
Certainly.
|
||||||
|
.Sh SEE ALSO
|
||||||
|
.Xr wlan 4 ,
|
||||||
|
.Xr ifconfig 8 ,
|
||||||
|
.Xr wpa_supplicant 8
|
||||||
|
.Sh HISTORY
|
||||||
|
The
|
||||||
|
.Nm
|
||||||
|
driver first appeared in
|
||||||
|
.Fx 14.0 .
|
100
share/man/man4/mt7921.4
Normal file
100
share/man/man4/mt7921.4
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
.\"-
|
||||||
|
.\" Copyright (c) 2023 Bjoern A. Zeeb
|
||||||
|
.\"
|
||||||
|
.\" Redistribution and use in source and binary forms, with or without
|
||||||
|
.\" modification, are permitted provided that the following conditions
|
||||||
|
.\" are met:
|
||||||
|
.\" 1. Redistributions of source code must retain the above copyright
|
||||||
|
.\" notice, this list of conditions and the following disclaimer.
|
||||||
|
.\" 2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
.\" notice, this list of conditions and the following disclaimer in the
|
||||||
|
.\" documentation and/or other materials provided with the distribution.
|
||||||
|
.\"
|
||||||
|
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
|
||||||
|
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||||
|
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||||
|
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
|
||||||
|
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||||
|
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||||
|
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||||
|
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||||
|
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||||
|
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||||
|
.\" SUCH DAMAGE.
|
||||||
|
.\"
|
||||||
|
.\" $FreeBSD$
|
||||||
|
.\"
|
||||||
|
.Dd April 18, 2023
|
||||||
|
.Dt MT7921 4
|
||||||
|
.Os
|
||||||
|
.Sh NAME
|
||||||
|
.Nm mt7921
|
||||||
|
.Nd MediaTek IEEE 802.11ax wireless network driver
|
||||||
|
.Sh SYNOPSIS
|
||||||
|
The driver will auto-load without any user interaction using
|
||||||
|
.Xr devmatch 8
|
||||||
|
if enabled in
|
||||||
|
.Xr rc.conf 5 .
|
||||||
|
.Pp
|
||||||
|
Only if auto-loading is explicitly disabled, place the following
|
||||||
|
lines in
|
||||||
|
.Xr rc.conf 5
|
||||||
|
to manually load the driver as a module at boot time:
|
||||||
|
.Bd -literal -offset indent
|
||||||
|
kld_list="${kld_list} if_mt7921"
|
||||||
|
.Ed
|
||||||
|
.Pp
|
||||||
|
The driver should automatically load any
|
||||||
|
firmware needed for the particular chipset.
|
||||||
|
.Pp
|
||||||
|
It is discouraged to load the driver from
|
||||||
|
.Xr loader 8 .
|
||||||
|
.Sh DESCRIPTION
|
||||||
|
The
|
||||||
|
.Nm
|
||||||
|
driver is derived from MediaTek's Linux mt76 driver and provides support for
|
||||||
|
the following chipsets:
|
||||||
|
.Pp
|
||||||
|
.Bl -tag -width Ds -offset indent -compact
|
||||||
|
.It MediaTek MT7921E (PCIe)
|
||||||
|
.El
|
||||||
|
.Pp
|
||||||
|
This driver requires firmware to be loaded before it will work.
|
||||||
|
The package
|
||||||
|
.Pa wifi-firmware-mt76-kmod
|
||||||
|
from the
|
||||||
|
.Pa ports/net/wifi-firmware-mt76-kmod
|
||||||
|
port needs to be installed before the driver is loaded.
|
||||||
|
Otherwise no
|
||||||
|
.Xr wlan 4
|
||||||
|
interface can be created using
|
||||||
|
.Xr ifconfig 8 .
|
||||||
|
.Pp
|
||||||
|
The driver uses the
|
||||||
|
.\" No LinuxKPI man pages so no .Xr here.
|
||||||
|
.Em linuxkpi_wlan
|
||||||
|
and
|
||||||
|
.Em linuxkpi
|
||||||
|
compat framework to bridge between the Linux and
|
||||||
|
native
|
||||||
|
.Fx
|
||||||
|
driver code as well as to the native
|
||||||
|
.Xr net80211 4
|
||||||
|
wireless stack.
|
||||||
|
.Pp
|
||||||
|
While
|
||||||
|
.Nm
|
||||||
|
supports all 802.11 a/b/g/n/ac and ax
|
||||||
|
the compatibility code currently only supports 802.11 a/b/g modes.
|
||||||
|
Support for 802.11 n/ac is to come.
|
||||||
|
.Sh BUGS
|
||||||
|
Certainly.
|
||||||
|
.Sh SEE ALSO
|
||||||
|
.Xr wlan 4 ,
|
||||||
|
.Xr ifconfig 8 ,
|
||||||
|
.Xr wpa_supplicant 8
|
||||||
|
.Sh HISTORY
|
||||||
|
The
|
||||||
|
.Nm
|
||||||
|
driver first appeared in
|
||||||
|
.Fx 14.0 .
|
7
sys/modules/mt76/Makefile
Normal file
7
sys/modules/mt76/Makefile
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
# $FreeBSD$
|
||||||
|
|
||||||
|
SUBDIR= core
|
||||||
|
SUBDIR+= mt7915
|
||||||
|
SUBDIR+= mt7921
|
||||||
|
|
||||||
|
.include <bsd.subdir.mk>
|
30
sys/modules/mt76/Makefile.inc
Normal file
30
sys/modules/mt76/Makefile.inc
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
# $FreeBSD$
|
||||||
|
|
||||||
|
# Common information shared by all submodule builds.
|
||||||
|
|
||||||
|
COMMONDIR= ${SRCTOP}/sys/contrib/dev/mediatek/mt76
|
||||||
|
|
||||||
|
.PATH: ${COMMONDIR}
|
||||||
|
|
||||||
|
WITH_CONFIG_PM= 0
|
||||||
|
WITH_DEBUGFS= 0
|
||||||
|
|
||||||
|
# Other
|
||||||
|
SRCS+= ${LINUXKPI_GENSRCS}
|
||||||
|
SRCS+= opt_wlan.h opt_inet6.h opt_inet.h
|
||||||
|
|
||||||
|
# Helpful after fresh imports.
|
||||||
|
#CFLAGS+= -ferror-limit=0
|
||||||
|
|
||||||
|
.if defined(WITH_CONFIG_PM) && ${WITH_CONFIG_PM} > 0
|
||||||
|
CFLAGS+= -DCONFIG_PM=${WITH_CONFIG_PM}
|
||||||
|
.endif
|
||||||
|
|
||||||
|
.if defined(WITH_DEBUGFS) && ${WITH_DEBUGFS} > 0
|
||||||
|
CFLAGS+= -DCONFIG_MAC80211_DEBUGFS=${WITH_DEBUGFS}
|
||||||
|
.endif
|
||||||
|
|
||||||
|
CFLAGS+= -I${COMMONDIR}
|
||||||
|
CFLAGS+= ${LINUXKPI_INCLUDES}
|
||||||
|
|
||||||
|
# end
|
26
sys/modules/mt76/core/Makefile
Normal file
26
sys/modules/mt76/core/Makefile
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
# $FreeBSD$
|
||||||
|
|
||||||
|
KMOD= mt76_core
|
||||||
|
|
||||||
|
# Basic stuff.
|
||||||
|
SRCS= mac80211.c mmio.c util.c dma.c eeprom.c tx.c agg-rx.c mcu.c
|
||||||
|
#SRCS+= trace.c
|
||||||
|
|
||||||
|
# Bus stuff.
|
||||||
|
SRCS+= pci.c
|
||||||
|
#SRCS+= usb.c # usb_trace.c
|
||||||
|
#SRCS+= sdio.c sdio_txrx.c
|
||||||
|
|
||||||
|
# Connac-Lib stuff.
|
||||||
|
SRCS+= mt76_connac_mac.c mt76_connac_mcu.c
|
||||||
|
|
||||||
|
# MT76x02-Lib stuff (we don't need; that's for older chipsets not yet supported)
|
||||||
|
|
||||||
|
.if defined(WITH_DEBUGFS) && ${WITH_DEBUGFS} > 0
|
||||||
|
SRCS+= debugfs.c
|
||||||
|
.endif
|
||||||
|
|
||||||
|
CFLAGS+= -DKBUILD_MODNAME='"mt76_core"'
|
||||||
|
CFLAGS+= -DCONFIG_MAC80211_DEBUGFS=${WITH_DEBUGFS}
|
||||||
|
|
||||||
|
.include <bsd.kmod.mk>
|
24
sys/modules/mt76/mt7915/Makefile
Normal file
24
sys/modules/mt76/mt7915/Makefile
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
# $FreeBSD$
|
||||||
|
|
||||||
|
DEVDIR= ${SRCTOP}/sys/contrib/dev/mediatek/mt76/mt7915
|
||||||
|
|
||||||
|
.PATH: ${DEVDIR}
|
||||||
|
|
||||||
|
KMOD= if_mt7915
|
||||||
|
|
||||||
|
# Common stuff.
|
||||||
|
SRCS= init.c main.c mac.c mcu.c mmio.c eeprom.c
|
||||||
|
SRCS+= pci.c dma.c
|
||||||
|
|
||||||
|
# SOC+6E stuff.
|
||||||
|
#SRCS+= soc.c
|
||||||
|
|
||||||
|
.if defined(WITH_DEBUGFS) && ${WITH_DEBUGFS} > 0
|
||||||
|
SRCS+= debugfs.c
|
||||||
|
CFLAGS+= -DCONFIG_MT7915_DEBUGFS=${WITH_DEBUGFS}
|
||||||
|
.endif
|
||||||
|
|
||||||
|
CFLAGS+= -DKBUILD_MODNAME='"mt7915"'
|
||||||
|
CFLAGS+= -I${DEVDIR}
|
||||||
|
|
||||||
|
.include <bsd.kmod.mk>
|
30
sys/modules/mt76/mt7921/Makefile
Normal file
30
sys/modules/mt76/mt7921/Makefile
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
# $FreeBSD$
|
||||||
|
|
||||||
|
DEVDIR= ${SRCTOP}/sys/contrib/dev/mediatek/mt76/mt7921
|
||||||
|
|
||||||
|
.PATH: ${DEVDIR}
|
||||||
|
|
||||||
|
KMOD= if_mt7921
|
||||||
|
|
||||||
|
# Common stuff.
|
||||||
|
SRCS= init.c main.c mac.c mcu.c
|
||||||
|
#SRCS+= trace.c
|
||||||
|
|
||||||
|
# PCI stuff.
|
||||||
|
SRCS+= pci.c pci_mac.c pci_mcu.c dma.c
|
||||||
|
|
||||||
|
# USB stuff.
|
||||||
|
#SRCS+= usb.c usb_mac.c
|
||||||
|
|
||||||
|
# SDIO stuff.
|
||||||
|
#SRCS+= sdio.c sdio_mac.c sdio_mcu.c
|
||||||
|
|
||||||
|
.if defined(WITH_DEBUGFS) && ${WITH_DEBUGFS} > 0
|
||||||
|
SRCS+= debugfs.c
|
||||||
|
CFLAGS+= -DCONFIG_MT7921_DEBUGFS=${WITH_DEBUGFS}
|
||||||
|
.endif
|
||||||
|
|
||||||
|
CFLAGS+= -DKBUILD_MODNAME='"mt7921"'
|
||||||
|
CFLAGS+= -I${DEVDIR}
|
||||||
|
|
||||||
|
.include <bsd.kmod.mk>
|
Loading…
Reference in New Issue
Block a user