aboutsummaryrefslogtreecommitdiff
path: root/sys/mips
diff options
context:
space:
mode:
Diffstat (limited to 'sys/mips')
-rw-r--r--sys/mips/conf/AP1356
-rw-r--r--sys/mips/conf/AR71XX_BASE69
-rw-r--r--sys/mips/conf/QCA953X_BASE73
-rw-r--r--sys/mips/conf/std.AR724X91
-rw-r--r--sys/mips/conf/std.AR91XX62
-rw-r--r--sys/mips/conf/std.AR933X74
-rw-r--r--sys/mips/conf/std.AR934X82
-rw-r--r--sys/mips/conf/std.AR_MIPS_BASE96
-rw-r--r--sys/mips/conf/std.QCA955X92
-rw-r--r--sys/mips/include/proc.h2
-rw-r--r--sys/mips/mips/trap.c21
11 files changed, 148 insertions, 520 deletions
diff --git a/sys/mips/conf/AP135 b/sys/mips/conf/AP135
index 7cc24cc0c8c2..419534d8d9f4 100644
--- a/sys/mips/conf/AP135
+++ b/sys/mips/conf/AP135
@@ -58,13 +58,9 @@ device geom_map
device pci
device qca955x_pci
-device ath_pci
-options AR71XX_ATH_EEPROM
device firmware # Used by the above
+options AR71XX_ATH_EEPROM
options ATH_EEPROM_FIRMWARE
# Boot off of the rootfs, as defined in the geom_map setup.
options ROOTDEVNAME=\"ufs:map/rootfs.uzip\"
-
-# Default to accept
-options IPFIREWALL_DEFAULT_TO_ACCEPT
diff --git a/sys/mips/conf/AR71XX_BASE b/sys/mips/conf/AR71XX_BASE
index 99e59a2c2b6f..fefef6982e59 100644
--- a/sys/mips/conf/AR71XX_BASE
+++ b/sys/mips/conf/AR71XX_BASE
@@ -22,13 +22,6 @@ hints "AR71XX_BASE.hints"
makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols
-# Build these as modules so small platform builds will have the
-# modules already built.
-makeoptions MODULES_OVERRIDE="gpio ar71xx if_gif if_gre if_bridge bridgestp usb wlan wlan_xauth wlan_acl wlan_wep wlan_tkip wlan_ccmp wlan_rssadapt wlan_amrr ath ath_pci"
-
-# For small memory footprints
-options VM_KMEM_SIZE_SCALE=1
-
options DDB
options KDB
@@ -57,75 +50,19 @@ options FFS #Berkeley Fast Filesystem
# options UFS_DIRHASH #Improve performance on big directories
# options MSDOSFS # Read MSDOS filesystems; useful for USB/CF
+include "std.AR_MIPS_BASE"
+makeoptions MODULES_OVERRIDE+="hwpmc_mips24k"
+
device pci
device ar71xx_pci
-# 802.11 framework
-options IEEE80211_DEBUG
-options IEEE80211_ALQ
-options IEEE80211_SUPPORT_MESH
-options IEEE80211_SUPPORT_TDMA
-options IEEE80211_AMPDU_AGE
-device wlan # 802.11 support
-device wlan_wep # 802.11 WEP support
-device wlan_ccmp # 802.11 CCMP support
-device wlan_tkip # 802.11 TKIP support
-device wlan_xauth # 802.11 hostap support
-
-# Atheros wireless NICs
-device ath # Atheros interface support
-device ath_pci # Atheros PCI/Cardbus bus
-options ATH_DEBUG
-options ATH_DIAGAPI
-options ATH_ENABLE_11N
-options AH_DEBUG
-options AH_DEBUG_ALQ
-options ALQ
-device ath_hal
-option AH_SUPPORT_AR5416
-device ath_rate_sample
-option AH_RXCFG_SDMAMW_4BYTES
-option AH_AR5416_INTERRUPT_MITIGATION
-# There's no DFS radar detection support yet so this won't actually
-# detect radars. It however does enable the rest of the channel change
-# machinery so DFS can be debugged.
-option ATH_ENABLE_DFS
-
-device mii
-device arge
-
device usb
-options USB_EHCI_BIG_ENDIAN_DESC # handle big-endian byte order
-options USB_DEBUG
-options USB_HOST_ALIGN=32 # AR71XX (MIPS in general?) requires this
device ehci
device scbus
device umass
device da
-# On-board SPI flash
-device spibus
-device ar71xx_spi
-device mx25l
device ar71xx_wdog
-
-device uart
device uart_ar71xx
-
device ar71xx_apb
-
-device loop
-device ether
-device md
-device bpf
-device random
-device if_bridge
-device gif # ip[46] in ip[46] tunneling protocol
-device gre # generic encapsulation - only for IPv4 in IPv4 though atm
-
-options ARGE_DEBUG # Enable if_arge debugging for now
-
-# Enable GPIO
-device gpio
-device gpioled
diff --git a/sys/mips/conf/QCA953X_BASE b/sys/mips/conf/QCA953X_BASE
index 1a7da3b0a628..213519b27a30 100644
--- a/sys/mips/conf/QCA953X_BASE
+++ b/sys/mips/conf/QCA953X_BASE
@@ -26,7 +26,6 @@ options DDB
options KDB
options ALQ
options BREAK_TO_DEBUGGER
-options ALT_BREAK_TO_DEBUGGER
options SCHED_4BSD #4BSD scheduler
options INET #InterNETworking
@@ -36,31 +35,8 @@ options TCP_HHOOK # hhook(9) framework for TCP
options PSEUDOFS #Pseudo-filesystem framework
options _KPOSIX_PRIORITY_SCHEDULING #Posix P1003_1B real-time extensions
-# Don't include the SCSI/CAM strings in the default build
-options SCSI_NO_SENSE_STRINGS
-options SCSI_NO_OP_STRINGS
-
-# .. And no sysctl strings
-options NO_SYSCTL_DESCR
-
-# For small memory footprints
-options VM_KMEM_SIZE_SCALE=1
-
-# Limit IO size
-options NBUF=128
-
-# Limit UMTX hash size
-# options UMTX_NUM_CHAINS=64
-
-#options UMA_DEBUG_ALLOC
-
# PMC
options HWPMC_HOOKS
-#options HWPMC_MIPS_BACKTRACE
-device hwpmc
-device hwpmc_mips24k
-
-options ARGE_DEBUG
# options NFS_LEGACYRPC
# Debugging for use in -current
@@ -74,66 +50,21 @@ options FFS #Berkeley Fast Filesystem
#options UFS_DIRHASH #Improve performance on big directories
options NO_FFS_SNAPSHOT # We don't require snapshot support
-options IPFIREWALL_DEFAULT_TO_ACCEPT
-
-# Wireless NIC cards
-options IEEE80211_DEBUG
-options IEEE80211_SUPPORT_MESH
-options IEEE80211_SUPPORT_TDMA
-options IEEE80211_SUPPORT_SUPERG
-options IEEE80211_ALQ # 802.11 ALQ logging support
-device wlan # 802.11 support
-device wlan_wep # 802.11 WEP support
-device wlan_ccmp # 802.11 CCMP support
-device wlan_tkip # 802.11 TKIP support
-device wlan_xauth # 802.11 hostap support
-
-# ath(4)
-device ath # Atheros network device
-device ath_rate_sample
-device ath_ahb # Atheros host bus glue
-options ATH_DEBUG
-options ATH_DIAGAPI
-option ATH_ENABLE_11N
-option AH_DEBUG_ALQ
+include "std.AR_MIPS_BASE"
+makeoptions MODULES_OVERRIDE+="hwpmc_mips24k"
-#device ath_hal
-device ath_ar9300 # AR9330 HAL; no need for the others
-option AH_DEBUG
-option AH_SUPPORT_AR5416 # 11n HAL support
option AH_SUPPORT_QCA9530 # Chipset support
-option AH_AR5416_INTERRUPT_MITIGATION
-
-device mii
-device arge
device usb
-options USB_EHCI_BIG_ENDIAN_DESC # handle big-endian byte order
-options USB_DEBUG
-options USB_HOST_ALIGN=32 # AR71XX (MIPS in general?) requires this
device ehci
device scbus
device umass
device da
-device spibus
-device ar71xx_spi
-device mx25l
-device ar71xx_wdog
-
# Handle 25MHz refclock by allowing a higher baudrate error tolerance.
-device uart
device uart_ar71xx
options UART_DEV_TOLERANCE_PCT=50
device ar71xx_apb
-device loop
-device ether
-device md
-device bpf
-device random
-device if_bridge
-device gpio
-device gpioled
diff --git a/sys/mips/conf/std.AR724X b/sys/mips/conf/std.AR724X
index 44c170c993a1..3201d2f2e4bc 100644
--- a/sys/mips/conf/std.AR724X
+++ b/sys/mips/conf/std.AR724X
@@ -23,13 +23,6 @@ hints "AR724X_BASE.hints"
makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols
-# Build these as modules so small platform builds will have the
-# modules already built.
-makeoptions MODULES_OVERRIDE="gpio ar71xx if_gif if_gre if_tap if_tun libalias ipfw ipfw_nat ipfw_nptv6 if_vlan if_bridge bridgestp usb wlan wlan_xauth wlan_acl wlan_wep wlan_tkip wlan_ccmp wlan_rssadapt wlan_amrr ath_main ath_pci ath_hal ath_hal_ar5212 ath_hal_ar5416 ath_hal_ar9300 ath_rate ath_dfs hwpmc hwpmc_mips24k cam"
-
-# For small memory footprints
-options VM_KMEM_SIZE_SCALE=1
-
options DDB
options KDB
options EARLY_PRINTF
@@ -42,6 +35,10 @@ options TCP_HHOOK # hhook(9) framework for TCP
options PSEUDOFS #Pseudo-filesystem framework
options _KPOSIX_PRIORITY_SCHEDULING #Posix P1003_1B real-time extensions
+# PMC
+options HWPMC_HOOKS
+
+
#options NFS_LEGACYRPC
# Debugging for use in -current
options INVARIANTS
@@ -51,95 +48,27 @@ options WITNESS_SKIPSPIN
options DEBUG_REDZONE
options DEBUG_MEMGUARD
-# Don't include the SCSI/CAM strings in the default build
-options SCSI_NO_SENSE_STRINGS
-options SCSI_NO_OP_STRINGS
-
-# .. And no sysctl strings
-options NO_SYSCTL_DESCR
-
options FFS #Berkeley Fast Filesystem
options NO_FFS_SNAPSHOT
-options IPFIREWALL_DEFAULT_TO_ACCEPT
-
# options SOFTUPDATES #Enable FFS soft updates support
# options UFS_ACL #Support for access control lists
# options UFS_DIRHASH #Improve performance on big directories
# options MSDOSFS # Read MSDOS filesystems; useful for USB/CF
-options UMTX_CHAINS=16
+include "std.AR_MIPS_BASE"
+
+makeoptions MODULES_OVERRIDE+="hwpmc_mips24k"
device pci
device ar724x_pci
-# 802.11 framework
-options IEEE80211_DEBUG
-options IEEE80211_ALQ
-options IEEE80211_SUPPORT_MESH
-options IEEE80211_SUPPORT_SUPERG
-options IEEE80211_SUPPORT_TDMA
-options IEEE80211_AMPDU_AGE
-#device wlan # 802.11 support
-#device wlan_wep # 802.11 WEP support
-#device wlan_ccmp # 802.11 CCMP support
-#device wlan_tkip # 802.11 TKIP support
-#device wlan_xauth # 802.11 hostap support
-
-# Atheros wireless NICs
-#device ath # Atheros interface support
-#device ath_pci # Atheros PCI/Cardbus bus
-options ATH_DEBUG
-options ATH_DIAGAPI
-options ATH_ENABLE_11N
-options AH_DEBUG
-options AH_DEBUG_ALQ
-options ALQ
-#device ath_hal
-option AH_SUPPORT_AR5416
-#device ath_rate_sample
-option AH_RXCFG_SDMAMW_4BYTES
-option AH_AR5416_INTERRUPT_MITIGATION
-# There's no DFS radar detection support yet so this won't actually
-# detect radars. It however does enable the rest of the channel change
-# machinery so DFS can be debugged.
-option ATH_ENABLE_DFS
-
-device mii
-device arge
-options ARGE_DEBUG # Enable if_arge debugging for now
-
-#device usb
-options USB_EHCI_BIG_ENDIAN_DESC # handle big-endian byte order
-options USB_DEBUG
-options USB_HOST_ALIGN=32 # AR724X (MIPS in general?) requires this
-#device ehci
-
-#device umass
+device usb
+device ehci
+device umass
device scbus
device da
-# On-board SPI flash
-device spibus
-device ar71xx_spi
-device mx25l
-device ar71xx_wdog
-
-device uart
device uart_ar71xx
-
device ar71xx_apb
-
-device loop
-device ether
-device md
-device bpf
-device random
-#device if_bridge
-#device gif # ip[46] in ip[46] tunneling protocol
-#device gre # generic encapsulation - only for IPv4 in IPv4 though atm
-
-# Enable GPIO
-#device gpio
-#device gpioled
diff --git a/sys/mips/conf/std.AR91XX b/sys/mips/conf/std.AR91XX
index cfff918120d6..c1dee4e7a5d0 100644
--- a/sys/mips/conf/std.AR91XX
+++ b/sys/mips/conf/std.AR91XX
@@ -20,15 +20,11 @@ files "../atheros/files.ar71xx"
hints "AR91XX_BASE.hints"
makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols
-makeoptions MODULES_OVERRIDE="gpio ar71xx if_gif if_gre if_bridge bridgestp usb wlan wlan_xauth wlan_acl wlan_wep wlan_tkip wlan_ccmp wlan_rssadapt wlan_amrr ath ath_ahb hwpmc"
options DDB
options KDB
options ALQ
-# For small memory footprints
-options VM_KMEM_SIZE_SCALE=1
-
options SCHED_4BSD #4BSD scheduler
options INET #InterNETworking
options INET6 #InterNETworking
@@ -39,8 +35,6 @@ options _KPOSIX_PRIORITY_SCHEDULING #Posix P1003_1B real-time extensions
# PMC
options HWPMC_HOOKS
-device hwpmc
-device hwpmc_mips24k
# options NFS_LEGACYRPC
# Debugging for use in -current
@@ -54,70 +48,18 @@ options FFS #Berkeley Fast Filesystem
#options UFS_DIRHASH #Improve performance on big directories
options NO_FFS_SNAPSHOT # We don't require snapshot support
-# Wireless NIC cards
-options IEEE80211_DEBUG
-options IEEE80211_SUPPORT_MESH
-options IEEE80211_SUPPORT_TDMA
-options IEEE80211_ALQ # 802.11 ALQ logging support
-device wlan # 802.11 support
-device wlan_wep # 802.11 WEP support
-device wlan_ccmp # 802.11 CCMP support
-device wlan_tkip # 802.11 TKIP support
-device wlan_xauth # 802.11 hostap support
-
-# ath(4)
-device ath # Atheros network device
-device ath_rate_sample
-device ath_ahb # Atheros host bus glue
-options ATH_DEBUG
-options ATH_DIAGAPI
-option ATH_ENABLE_11N
-
-# Don't bother compiling the whole HAL - AH_SUPPORT_AR9130 breaks the
-# rest of the 11n chipset support at the moment and the pre-AR5212
-# HALs aren't required.
-# device ath_hal
-
-# The AR9130 code requires AR5416; and AR5416 requires the AR5212 code.
-device ath_ar5212
-device ath_ar5416
-device ath_ar9130
+include "std.AR_MIPS_BASE"
-options AH_DEBUG
-option AH_SUPPORT_AR5416
option AH_SUPPORT_AR9130 # Makes other chipsets not function!
-option AH_DEBUG_ALQ
# interrupt mitigation not possible on AR9130
-# option AH_AR5416_INTERRUPT_MITIGATION
-
-device mii
-device arge
+nooption AH_AR5416_INTERRUPT_MITIGATION
device usb
-options USB_EHCI_BIG_ENDIAN_DESC # handle big-endian byte order
-options USB_DEBUG
-options USB_HOST_ALIGN=32 # AR71XX (MIPS in general?) requires this
device ehci
device scbus
device umass
device da
-device spibus
-device ar71xx_spi
-device mx25l
-device ar71xx_wdog
-
-device uart
device uart_ar71xx
-
device ar71xx_apb
-
-device loop
-device ether
-device md
-device bpf
-device random
-device if_bridge
-device gpio
-device gpioled
diff --git a/sys/mips/conf/std.AR933X b/sys/mips/conf/std.AR933X
index 18a7e14a763c..b94e5765c196 100644
--- a/sys/mips/conf/std.AR933X
+++ b/sys/mips/conf/std.AR933X
@@ -20,14 +20,10 @@ files "../atheros/files.ar71xx"
hints "AR933X_BASE.hints"
makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols
-makeoptions MODULES_OVERRIDE="gpio ar71xx if_gif if_vlan if_gre if_tap if_tun if_bridge bridgestp usb wlan wlan_xauth wlan_acl wlan_wep wlan_tkip wlan_ccmp wlan_rssadapt wlan_amrr hwpmc ipfw ipfw_nat libalias ipfw_nptv6 rtwn rtwn_usb rtwnfw otus otusfw hwpmc_mips24k"
options DDB
options KDB
options ALQ
-options ALT_BREAK_TO_DEBUGGER
-
-options UMTX_CHAINS=16
options SCHED_4BSD #4BSD scheduler
options INET #InterNETworking
@@ -37,26 +33,8 @@ options TCP_HHOOK # hhook(9) framework for TCP
options PSEUDOFS #Pseudo-filesystem framework
options _KPOSIX_PRIORITY_SCHEDULING #Posix P1003_1B real-time extensions
-# Don't include the SCSI/CAM strings in the default build
-options SCSI_NO_SENSE_STRINGS
-options SCSI_NO_OP_STRINGS
-
-# .. And no sysctl strings
-options NO_SYSCTL_DESCR
-
-# For small memory footprints
-options VM_KMEM_SIZE_SCALE=1
-
-# Limit IO size
-options NBUF=128
-
-# Limit UMTX hash size
-options UMTX_CHAINS=64
-
# PMC
options HWPMC_HOOKS
-#device hwpmc
-#device hwpmc_mips24k
# options NFS_LEGACYRPC
# Debugging for use in -current
@@ -70,64 +48,18 @@ options FFS #Berkeley Fast Filesystem
#options UFS_DIRHASH #Improve performance on big directories
options NO_FFS_SNAPSHOT # We don't require snapshot support
-options IPFIREWALL_DEFAULT_TO_ACCEPT
-
-# Wireless NIC cards
-options IEEE80211_DEBUG
-options IEEE80211_SUPPORT_MESH
-options IEEE80211_SUPPORT_TDMA
-options IEEE80211_SUPPORT_SUPERG
-options IEEE80211_ALQ # 802.11 ALQ logging support
-device wlan # 802.11 support
-device wlan_wep # 802.11 WEP support
-device wlan_ccmp # 802.11 CCMP support
-device wlan_tkip # 802.11 TKIP support
-device wlan_xauth # 802.11 hostap support
+include "std.AR_MIPS_BASE"
-# ath(4)
-device ath # Atheros network device
-device ath_rate_sample
-device ath_ahb # Atheros host bus glue
-options ATH_DEBUG
-options ATH_DIAGAPI
-option ATH_ENABLE_11N
-option AH_DEBUG_ALQ
+makeoptions MODULES_OVERRIDE+="hwpmc_mips24k"
-#device ath_hal
-device ath_ar9300 # AR9330 HAL; no need for the others
-option AH_DEBUG
-option AH_SUPPORT_AR5416 # 11n HAL support
option AH_SUPPORT_AR9330 # Chipset support
-option AH_AR5416_INTERRUPT_MITIGATION
-
-device mii
-device arge
device usb
-options USB_EHCI_BIG_ENDIAN_DESC # handle big-endian byte order
-options USB_DEBUG
-options USB_HOST_ALIGN=32 # AR71XX (MIPS in general?) requires this
device ehci
device scbus
device umass
device da
-device spibus
-device ar71xx_spi
-device mx25l
-device ar71xx_wdog
-
-device uart
-device uart_ar933x
-
-device ar71xx_apb
+device uart_ar933x
-device loop
-device ether
-device md
-device bpf
-device random
-device if_bridge
-device gpio
-device gpioled
diff --git a/sys/mips/conf/std.AR934X b/sys/mips/conf/std.AR934X
index 815c7d364c74..eab4b84c7c54 100644
--- a/sys/mips/conf/std.AR934X
+++ b/sys/mips/conf/std.AR934X
@@ -20,12 +20,9 @@ files "../atheros/files.ar71xx"
hints "AR934X_BASE.hints"
makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols
-makeoptions MODULES_OVERRIDE="gpio ar71xx if_gif if_vlan if_gre if_tap if_tun if_bridge bridgestp usb wlan wlan_xauth wlan_acl wlan_wep wlan_tkip wlan_ccmp wlan_rssadapt wlan_amrr hwpmc ipfw ipfw_nat libalias ipfw_nptv6 rtwn rtwn_usb rtwnfw otus otusfw hwpmc_mips24k"
-# makeoptions MODULES_OVERRIDE=""
options DDB
options KDB
-options ALT_BREAK_TO_DEBUGGER
options ALQ
options SCHED_4BSD #4BSD scheduler
@@ -36,23 +33,8 @@ options TCP_HHOOK # hhook(9) framework for TCP
options PSEUDOFS #Pseudo-filesystem framework
options _KPOSIX_PRIORITY_SCHEDULING #Posix P1003_1B real-time extensions
-# Don't include the SCSI/CAM strings in the default build
-options SCSI_NO_SENSE_STRINGS
-options SCSI_NO_OP_STRINGS
-
-# .. And no sysctl strings
-options NO_SYSCTL_DESCR
-
-# Limit IO size
-options NBUF=128
-
-# Limit UMTX hash size
-options UMTX_CHAINS=64
-
# PMC
options HWPMC_HOOKS
-#device hwpmc
-#device hwpmc_mips24k
# options NFS_LEGACYRPC
# Debugging for use in -current
@@ -66,66 +48,22 @@ options FFS #Berkeley Fast Filesystem
#options UFS_DIRHASH #Improve performance on big directories
options NO_FFS_SNAPSHOT # We don't require snapshot support
-# Wireless NIC cards
-options IEEE80211_DEBUG
-options IEEE80211_SUPPORT_MESH
-options IEEE80211_SUPPORT_TDMA
-options IEEE80211_SUPPORT_SUPERG
-options IEEE80211_ALQ # 802.11 ALQ logging support
-device wlan # 802.11 support
-device wlan_wep # 802.11 WEP support
-device wlan_ccmp # 802.11 CCMP support
-device wlan_tkip # 802.11 TKIP support
-device wlan_xauth # 802.11 hostap support
-
-# ath(4)
-device ath # Atheros network device
-device ath_rate_sample
-device ath_ahb # Atheros host bus glue
-options ATH_DEBUG
-options ATH_DIAGAPI
-option ATH_ENABLE_11N
-
-#device ath_hal
-device ath_ar9300 # AR9330 HAL; no need for the others
-option AH_DEBUG
-option AH_SUPPORT_AR5416 # 11n HAL support
-option AH_SUPPORT_AR9340 # Chipset support
-option AH_DEBUG_ALQ
-option AH_AR5416_INTERRUPT_MITIGATION
+include "std.AR_MIPS_BASE"
+makeoptions MODULES_OVERRIDE+="hwpmc_mips24k"
-device mii
-device arge
-
-device usb
-options USB_EHCI_BIG_ENDIAN_DESC # handle big-endian byte order
-options USB_DEBUG
-options USB_HOST_ALIGN=32 # AR71XX (MIPS in general?) requires this
-device ehci
+options AH_SUPPORT_AR9340
device pci
device ar724x_pci
-
-device scbus
-device umass
-device da
-
-device spibus
-device ar71xx_spi
-device mx25l
-device ar71xx_wdog
-
-device uart
device uart_ar71xx
# XXX for now; later a separate APB mux is needed to demux PCI/WLAN interrupts.
device ar71xx_apb
-device loop
-device ether
-device md
-device bpf
-device random
-device if_bridge
-device gpio
-device gpioled
+device usb
+device ehci
+
+device scbus
+device umass
+device da
+
diff --git a/sys/mips/conf/std.AR_MIPS_BASE b/sys/mips/conf/std.AR_MIPS_BASE
new file mode 100644
index 000000000000..13e2e0669003
--- /dev/null
+++ b/sys/mips/conf/std.AR_MIPS_BASE
@@ -0,0 +1,96 @@
+# These are the base base bits shared between all of the various Atheros
+# MIPS bases.
+#
+# This allows a shared set of configuration and drivers to be built for
+# all of the Atheros MIPS platforms without a lot of configuration file
+# duplication.
+#
+# $FreeBSD$
+
+# debugging
+options EARLY_PRINTF
+options ALT_BREAK_TO_DEBUGGER
+
+# For small memory footprints
+options VM_KMEM_SIZE_SCALE=1
+options UMTX_CHAINS=16
+options NBUF=128
+# Don't include the SCSI/CAM strings in the default build
+options SCSI_NO_SENSE_STRINGS
+options SCSI_NO_OP_STRINGS
+# .. And no sysctl strings
+options NO_SYSCTL_DESCR
+
+makeoptions MODULES_OVERRIDE+="gpio ar71xx if_gif if_vlan if_gre if_tap"
+makeoptions MODULES_OVERRIDE+="if_tun if_bridge bridgestp usb"
+
+# Random - required during early boot!
+device random
+
+# net80211
+options IEEE80211_DEBUG
+options IEEE80211_SUPPORT_MESH
+options IEEE80211_SUPPORT_TDMA
+options IEEE80211_SUPPORT_SUPERG
+options IEEE80211_ALQ # 802.11 ALQ logging support
+
+makeoptions MODULES_OVERRIDE+="wlan wlan_xauth wlan_acl wlan_wep"
+makeoptions MODULES_OVERRIDE+="wlan_tkip wlan_ccmp wlan_rssadapt wlan_amrr"
+
+# firewalling
+options IPFIREWALL_DEFAULT_TO_ACCEPT
+
+makeoptions MODULES_OVERRIDE+="ipfw ipfw_nat libalias ipfw_nptv6"
+
+# USB wifi device drivers
+makeoptions MODULES_OVERRIDE+="rtwn rtwn_usb rtwnfw"
+makeoptions MODULES_OVERRIDE+="otus otusfw"
+
+# Atheros wifi device drivers
+options ATH_DEBUG
+options ATH_DIAGAPI
+options ATH_ENABLE_11N
+options ATH_ENABLE_DFS
+
+options AH_DEBUG_ALQ
+options AH_DEBUG
+options AH_DEBUG_ALQ
+options AH_SUPPORT_AR5416
+options AH_AR5416_INTERRUPT_MITIGATION
+options AH_RXCFG_SDMAMW_4BYTES
+
+makeoptions MODULES_OVERRIDE+="ath_main ath_pci ath_ahb ath_rate ath_dfs"
+makeoptions MODULES_OVERRIDE+="ath_hal_ar5210 ath_hal_ar5211"
+makeoptions MODULES_OVERRIDE+="ath_hal_ar5212 ath_hal_ar5416"
+makeoptions MODULES_OVERRIDE+="ath_hal_ar9300 ath_hal"
+
+# USB configuration
+options USB_EHCI_BIG_ENDIAN_DESC # handle big-endian byte order
+options USB_DEBUG
+options USB_HOST_ALIGN=32 # AR71XX (MIPS in general?) requires this
+
+# Ethernet configuration
+device mii
+device arge
+options ARGE_DEBUG
+
+# SPI, flash
+device spibus
+device ar71xx_spi
+device mx25l
+device ar71xx_wdog
+
+# Serial driver
+device uart
+
+# Networking
+device loop
+device ether
+device md
+device bpf
+#device if_bridge
+
+# GPIO - normally it's okay as a module
+#device gpio
+#device gpioled
+
diff --git a/sys/mips/conf/std.QCA955X b/sys/mips/conf/std.QCA955X
index 7144d4b386e6..36b0ab019367 100644
--- a/sys/mips/conf/std.QCA955X
+++ b/sys/mips/conf/std.QCA955X
@@ -17,17 +17,9 @@ cpu CPU_MIPS74K
makeoptions KERNLOADADDR=0x80050000
options HZ=1000
-#options BREAK_TO_DEBUGGER
-options ALT_BREAK_TO_DEBUGGER
-
-# options BOOTVERBOSE=10
-
files "../atheros/files.ar71xx"
hints "QCA955X_BASE.hints"
-makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols
-makeoptions MODULES_OVERRIDE="gpio ar71xx if_gif if_vlan if_gre if_tap if_tun if_bridge bridgestp usb wlan wlan_xauth wlan_acl wlan_wep wlan_tkip wlan_ccmp wlan_rssadapt wlan_amrr hwpmc ipfw ipfw_nat libalias ipfw_nptv6 rtwn rtwn_usb rtwnfw otus otusfw"
-
options DDB
options KDB
options ALQ
@@ -40,23 +32,8 @@ options TCP_HHOOK # hhook(9) framework for TCP
options PSEUDOFS #Pseudo-filesystem framework
options _KPOSIX_PRIORITY_SCHEDULING #Posix P1003_1B real-time extensions
-# Don't include the SCSI/CAM strings in the default build
-options SCSI_NO_SENSE_STRINGS
-options SCSI_NO_OP_STRINGS
-
-# .. And no sysctl strings
-options NO_SYSCTL_DESCR
-
-# Limit IO size
-options NBUF=128
-
-# Limit UMTX hash size
-# options UMTX_NUM_CHAINS=64
-
# PMC - fow now there's no hwpmc module for mips74k
-#options HWPMC_HOOKS
-#device hwpmc
-#device hwpmc_mips74k
+options HWPMC_HOOKS
# options NFS_LEGACYRPC
# Debugging for use in -current
@@ -70,55 +47,10 @@ options FFS #Berkeley Fast Filesystem
#options UFS_DIRHASH #Improve performance on big directories
options NO_FFS_SNAPSHOT # We don't require snapshot support
-# Wireless NIC cards
-options IEEE80211_DEBUG
-options IEEE80211_SUPPORT_MESH
-options IEEE80211_SUPPORT_TDMA
-options IEEE80211_SUPPORT_SUPERG
-options IEEE80211_ALQ # 802.11 ALQ logging support
-device wlan # 802.11 support
-device wlan_wep # 802.11 WEP support
-device wlan_ccmp # 802.11 CCMP support
-device wlan_tkip # 802.11 TKIP support
-device wlan_xauth # 802.11 hostap support
+include "std.AR_MIPS_BASE"
+makeoptions MODULES_OVERRIDE+="hwpmc_mips74k"
-# ath(4)
-device ath # Atheros network device
-device ath_rate_sample
-device ath_ahb # Atheros host bus glue
-options ATH_DEBUG
-options ATH_DIAGAPI
-option ATH_ENABLE_11N
-option AH_DEBUG_ALQ
-
-#device ath_hal
-device ath_ar9300 # AR9330 HAL; no need for the others
-option AH_DEBUG
-option AH_SUPPORT_AR5416 # 11n HAL support
option AH_SUPPORT_QCA9550 # Chipset support
-option AH_DEBUG_ALQ
-option AH_AR5416_INTERRUPT_MITIGATION
-
-device mii
-device arge
-options ARGE_DEBUG
-
-device usb
-options USB_EHCI_BIG_ENDIAN_DESC # handle big-endian byte order
-options USB_DEBUG
-options USB_HOST_ALIGN=32 # AR71XX (MIPS in general?) requires this
-device ehci
-
-device scbus
-device umass
-device da
-
-device spibus
-device ar71xx_spi
-device mx25l
-device ar71xx_wdog
-
-device uart
device uart_ar71xx
device ar71xx_apb
@@ -126,16 +58,10 @@ device ar71xx_apb
# we'll have to stick to shared interrupts for IP2/IP3 demux.
# device qca955x_apb
-device loop
-device ether
-device md
-device bpf
-device random
-device if_bridge
-device gpio
-device gpioled
+device usb
+device ehci
+
+device scbus
+device umass
+device da
-#options KTR
-#options KTR_MASK=(KTR_INTR)
-#options KTR_COMPILE=(KTR_INTR)
-#options KTR_VERBOSE
diff --git a/sys/mips/include/proc.h b/sys/mips/include/proc.h
index 35d21699bbfe..46a81802ac49 100644
--- a/sys/mips/include/proc.h
+++ b/sys/mips/include/proc.h
@@ -80,7 +80,6 @@ struct mdproc {
/* empty */
};
-#ifdef _KERNEL
struct syscall_args {
u_int code;
struct sysent *callp;
@@ -88,7 +87,6 @@ struct syscall_args {
int narg;
struct trapframe *trapframe;
};
-#endif
#ifdef __mips_n64
#define KINFO_PROC_SIZE 1088
diff --git a/sys/mips/mips/trap.c b/sys/mips/mips/trap.c
index 77b05801364b..0f1508c7f2d3 100644
--- a/sys/mips/mips/trap.c
+++ b/sys/mips/mips/trap.c
@@ -334,12 +334,16 @@ static int emulate_unaligned_access(struct trapframe *frame, int mode);
extern void fswintrberr(void); /* XXX */
int
-cpu_fetch_syscall_args(struct thread *td, struct syscall_args *sa)
+cpu_fetch_syscall_args(struct thread *td)
{
- struct trapframe *locr0 = td->td_frame;
+ struct trapframe *locr0;
struct sysentvec *se;
+ struct syscall_args *sa;
int error, nsaved;
+ locr0 = td->td_frame;
+ sa = &td->td_sa;
+
bzero(sa->args, sizeof(sa->args));
/* compute next PC after syscall instruction */
@@ -785,19 +789,18 @@ dofault:
case T_SYSCALL + T_USER:
{
- struct syscall_args sa;
int error;
- sa.trapframe = trapframe;
- error = syscallenter(td, &sa);
+ td->td_sa.trapframe = trapframe;
+ error = syscallenter(td);
#if !defined(SMP) && (defined(DDB) || defined(DEBUG))
if (trp == trapdebug)
- trapdebug[TRAPSIZE - 1].code = sa.code;
+ trapdebug[TRAPSIZE - 1].code = td->td_sa.code;
else
- trp[-1].code = sa.code;
+ trp[-1].code = td->td_sa.code;
#endif
- trapdebug_enter(td->td_frame, -sa.code);
+ trapdebug_enter(td->td_frame, -td->td_sa.code);
/*
* The sync'ing of I & D caches for SYS_ptrace() is
@@ -805,7 +808,7 @@ dofault:
* instead of being done here under a special check
* for SYS_ptrace().
*/
- syscallret(td, error, &sa);
+ syscallret(td, error);
return (trapframe->pc);
}