1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-18 10:35:55 +00:00

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.
This commit is contained in:
Adrian Chadd 2012-05-12 04:52:59 +00:00
parent 0dded3391e
commit f7c03fa47d
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=235320
2 changed files with 335 additions and 0 deletions

138
sys/mips/conf/AP93 Normal file
View File

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

197
sys/mips/conf/AP93.hints Normal file
View File

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