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.
This commit is contained in:
Adrian Chadd 2011-12-29 05:51:48 +00:00
parent 3a1b9c9e82
commit 530028c9d6
10 changed files with 291 additions and 123 deletions

View file

@ -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

122
sys/mips/conf/AR71XX_BASE Normal file
View file

@ -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

View file

@ -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

View file

@ -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\"

View file

@ -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

View file

@ -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"

26
sys/mips/conf/RSPRO Normal file
View file

@ -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\"

13
sys/mips/conf/RSPRO.hints Normal file
View file

@ -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

23
sys/mips/conf/RSPRO_MFS Normal file
View file

@ -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"

View file

@ -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\"