summaryrefslogtreecommitdiffstats
path: root/sys/mips
diff options
context:
space:
mode:
authoradrian <adrian@FreeBSD.org>2011-12-29 05:51:48 +0000
committeradrian <adrian@FreeBSD.org>2011-12-29 05:51:48 +0000
commit577d3885b98451372f19cd5e7c6d815e5d26744a (patch)
tree91a19d14fd16d68af5093d531498ecf6c3850604 /sys/mips
parentc935aad28df0ff0a5f10a74af96cb89480b3e426 (diff)
downloadFreeBSD-src-577d3885b98451372f19cd5e7c6d815e5d26744a.zip
FreeBSD-src-577d3885b98451372f19cd5e7c6d815e5d26744a.tar.gz
Break out the AR71XX config file into _BASE and board specific
bits. The ROUERSTATION and RSPRO variants contain: * the board specific bits (eg the RTC for RSPRO, later on it'll include the GPIO/LED definitions); * the boot specific bits (eg, on-board flash, usb flash, etc). For now the AR71XX_BASE file contains the common board config, drivers and net80211/ath wireless drivers. I'll follow this up with config files for the other boards I have (eg the Ubiquiti LSSR71, as well as some Mikrotik boards that use the AR71XX and atheros reference boards) which will be quite easy to do now.
Diffstat (limited to 'sys/mips')
-rw-r--r--sys/mips/conf/AR71XX93
-rw-r--r--sys/mips/conf/AR71XX_BASE122
-rw-r--r--sys/mips/conf/AR71XX_BASE.hints (renamed from sys/mips/conf/AR71XX.hints)49
-rw-r--r--sys/mips/conf/ROUTERSTATION24
-rw-r--r--sys/mips/conf/ROUTERSTATION.hints19
-rw-r--r--sys/mips/conf/ROUTERSTATION_MFS19
-rw-r--r--sys/mips/conf/RSPRO26
-rw-r--r--sys/mips/conf/RSPRO.hints13
-rw-r--r--sys/mips/conf/RSPRO_MFS23
-rw-r--r--sys/mips/conf/RSPRO_STANDALONE26
10 files changed, 291 insertions, 123 deletions
diff --git a/sys/mips/conf/AR71XX b/sys/mips/conf/AR71XX
deleted file mode 100644
index c340f78..0000000
--- a/sys/mips/conf/AR71XX
+++ /dev/null
@@ -1,93 +0,0 @@
-#
-# AR71XX -- Kernel configuration file for FreeBSD/mips for Atheros 71xx systems
-#
-# $FreeBSD$
-#
-
-ident AR71XX
-makeoptions KERNLOADADDR=0x80050000
-options HZ=1000
-
-hints "AR71XX.hints"
-include "../atheros/std.ar71xx"
-
-makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols
-#makeoptions MODULES_OVERRIDE=""
-
-options DDB
-options KDB
-
-options SCHED_4BSD #4BSD scheduler
-options INET #InterNETworking
-options NFSCL #Network Filesystem Client
-options NFS_ROOT #NFS usable as /, requires NFSCL
-options PSEUDOFS #Pseudo-filesystem framework
-options _KPOSIX_PRIORITY_SCHEDULING #Posix P1003_1B real-time extensions
-
-# options NFS_LEGACYRPC
-# Debugging for use in -current
-options DEADLKRES
-options INVARIANTS
-options INVARIANT_SUPPORT
-options WITNESS
-options WITNESS_SKIPSPIN
-options FFS #Berkeley Fast Filesystem
-options SOFTUPDATES #Enable FFS soft updates support
-options UFS_ACL #Support for access control lists
-options UFS_DIRHASH #Improve performance on big directories
-
-
-options BOOTP
-options BOOTP_NFSROOT
-options BOOTP_NFSV3
-options BOOTP_WIRED_TO=arge0
-options BOOTP_COMPAT
-options ROOTDEVNAME=\"nfs:192.168.10.1:/mnt/bsd\"
-
-device pci
-device ar71xx_pci
-
-# Wireless NIC cards
-options IEEE80211_DEBUG
-options IEEE80211_SUPPORT_MESH
-options IEEE80211_SUPPORT_TDMA
-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 ath # Atheros NIC's
-device ath_pci # Atheros pci/cardbus glue
-options ATH_DEBUG
-device ath_hal
-option AH_SUPPORT_AR5416
-option AH_RXCFG_SDMAMW_4BYTES # See NOTES for details of this WAR
-device ath_rate_sample
-
-device mii
-device arge
-
-device usb
-options USB_EHCI_BIG_ENDIAN_DESC # handle big-endian byte order
-# options USB_DEBUG
-device ohci
-device ehci
-
-device gpio
-device gpioled
-
-device spibus
-device ar71xx_spi
-device mx25l
-# device geom_redboot
-
-device ar71xx_wdog
-
-device uart
-
-device loop
-device ether
-device md
-device bpf
-device random
-device if_bridge
diff --git a/sys/mips/conf/AR71XX_BASE b/sys/mips/conf/AR71XX_BASE
new file mode 100644
index 0000000..004ae07
--- /dev/null
+++ b/sys/mips/conf/AR71XX_BASE
@@ -0,0 +1,122 @@
+#
+# AR71XX -- Kernel configuration file for FreeBSD/MIPS for Atheros 71xx systems
+#
+# This includes all the common drivers for the AR71XX boards along with
+# the usb, net80211 and atheros driver code.
+#
+# $FreeBSD$
+#
+
+machine mips mipseb
+ident AR71XX_BASE
+cpu CPU_MIPS4KC
+options ISA_MIPS32
+makeoptions TARGET_BIG_ENDIAN
+makeoptions KERNLOADADDR=0x80050000
+options HZ=1000
+options HWPMC_HOOKS
+
+files "../atheros/files.ar71xx"
+
+# For now, hints are per-board.
+
+hints "AR71XX_BASE.hints"
+
+makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols
+
+# Also build these as modules, just to ensure the build gets tested.
+makeoptions MODULES_OVERRIDE="wlan wlan_xauth wlan_acl wlan_wep wlan_tkip wlan_ccmp ath ath_pci"
+
+options DDB
+options KDB
+
+options SCHED_4BSD #4BSD scheduler
+options INET #InterNETworking
+options INET6 # IPv6
+
+# options NFS_CL #Network Filesystem Client
+
+options PSEUDOFS #Pseudo-filesystem framework
+options _KPOSIX_PRIORITY_SCHEDULING #Posix P1003_1B real-time extensions
+
+# options NFS_LEGACYRPC
+# Debugging for use in -current
+options INVARIANTS
+options INVARIANT_SUPPORT
+options WITNESS
+options WITNESS_SKIPSPIN
+options DEBUG_REDZONE
+options DEBUG_MEMGUARD
+
+options FFS #Berkeley Fast Filesystem
+# 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
+
+device pci
+device ar71xx_pci
+
+# 802.11 framework
+options IEEE80211_DEBUG
+options IEEE80211_ALQ
+options IEEE80211_SUPPORT_MESH
+# This option is currently broken for if_ath_tx.
+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 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
diff --git a/sys/mips/conf/AR71XX.hints b/sys/mips/conf/AR71XX_BASE.hints
index 6719d16..43f0aea 100644
--- a/sys/mips/conf/AR71XX.hints
+++ b/sys/mips/conf/AR71XX_BASE.hints
@@ -1,4 +1,6 @@
+#
# $FreeBSD$
+#
hint.apb.0.at="nexus0"
hint.apb.0.irq=4
@@ -29,35 +31,15 @@ hint.arge.0.at="nexus0"
hint.arge.0.maddr=0x19000000
hint.arge.0.msize=0x1000
hint.arge.0.irq=2
-# PHY4 = 1 << 4
-hint.arge.0.phymask=0x10
-# Uncomment this hint for RS (not PRO)
-# PHY20 = 1 << 20
-# hint.arge.0.phymask=0x100000
+
+# phymask, media and fduplex depend upon the specific
+# board.
+# So each board will override the settings as needed.
hint.arge.1.at="nexus0"
hint.arge.1.maddr=0x1a000000
hint.arge.1.msize=0x1000
hint.arge.1.irq=3
-# PHY1, PHY2, PHY3
-hint.arge.1.phymask=0x0e
-# should be 100 for RS
-hint.arge.1.media=1000
-hint.arge.1.fduplex=1
-# Uncomment this hint for RS (not PRO)
-# hint.arge.0.phymask=70000
-
-# GPIO
-hint.gpio.0.at="apb0"
-hint.gpio.0.maddr=0x18040000
-hint.gpio.0.msize=0x1000
-hint.gpio.0.irq=2
-
-# RF led
-hint.gpioled.0.at="gpiobus0"
-hint.gpioled.0.name="rf"
-# pin 2
-hint.gpioled.0.pins=0x0004
# SPI flash
hint.spi.0.at="nexus0"
@@ -67,11 +49,18 @@ hint.spi.0.msize=0x10
hint.mx25l.0.at="spibus0"
hint.mx25l.0.cs=0
-# shares the same bus with mx25l.
-# CE low for flash, CE high for RTC
-# at the moment it's just stub until SPI bus is ready for such hacks
-# hint.rtc.0.at="spibus0"
-# hint.rtc.0.cs=0
-
# Watchdog
hint.ar71xx_wdog.0.at="nexus0"
+
+# GPIO
+hint.gpio.0.at="apb0"
+hint.gpio.0.maddr=0x18040000
+hint.gpio.0.msize=0x1000
+hint.gpio.0.irq=2
+
+# Each board should override the GPIO bus pins with the configuration
+# relevant to it. Thus no pins are defined here.
+
+# hwpmc device
+hint.ar71xx_pmc.0.at="apb0"
+hint.ar71xx_pmc.0.irq=5
diff --git a/sys/mips/conf/ROUTERSTATION b/sys/mips/conf/ROUTERSTATION
new file mode 100644
index 0000000..fe4a3ba
--- /dev/null
+++ b/sys/mips/conf/ROUTERSTATION
@@ -0,0 +1,24 @@
+#
+# Ubiquiti Routerstation: Boot from onboard flash
+#
+# $FreeBSD$
+#
+
+include "UBNT_AR71XX_BASE"
+ident "ROUTERSTATION"
+hints "ROUTERSTATION.hints"
+
+# XXX Is there an RTC on the RS?
+
+# GEOM modules
+device geom_redboot # to get access to the SPI flash partitions
+device geom_uzip # compressed in-memory filesystem support
+options GEOM_UZIP
+
+# For DOS
+options GEOM_PART_BSD
+options GEOM_PART_MBR
+options MSDOSFS
+
+# Boot path - redboot MFS
+options ROOTDEVNAME=\"ufs:redboot/rootfs.uzip\"
diff --git a/sys/mips/conf/ROUTERSTATION.hints b/sys/mips/conf/ROUTERSTATION.hints
new file mode 100644
index 0000000..faad82d
--- /dev/null
+++ b/sys/mips/conf/ROUTERSTATION.hints
@@ -0,0 +1,19 @@
+#
+# $FreeBSD$
+#
+
+# Uncomment this hint for RS (not PRO)
+# PHY20 = 1 << 20
+hint.arge.0.phymask=0x100000
+
+# should be 100 for RS
+hint.arge.1.media=100
+hint.arge.1.fduplex=1
+# Uncomment this hint for RS (not PRO)
+hint.arge.1.phymask=0x30000
+
+# RF led
+hint.gpioled.0.at="gpiobus0"
+hint.gpioled.0.name="rf"
+# pin 2
+hint.gpioled.0.pins=0x0004
diff --git a/sys/mips/conf/ROUTERSTATION_MFS b/sys/mips/conf/ROUTERSTATION_MFS
new file mode 100644
index 0000000..087659b
--- /dev/null
+++ b/sys/mips/conf/ROUTERSTATION_MFS
@@ -0,0 +1,19 @@
+#
+# Ubiquiti Routerstation: boot from MFS
+#
+# $FreeBSD$
+#
+
+include "AR71XX_BASE"
+ident "ROUTERSTATION_MFS"
+hints "ROUTERSTATION.hints"
+
+# GEOM modules
+device geom_redboot # to get access to the SPI flash partitions
+device geom_uzip # compressed in-memory filesystem hackery!
+options GEOM_UZIP
+
+options ROOTDEVNAME=\"ufs:md0.uzip\"
+
+options MD_ROOT
+options MD_ROOT_SIZE="6144"
diff --git a/sys/mips/conf/RSPRO b/sys/mips/conf/RSPRO
new file mode 100644
index 0000000..8684f07
--- /dev/null
+++ b/sys/mips/conf/RSPRO
@@ -0,0 +1,26 @@
+#
+# Routerstation Pro: boot from on-board flash
+#
+# $FreeBSD$
+#
+
+include "AR71XX_BASE"
+ident "RSPRO"
+hints "RSPRO.hints"
+
+# RTC - requires hackery in the spibus code to work
+device pcf2123_rtc
+
+# GEOM modules
+device geom_redboot # to get access to the SPI flash partitions
+device geom_uzip # compressed in-memory filesystem support
+options GEOM_UZIP
+
+# For DOS
+options GEOM_PART_BSD
+options GEOM_PART_MBR
+options MSDOSFS
+
+# Boot off of flash
+options ROOTDEVNAME=\"ufs:redboot/rootfs.uzip\"
+
diff --git a/sys/mips/conf/RSPRO.hints b/sys/mips/conf/RSPRO.hints
new file mode 100644
index 0000000..01ad750
--- /dev/null
+++ b/sys/mips/conf/RSPRO.hints
@@ -0,0 +1,13 @@
+# $FreeBSD$
+
+hint.arge.0.phymask=0x10
+
+hint.arge.1.media=1000
+hint.arge.1.fduplex=1
+hint.arge.1.phymask=0x0e
+
+# RF led
+hint.gpioled.0.at="gpiobus0"
+hint.gpioled.0.name="rf"
+# pin 2
+hint.gpioled.0.pins=0x0004
diff --git a/sys/mips/conf/RSPRO_MFS b/sys/mips/conf/RSPRO_MFS
new file mode 100644
index 0000000..b9598f1
--- /dev/null
+++ b/sys/mips/conf/RSPRO_MFS
@@ -0,0 +1,23 @@
+#
+# Ubiquiti Routerstation Pro: boot from MFS
+#
+# $FreeBSD$
+#
+
+include "AR71XX_BASE"
+ident "RSPRO_MFS"
+hints "RSPRO.hints"
+
+# RTC - requires hackery in the spibus code to work
+device pcf2123_rtc
+
+# GEOM modules
+device geom_redboot # to get access to the SPI flash partitions
+device geom_uzip # compressed in-memory filesystem hackery!
+options GEOM_UZIP
+
+# Boot from the first MFS uzip
+options ROOTDEVNAME=\"ufs:md0.uzip\"
+
+options MD_ROOT
+options MD_ROOT_SIZE="6144"
diff --git a/sys/mips/conf/RSPRO_STANDALONE b/sys/mips/conf/RSPRO_STANDALONE
new file mode 100644
index 0000000..bf01cb3
--- /dev/null
+++ b/sys/mips/conf/RSPRO_STANDALONE
@@ -0,0 +1,26 @@
+#
+# Ubiquiti Routerstation Pro: boot from first DOS-partitioned, BSD
+# sliced flash disk.
+#
+# $FreeBSD$
+#
+
+include "AR71XX_BASE"
+ident "RSPRO_STANDALONE"
+hints "RSPRO.hints"
+
+# RTC - requires hackery in the spibus code to work
+device pcf2123_rtc
+
+# GEOM modules
+device geom_redboot # to get access to the SPI flash partitions
+device geom_uzip # compressed in-memory filesystem support
+options GEOM_UZIP
+
+# For DOS
+options GEOM_PART_BSD
+options GEOM_PART_MBR
+options MSDOSFS
+
+# .. first DOS-partitioned, BSD sliced flash disk
+options ROOTDEVNAME=\"ufs:da0s1a\"
OpenPOWER on IntegriCloud