summaryrefslogtreecommitdiffstats
path: root/sys/mips
diff options
context:
space:
mode:
authoradrian <adrian@FreeBSD.org>2012-05-12 04:52:59 +0000
committeradrian <adrian@FreeBSD.org>2012-05-12 04:52:59 +0000
commit27a4d8916d07cb003e94547688943af113347c07 (patch)
tree50b5c33293b9c35336354ae929df271aad2ee76b /sys/mips
parent8c3a5f5c354500d6905f4642f2b31794eb16cfa3 (diff)
downloadFreeBSD-src-27a4d8916d07cb003e94547688943af113347c07.zip
FreeBSD-src-27a4d8916d07cb003e94547688943af113347c07.tar.gz
Add in the AP93 configuration file.
The AP93 has: * AR7240 - mips24k processor with integrated 10/100 switch and various other peripherals; * AR9283 - 2x2 2.4GHz 802.11n (with calibration data in flash); * 64MB RAM; * 16MB SPI flash. The switch code detects as an AR8216 at the present moment, which isn't _entirely_ strictly true. However, the MII/MDIO routing in AP93.hints works - the arge0 MAC connects to PHY4 in the switch, but via the switch internal MDIO bus. The switch connects to arge0's MDIO bus, but only to export the switch registers. Thanks to stb and ray for the switch work, and ray for helping determine what the correct switch hints should be for this thing.
Diffstat (limited to 'sys/mips')
-rw-r--r--sys/mips/conf/AP93138
-rw-r--r--sys/mips/conf/AP93.hints197
2 files changed, 335 insertions, 0 deletions
diff --git a/sys/mips/conf/AP93 b/sys/mips/conf/AP93
new file mode 100644
index 0000000..202a7cf
--- /dev/null
+++ b/sys/mips/conf/AP93
@@ -0,0 +1,138 @@
+#
+# AP93 -- Kernel configuration file for FreeBSD/mips for Atheros AP93 reference
+# board (AR7240)
+#
+# $FreeBSD$
+#
+
+ident AP93
+
+# XXX The default load address in the Uboot environment is 0x80010000
+makeoptions KERNLOADADDR=0x80050000
+options HZ=1000
+
+# The AP93 has 64mb of RAM; hard-code that
+options AR71XX_REALMEM=64*1024*1024
+
+# It's UBOOT, not Redboot - without this, things will hang at startup
+options AR71XX_ENV_UBOOT
+
+makeoptions MODULES_OVERRIDE="ath ath_pci ath_ahb bridgestp if_bridge if_gif if_gre random wlan wlan_acl wlan_amrr wlan_ccmp wlan_rssadapt wlan_tkip wlan_wep wlan_xauth usb ar71xx"
+
+hints "AP93.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
+# Can't do IPv6 - it just doesn't fit.
+# options INET6
+# options NFSCL #Network Filesystem Client
+options PSEUDOFS #Pseudo-filesystem framework
+options _KPOSIX_PRIORITY_SCHEDULING #Posix P1003_1B real-time extensions
+options ALQ
+
+# Debugging for use in -current
+options DEADLKRES
+options INVARIANTS
+options INVARIANT_SUPPORT
+options WITNESS
+options WITNESS_SKIPSPIN
+options FFS #Berkeley Fast Filesystem
+
+# Support uncompress lzma rootfs
+device geom_uncompress
+options GEOM_UNCOMPRESS
+options ROOTDEVNAME=\"ufs:/dev/map/rootfs.uncompress\"
+
+# PCI bus
+device pci
+device ar724x_pci
+# Enable the AR71xx EEPROM PCI(e) workaround
+options AR71XX_ATH_EEPROM
+
+# NVRAM U-Boot Environment -> Kernel environment
+device nvram2env
+
+# Wireless NIC cards
+options IEEE80211_DEBUG
+options IEEE80211_SUPPORT_MESH
+options IEEE80211_SUPPORT_TDMA
+options IEEE80211_ALQ
+
+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
+
+device ath # Atheros pci/cardbus NIC's
+device ath_pci # PCI/PCIe bus glue
+options ATH_DEBUG
+options ATH_ENABLE_11N
+options ATH_DIAGAPI
+device firmware
+options ATH_EEPROM_FIRMWARE
+
+device ath_hal
+options AH_SUPPORT_AR5416
+options AH_DEBUG
+options AH_DEBUG_ALQ
+
+device ath_rate_sample
+
+device mii
+device arge
+device miiproxy
+options ARGE_DEBUG
+options ARGE_MDIO
+device etherswitch
+device arswitch
+
+# USB devices - (todo: does AR7240 have OHCI, or just EHCI?)
+
+#device usb
+options USB_EHCI_BIG_ENDIAN_DESC # handle big-endian byte order
+options USB_DEBUG
+options USB_HOST_ALIGN=32
+#device ehci
+
+# Mass storage
+#device scbus
+#device umass
+#device da
+
+# Read MSDOS formatted disks
+options GEOM_PART_BSD
+options GEOM_PART_MBR
+#options MSDOSFS
+
+# GPIO Bus
+#device gpio
+#device gpioled
+
+# SPI and flash
+device spibus
+device ar71xx_spi
+device mx25l
+
+# The flash is statically partitioned; add in that
+device geom_map
+
+device ar71xx_wdog
+
+# Serial
+device uart
+
+# Network twiddling
+device loop
+device ether
+device md
+device bpf
+device random
+device if_bridge
diff --git a/sys/mips/conf/AP93.hints b/sys/mips/conf/AP93.hints
new file mode 100644
index 0000000..1e8f0ce
--- /dev/null
+++ b/sys/mips/conf/AP93.hints
@@ -0,0 +1,197 @@
+# $FreeBSD$
+
+hint.apb.0.at="nexus0"
+hint.apb.0.irq=4
+
+# uart0
+hint.uart.0.at="apb0"
+# see atheros/uart_cpu_ar71xx.c why +3
+hint.uart.0.maddr=0x18020003
+hint.uart.0.msize=0x18
+hint.uart.0.irq=3
+
+# arge0 MDIO bus
+hint.argemdio.0.at="nexus0"
+hint.argemdio.0.maddr=0x19000000
+hint.argemdio.0.msize=0x1000
+hint.argemdio.0.order=0
+
+# arge1 MDIO bus doesn't exist on the AR7240
+
+# arge0: MII; dedicated PHY 4 on switch, connected via internal switch
+# MDIO bus.
+
+hint.arge.0.at="nexus0"
+hint.arge.0.maddr=0x19000000
+hint.arge.0.msize=0x1000
+hint.arge.0.irq=2
+# hint.arge.0.eeprommac=0x83fe9ff0
+hint.arge.0.phymask=0x10 # PHY 4
+# hint.arge.0.miimode=2 # MII
+hint.arge.0.mdio=mdioproxy1 # Hanging off the arswitch MDIO bus
+
+# arge1: connected to the LAN switch MAC, at 1000BaseTX / GMII.
+hint.arge.1.at="nexus0"
+hint.arge.1.maddr=0x1A000000
+hint.arge.1.msize=0x1000
+hint.arge.1.irq=3
+
+hint.arge.1.phymask=0x0
+# hint.arge.1.miimode=1 # GMII
+hint.arge.1.media=1000 # Force to 1000BaseTX/full
+hint.arge.1.fduplex=1
+
+# AR7240 switch config
+#
+# XXX TODO - have the AR7240 switch auto-detect correctly?
+# XXX It detects as an AR8216, which isn't strictly true!
+#
+hint.arswitch.0.numphys=4 # 4 active switch PHYs (PHY 0 -> 3)
+hint.arswitch.0.phy4cpu=1 # Yes, PHY 4 == dedicated PHY
+hint.arswitch.0.is_rgmii=0 # No, not RGMII
+hint.arswitch.0.is_gmii=0 # No, not GMII
+
+# ath0 hint - pcie slot 0
+hint.pcib.0.bus.0.0.0.ath_fixup_addr=0x1fff1000
+hint.pcib.0.bus.0.0.0.ath_fixup_size=4096
+
+# ehci - note the 0x100 offset for the AR913x/AR724x
+hint.ehci.0.at="nexus0"
+hint.ehci.0.maddr=0x1b000100
+hint.ehci.0.msize=0x00ffff00
+hint.ehci.0.irq=1
+
+# pci
+hint.pcib.0.at="nexus0"
+hint.pcib.0.irq=0
+
+# ath
+hint.ath.0.eeprom_firmware="pcib.0.bus.0.0.0.eeprom_firmware"
+
+# GPIO
+hint.gpio.0.at="apb0"
+hint.gpio.0.maddr=0x18040000
+hint.gpio.0.msize=0x1000
+hint.gpio.0.irq=2
+
+# Signal leds
+hint.gpioled.0.at="gpiobus0"
+hint.gpioled.0.name="sig1"
+hint.gpioled.0.pins=0x0001 # pin 0
+hint.gpioled.1.at="gpiobus0"
+hint.gpioled.1.name="sig2"
+hint.gpioled.1.pins=0x0002 # pin 1
+hint.gpioled.2.at="gpiobus0"
+hint.gpioled.2.name="sig3"
+hint.gpioled.2.pins=0x0800 # pin 11
+hint.gpioled.3.at="gpiobus0"
+hint.gpioled.3.name="sig4"
+hint.gpioled.3.pins=0x0080 # pin 7
+
+# SPI controller/bus
+hint.spi.0.at="nexus0"
+hint.spi.0.maddr=0x1f000000
+hint.spi.0.msize=0x10
+
+# SPI flash
+hint.mx25l.0.at="spibus0"
+hint.mx25l.0.cs=0
+
+# Watchdog
+hint.ar71xx_wdog.0.at="nexus0"
+
+# nvram mapping - XXX ?
+hint.nvram.0.base=0x1f030000
+hint.nvram.0.maxsize=0x2000
+hint.nvram.0.flags=3 # 1 = No check, 2 = Format Generic
+hint.nvram.1.base=0x1f032000
+hint.nvram.1.maxsize=0x4000
+hint.nvram.1.flags=3 # 1 = No check, 2 = Format Generic
+
+# GEOM_MAP
+#
+# From my AP93 environment:
+#
+# 256k - uboot
+# 256k - uboot-env
+# 3072k - spare-rootfs
+# 1024k - spare-uImage
+# 3072k - rootfs
+# 1024k - uImage
+# 64k - mib0
+# 64k - mib1
+# 4096k - ct
+# 3392k - var
+# 64k - ART
+
+# To make it useful for FreeBSD for now, treat spare rootfs, spare
+# uimage and rootfs as 'rootfs'.
+
+hint.map.0.at="flash/spi0"
+hint.map.0.start=0x00000000
+hint.map.0.end=0x00040000
+hint.map.0.name="uboot"
+hint.map.0.readonly=1
+
+hint.map.1.at="flash/spi0"
+hint.map.1.start=0x00040000
+hint.map.1.end=0x00080000
+hint.map.1.name="uboot-env"
+hint.map.1.readonly=1
+
+hint.map.2.at="flash/spi0"
+hint.map.2.start=0x00080000
+# hint.map.2.end=0x00380000
+hint.map.2.end=0x00780000
+# hint.map.2.name="spare-rootfs"
+hint.map.2.name="rootfs"
+hint.map.2.readonly=1
+
+#hint.map.3.at="flash/spi0"
+#hint.map.3.start=0x00380000
+#hint.map.3.end=0x00480000
+#hint.map.3.name="spare-uImage"
+#hint.map.3.readonly=1
+
+#hint.map.4.at="flash/spi0"
+#hint.map.4.start=0x00480000
+#hint.map.4.end=0x00780000
+#hint.map.4.name="rootfs"
+#hint.map.4.readonly=1
+
+hint.map.3.at="flash/spi0"
+hint.map.3.start=0x00780000
+hint.map.3.end=0x00880000
+hint.map.3.name="uImage"
+hint.map.3.readonly=1
+
+hint.map.4.at="flash/spi0"
+hint.map.4.start=0x00880000
+hint.map.4.end=0x00890000
+hint.map.4.name="mib0"
+hint.map.4.readonly=1
+
+hint.map.5.at="flash/spi0"
+hint.map.5.start=0x00890000
+hint.map.5.end=0x008a0000
+hint.map.5.name="mib1"
+hint.map.5.readonly=1
+
+hint.map.6.at="flash/spi0"
+hint.map.6.start=0x008a0000
+hint.map.6.end=0x00ca0000
+hint.map.6.name="ct"
+hint.map.6.readonly=1
+
+hint.map.7.at="flash/spi0"
+hint.map.7.start=0x00ca0000
+hint.map.7.end=0x00ff0000
+hint.map.7.name="var"
+hint.map.7.readonly=1
+
+hint.map.8.at="flash/spi0"
+hint.map.8.start=0x00ff0000
+hint.map.8.end=0x01000000 # 64k ART
+hint.map.8.name="ART"
+hint.map.8.readonly=1
+
OpenPOWER on IntegriCloud