1272206Ssbruno#
2272206Ssbruno# This file adds to the values in AR933X_BASE.hints
3272206Ssbruno#
4272206Ssbruno# $FreeBSD$
5272206Ssbruno
6272206Ssbruno# mdiobus on arge1
7272206Ssbrunohint.argemdio.0.at="nexus0"
8272206Ssbrunohint.argemdio.0.maddr=0x1a000000
9272206Ssbrunohint.argemdio.0.msize=0x1000
10272206Ssbrunohint.argemdio.0.order=0
11289147Ssbruno 
12272206Ssbruno# There's no need to set the ar933x GMAC configuration bits.
13272206Ssbruno# This just creates a switch instance and correctly uses it.
14272206Ssbruno
15272206Ssbruno# Embedded Atheros Switch
16272206Ssbrunohint.arswitch.0.at="mdio0"
17272206Ssbruno
18272206Ssbruno# XXX this should really say it's an AR933x switch, as there
19272206Ssbruno# are some vlan specific differences here!
20272206Ssbrunohint.arswitch.0.is_7240=1
21272206Ssbrunohint.arswitch.0.numphys=4
22272206Ssbrunohint.arswitch.0.phy4cpu=1	# phy 4 is a "CPU" separate PHY
23272206Ssbrunohint.arswitch.0.is_rgmii=0
24272206Ssbrunohint.arswitch.0.is_gmii=1	# arge1 <-> switch PHY is GMII
25272206Ssbruno
26272206Ssbruno# arge0 - MII, autoneg, phy(4)
27272206Ssbrunohint.arge.0.phymask=0x10	# PHY4
28272206Ssbrunohint.arge.0.mdio=mdioproxy1	# .. off of the switch mdiobus
29289482Ssbrunohint.arge.0.eeprommac=0x1fff0000
30272206Ssbruno
31272206Ssbruno# arge1 - GMII, 1000/full
32272206Ssbrunohint.arge.1.phymask=0x0		# No directly mapped PHYs
33272206Ssbrunohint.arge.1.media=1000
34272206Ssbrunohint.arge.1.fduplex=1
35289482Ssbrunohint.arge.1.eeprommac=0x1fff0006
36272206Ssbruno
37272206Ssbruno# Where the ART is - last 64k in the flash
38272206Ssbruno# 0x9fff1000 ?
39289482Ssbrunohint.ath.0.eepromaddr=0x1fff0000
40272206Ssbrunohint.ath.0.eepromsize=16384
41272206Ssbruno
42289147Ssbruno# The board 4MiB flash layout in uboot env:
43272206Ssbruno#
44272206Ssbruno# 256k(u-boot),64k(u-boot-env),2752k(rootfs),896k(uImage),64k(NVRAM),64k(ART)
45272206Ssbruno
46272206Ssbruno# However, it boots from 0x9f050000, which is the front of the flsah!
47272206Ssbruno# Thus the kernel/rootfs are switched around.
48272206Ssbruno
49272206Ssbruno# 256KB
50272206Ssbrunohint.map.0.at="flash/spi0"
51272206Ssbrunohint.map.0.start=0x00000000
52272206Ssbrunohint.map.0.end=0x00040000
53272206Ssbrunohint.map.0.name="uboot"
54272206Ssbrunohint.map.0.readonly=1
55272206Ssbruno
56272206Ssbruno# 64KB
57272206Ssbrunohint.map.1.at="flash/spi0"
58272206Ssbrunohint.map.1.start=0x00040000
59272206Ssbrunohint.map.1.end=0x00050000
60272206Ssbrunohint.map.1.name="uboot-env"
61289147Ssbrunohint.map.1.readonly=1
62272206Ssbruno
63289147Ssbruno# 3648KB
64272206Ssbrunohint.map.2.at="flash/spi0"
65272206Ssbrunohint.map.2.start=0x00050000
66289147Ssbrunohint.map.2.end=0x003e0000
67272206Ssbrunohint.map.2.name="kernel"
68289147Ssbrunohint.map.2.readonly=1
69272206Ssbruno
70289147Ssbruno# 64K NVRAM
71272206Ssbrunohint.map.3.at="flash/spi0"
72289147Ssbrunohint.map.3.start=0x003e0000
73289147Ssbrunohint.map.3.end=0x003f0000
74289147Ssbrunohint.map.3.name="cfg"
75272206Ssbrunohint.map.3.readonly=0
76272206Ssbruno
77289147Ssbruno# 64K ART
78272206Ssbrunohint.map.4.at="flash/spi0"
79289147Ssbrunohint.map.4.start=0x003f0000
80289147Ssbrunohint.map.4.end=0x00400000
81289147Ssbrunohint.map.4.name="art"
82289147Ssbrunohint.map.4.readonly=1
83272206Ssbruno
84272206Ssbruno# GPIO specific configuration block
85272206Ssbruno
86272206Ssbruno# Don't flip on anything that isn't already enabled.
87272206Ssbruno# This includes leaving the SPI CS1/CS2 pins as GPIO pins as they're
88272206Ssbruno# not used here.
89272206Ssbrunohint.gpio.0.function_set=0x00000000
90272206Ssbrunohint.gpio.0.function_clear=0x00000000
91272206Ssbruno
92272206Ssbruno# These are the GPIO LEDs and buttons which can be software controlled.
93272206Ssbruno#hint.gpio.0.pinmask=0x001c02ae
94272206Ssbruno#hint.gpio.0.pinmask=0x00001803
95272206Ssbruno
96272206Ssbruno# XXX TODO: the button and LEDs!
97