From 530028c9d6fcf07ca511fec28ad49fa4ba4d3913 Mon Sep 17 00:00:00 2001 From: Adrian Chadd Date: Thu, 29 Dec 2011 05:51:48 +0000 Subject: [PATCH] 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. --- sys/mips/conf/AR71XX | 93 ------------- sys/mips/conf/AR71XX_BASE | 122 ++++++++++++++++++ .../conf/{AR71XX.hints => AR71XX_BASE.hints} | 49 +++---- sys/mips/conf/ROUTERSTATION | 24 ++++ sys/mips/conf/ROUTERSTATION.hints | 19 +++ sys/mips/conf/ROUTERSTATION_MFS | 19 +++ sys/mips/conf/RSPRO | 26 ++++ sys/mips/conf/RSPRO.hints | 13 ++ sys/mips/conf/RSPRO_MFS | 23 ++++ sys/mips/conf/RSPRO_STANDALONE | 26 ++++ 10 files changed, 291 insertions(+), 123 deletions(-) delete mode 100644 sys/mips/conf/AR71XX create mode 100644 sys/mips/conf/AR71XX_BASE rename sys/mips/conf/{AR71XX.hints => AR71XX_BASE.hints} (60%) create mode 100644 sys/mips/conf/ROUTERSTATION create mode 100644 sys/mips/conf/ROUTERSTATION.hints create mode 100644 sys/mips/conf/ROUTERSTATION_MFS create mode 100644 sys/mips/conf/RSPRO create mode 100644 sys/mips/conf/RSPRO.hints create mode 100644 sys/mips/conf/RSPRO_MFS create mode 100644 sys/mips/conf/RSPRO_STANDALONE diff --git a/sys/mips/conf/AR71XX b/sys/mips/conf/AR71XX deleted file mode 100644 index c340f78fb64..00000000000 --- 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 00000000000..004ae07a6fd --- /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 similarity index 60% rename from sys/mips/conf/AR71XX.hints rename to sys/mips/conf/AR71XX_BASE.hints index 6719d163918..43f0aea76db 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 00000000000..fe4a3ba3764 --- /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 00000000000..faad82d6304 --- /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 00000000000..087659b0e04 --- /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 00000000000..8684f070c41 --- /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 00000000000..01ad750ca18 --- /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 00000000000..b9598f1ef52 --- /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 00000000000..bf01cb32bb6 --- /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\"