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