Add support for the TP-Link TL-WR740N v4.

This is an AR9331 part based on the AP121 reference design but with
32MB RAM.  Yes, it has 4MB flash and it has no USB, so clever hacks
are required to get it up and working.

But boot/work it does.
This commit is contained in:
Adrian Chadd 2015-10-22 08:08:06 +00:00
parent 73f96038d2
commit bb5c955e8d
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=289745
2 changed files with 140 additions and 0 deletions

53
sys/mips/conf/TL-WR740Nv4 Normal file
View File

@ -0,0 +1,53 @@
#
# TP-Link WR740N v4
#
# * AR9330 SoC
# * 32MB RAM
# * 4MB flash
# * Integrated 1x1 2GHz wifi and 10/100 bridge
#
# $FreeBSD$
#
# Include the default AR933x parameters
include "AR933X_BASE"
ident CARAMBOLA2
# Override hints with board values
hints "CARAMBOLA2.hints"
# Board memory - 32MB
options AR71XX_REALMEM=(32*1024*1024)
# i2c GPIO bus
#device gpioiic
#device iicbb
#device iicbus
#device iic
# Options required for miiproxy and mdiobus
options ARGE_MDIO # Export an MDIO bus separate from arge
device miiproxy # MDIO bus <-> MII PHY rendezvous
device etherswitch
device arswitch
# read MSDOS formatted disks - USB
#options MSDOSFS
# Enable the uboot environment stuff rather then the
# redboot stuff.
options AR71XX_ENV_UBOOT
# uzip - to boot natively from flash
device geom_uncompress
options GEOM_UNCOMPRESS
# Used for the static uboot partition map
device geom_map
# Boot off of the rootfs, as defined in the geom_map setup.
# options ROOTDEVNAME=\"ufs:map/rootfs.uncompress\"
# Note: we don't fit in 4MB flash, so the rootfs must be on USB for now
options ROOTDEVNAME=\"ufs:da0\"

View File

@ -0,0 +1,87 @@
#
# This file adds to the values in AR933X_BASE.hints
#
# $FreeBSD$
# mdiobus on arge1
hint.argemdio.0.at="nexus0"
hint.argemdio.0.maddr=0x1a000000
hint.argemdio.0.msize=0x1000
hint.argemdio.0.order=0
# Embedded Atheros Switch
hint.arswitch.0.at="mdio0"
# XXX this should really say it's an AR933x switch, as there
# are some vlan specific differences here!
hint.arswitch.0.is_7240=1
hint.arswitch.0.numphys=4
hint.arswitch.0.phy4cpu=1 # phy 4 is a "CPU" separate PHY
hint.arswitch.0.is_rgmii=0
hint.arswitch.0.is_gmii=1 # arge1 <-> switch PHY is GMII
# arge0 - MII, autoneg, phy(4)
hint.arge.0.phymask=0x10 # PHY4
hint.arge.0.mdio=mdioproxy1 # .. off of the switch mdiobus
hint.arge.0.eeprommac=0x1fff0000
# arge1 - GMII, 1000/full
hint.arge.1.phymask=0x0 # No directly mapped PHYs
hint.arge.1.media=1000
hint.arge.1.fduplex=1
hint.arge.1.eeprommac=0x1fff0006
# Where the ART is - last 64k in the flash
# 0x9fff1000 ?
hint.ath.0.eepromaddr=0x1fff0000
hint.ath.0.eepromsize=16384
# The TL-WR740N v4 is a default AP121 - it comes with 4MB flash.
#
# The boot parameters:
# bootargs=console=ttyS0,115200 root=31:02 rootfstype=squashfs init=/sbin/init
# mtdparts=ar7240-nor0:256k(u-boot),64k(u-boot-env),2752k(rootfs),
# 896k(uImage),64k(NVRAM),64k(ART)
# bootcmd=bootm 0x9f020000
#
# .. so uboot is 128K, there's no ubootenv, and the runtime image starts
# at 0x9f020000.
hint.map.0.at="flash/spi0"
hint.map.0.start=0x00000000
hint.map.0.end=0x000020000
hint.map.0.name="uboot"
hint.map.0.readonly=1
hint.map.1.at="flash/spi0"
hint.map.1.start=0x00020000
hint.map.1.end=0x003e0000
hint.map.1.name="kernel"
hint.map.1.readonly=0
hint.map.2.at="flash/spi0"
hint.map.2.start=0x003e0000
hint.map.2.end=0x003f0000
hint.map.2.name="cfg"
hint.map.2.readonly=0
# This is radio calibration section. It is (or should be!) unique
# for each board, to take into account thermal and electrical differences
# as well as the regulatory compliance data.
#
hint.map.3.at="flash/spi0"
hint.map.3.start=0x003f0000
hint.map.3.end=0x0x400000
hint.map.3.name="art"
hint.map.3.readonly=1
# GPIO specific configuration block
# Don't flip on anything that isn't already enabled.
# This includes leaving the SPI CS1/CS2 pins as GPIO pins as they're
# not used here.
hint.gpio.0.function_set=0x00000000
hint.gpio.0.function_clear=0x00000000
# These are the GPIO LEDs and buttons which can be software controlled.
# hint.gpio.0.pinmask=0x00fc1803