1280337Sadrian
2280337Sadrian# I'm assuming this is an AP135-020. The AP136-010 in openwrt has
3280337Sadrian# the ethernet ports wired up to the switch in the reverse way.
4280337Sadrian
5280337Sadrian# $FreeBSD$
6280337Sadrian
7280337Sadrian# QCA955X_ETH_CFG_RGMII_EN (1 << 0)
8280337Sadrianhint.qca955x_gmac.0.gmac_cfg=0x1
9280337Sadrian
10281119Sadrian# Use this to derive ath0 from arge0 MAC address.
11281119Sadrian# 0x1ffe0004 is the arge0 MAC; but it's also the "unit MAC".
12281119Sadrian# So make that the ath0 MAC, and make arge0 -1 from that.
13281119Sadrian# ath0: offset 0
14281119Sadrian# arge0: offset -1
15281119Sadrian# arge1: use +1 from the arge0 MAC, even though
16281119Sadrian# there's a secondary MAC address configured in EEPROM
17281119Sadrian# at 0x1ffe0018.
18281119Sadrianhint.ar71xx.0.eeprom_mac_addr=0x1ffe0004
19281119Sadrianhint.ar71xx.0.eeprom_mac_isascii=1
20281119Sadrian
21281119Sadrianhint.ar71xx_mac_map.0.devid=ath
22281119Sadrianhint.ar71xx_mac_map.0.unitid=0
23281119Sadrianhint.ar71xx_mac_map.0.offset=0
24281119Sadrianhint.ar71xx_mac_map.0.is_local=0
25281119Sadrian
26281119Sadrianhint.ar71xx_mac_map.1.devid=arge
27281119Sadrianhint.ar71xx_mac_map.1.unitid=0
28281119Sadrianhint.ar71xx_mac_map.1.offset=-1
29281119Sadrianhint.ar71xx_mac_map.1.is_local=0
30281119Sadrian
31281119Sadrianhint.ar71xx_mac_map.2.devid=arge
32281119Sadrianhint.ar71xx_mac_map.2.unitid=1
33281119Sadrianhint.ar71xx_mac_map.2.offset=1
34281119Sadrianhint.ar71xx_mac_map.2.is_local=0
35281119Sadrian
36280337Sadrian# mdiobus0 on arge0
37280337Sadrianhint.argemdio.0.at="nexus0"
38280337Sadrianhint.argemdio.0.maddr=0x19000000
39280337Sadrianhint.argemdio.0.msize=0x1000
40280337Sadrianhint.argemdio.0.order=0
41280337Sadrian
42280337Sadrian# mdiobus1 on arge1 - required to bring up arge1?
43280337Sadrianhint.argemdio.1.at="nexus0"
44280337Sadrianhint.argemdio.1.maddr=0x1a000000
45280337Sadrianhint.argemdio.1.msize=0x1000
46280337Sadrianhint.argemdio.1.order=0
47280337Sadrian
48280337Sadrian# AR8327 - connected via mdiobus0 on arge0
49280337Sadrianhint.arswitch.0.at="mdio0"
50280337Sadrianhint.arswitch.0.is_7240=0	# definitely not the internal switch!
51280337Sadrianhint.arswitch.0.is_9340=0	# not the internal switch!
52280337Sadrianhint.arswitch.0.numphys=5	# all ports are PHYs
53280337Sadrianhint.arswitch.0.phy4cpu=0
54280337Sadrianhint.arswitch.0.is_rgmii=0	# not needed
55280337Sadrianhint.arswitch.0.is_gmii=0	# not needed
56280337Sadrian
57280337Sadrian# This is where it gets a bit odd. port 0 and port 6 are CPU ports.
58280337Sadrian# The current code only supports one CPU port.  So hm, what should
59280337Sadrian# we do to hook PAD6 up to be RGMII but a PHY, not a MAC?
60280337Sadrian
61280337Sadrian# The other trick - how do we get arge1 (hooked up to GMAC0) to work?
62280337Sadrian# That's currently supposed to be hooked up to CPU port 0.
63280337Sadrian
64280337Sadrian# Other AR8327 configuration parameters
65280337Sadrian
66280337Sadrian# AP136-020 parameters
67280337Sadrian
68280337Sadrian# GMAC0 AR8327 -> GMAC1 (arge1) SoC, SGMII
69280337Sadrian
70280337Sadrian# AR8327_PAD_MAC_SGMII
71280337Sadrianhint.arswitch.0.pad.0.mode=3
72280337Sadrian#hint.arswitch.0.pad.0.rxclk_delay_sel=0
73280337Sadrianhint.arswitch.0.pad.0.sgmii_delay_en=1
74280337Sadrian
75280337Sadrian# GMAC6 AR8327 -> GMAC0 (arge0) SoC, RGMII
76280337Sadrian
77280337Sadrian# AR8327_PAD_MAC_RGMII
78280337Sadrian# XXX I think this hooks it up to the internal MAC6
79280337Sadrianhint.arswitch.0.pad.6.mode=6
80280337Sadrianhint.arswitch.0.pad.6.txclk_delay_en=1
81280337Sadrianhint.arswitch.0.pad.6.rxclk_delay_en=1
82280337Sadrian# AR8327_CLK_DELAY_SEL1
83280337Sadrianhint.arswitch.0.pad.6.txclk_delay_sel=1
84280337Sadrian# AR8327_CLK_DELAY_SEL2
85280337Sadrianhint.arswitch.0.pad.6.rxclk_delay_sel=2
86280337Sadrian
87280337Sadrian# XXX there's no LED management just yet!
88280337Sadrianhint.arswitch.0.led.ctrl0=0x00000000
89280337Sadrianhint.arswitch.0.led.ctrl1=0xc737c737
90280337Sadrianhint.arswitch.0.led.ctrl2=0x00000000
91280337Sadrianhint.arswitch.0.led.ctrl3=0x00c30c00
92280337Sadrianhint.arswitch.0.led.open_drain=1
93280337Sadrian
94280337Sadrian# force_link=1 is required for the rest of the parameters
95280337Sadrian# to be configured.
96280337Sadrianhint.arswitch.0.port.0.force_link=1
97280337Sadrianhint.arswitch.0.port.0.speed=1000
98280337Sadrianhint.arswitch.0.port.0.duplex=1
99280337Sadrianhint.arswitch.0.port.0.txpause=1
100280337Sadrianhint.arswitch.0.port.0.rxpause=1
101280337Sadrian
102280337Sadrian# force_link=1 is required for the rest of the parameters
103280337Sadrian# to be configured.
104280337Sadrianhint.arswitch.0.port.6.force_link=1
105280337Sadrianhint.arswitch.0.port.6.speed=1000
106280337Sadrianhint.arswitch.0.port.6.duplex=1
107280337Sadrianhint.arswitch.0.port.6.txpause=1
108280337Sadrianhint.arswitch.0.port.6.rxpause=1
109280337Sadrian
110280337Sadrian# arge0 - hooked up to AR8327 GMAC6, RGMII
111280337Sadrian# set at 1000/full to the switch.
112280337Sadrian# so, lock both sides of this connect up to 1000/full;
113280337Sadrian# if_arge thus wont change the PLL configuration
114280337Sadrian# upon a link status change.
115280337Sadrianhint.arge.0.phymask=0x0
116280337Sadrianhint.arge.0.miimode=3           # RGMII
117280337Sadrianhint.arge.0.media=1000
118280337Sadrianhint.arge.0.fduplex=1
119280337Sadrianhint.arge.0.pll_1000=0x56000000
120281119Sadrian# hint.arge.0.eeprommac=0x1ffe0004
121281119Sadrian# hint.arge.0.readascii=1
122280337Sadrian
123280337Sadrian# arge1 - lock up to 1000/full
124280337Sadrianhint.arge.1.phymask=0x0
125280337Sadrianhint.arge.1.media=1000
126280337Sadrianhint.arge.1.fduplex=1
127280337Sadrianhint.arge.1.miimode=5		# SGMII
128280337Sadrianhint.arge.1.pll_1000=0x03000101
129281119Sadrian#hint.arge.1.eeprommac=0x1ffe0018
130281119Sadrian#hint.arge.1.readascii=1
131280337Sadrian
132280337Sadrian# ath0: Where the ART is - last 64k in the flash
133281119Sadrian# Note: ath0 MAC is default (00:11:22:33:44:55) and thus
134281119Sadrian# requires replacing via the board MAC address map.
135280337Sadrianhint.ath.0.eepromaddr=0x1fff0000
136280337Sadrianhint.ath.0.eepromsize=16384
137280337Sadrian
138280337Sadrian# 256KiB u-boot
139280337Sadrianhint.map.0.at="flash/spi0"
140280337Sadrianhint.map.0.start=0x00000000
141280337Sadrianhint.map.0.end=0x00040000	# 256k u-boot
142280337Sadrianhint.map.0.name="u-boot"
143280337Sadrianhint.map.0.readonly=1
144280337Sadrian
145280337Sadrian# kernel
146280337Sadrianhint.map.1.at="flash/spi0"
147280337Sadrianhint.map.1.start=0x00040000
148280337Sadrianhint.map.1.end="search:0x00040000:0x10000:.!/bin/sh"
149280337Sadrianhint.map.1.name="kernel"
150280337Sadrianhint.map.1.readonly=1
151280337Sadrian
152280337Sadrian# rootfs
153280337Sadrianhint.map.2.at="flash/spi0"
154280337Sadrianhint.map.2.start="search:0x00040000:0x10000:.!/bin/sh"
155280337Sadrianhint.map.2.end=0x007d0000
156280337Sadrianhint.map.2.name="rootfs"
157280337Sadrianhint.map.2.readonly=1
158280337Sadrian
159280337Sadrian# 64KiB cfg
160280337Sadrianhint.map.3.at="flash/spi0"
161280337Sadrianhint.map.3.start=0x007d0000
162280337Sadrianhint.map.3.end=0x007e0000
163280337Sadrianhint.map.3.name="cfg"
164280337Sadrianhint.map.3.readonly=0
165280337Sadrian
166280337Sadrian# 8256 KiB mib0
167280337Sadrianhint.map.4.at="flash/spi0"
168280337Sadrianhint.map.4.start=0x007e0000
169280337Sadrianhint.map.4.end=0x00ff0000	# 64k mib0
170280337Sadrianhint.map.4.name="mib0"
171280337Sadrianhint.map.4.readonly=1
172280337Sadrian
173280337Sadrian# 64KiB ART
174280337Sadrian# XXX TODO: is this really here?
175280337Sadrianhint.map.5.at="flash/spi0"
176280337Sadrianhint.map.5.start=0x00ff0000
177280337Sadrianhint.map.5.end=0x01000000	# 64k ART
178280337Sadrianhint.map.5.name="ART"
179280337Sadrianhint.map.5.readonly=1
180