Routerboard RB433AH
Monthadar Al Jaberi
monthadar at gmail.com
Tue Dec 11 16:25:34 UTC 2012
On Sat, Dec 8, 2012 at 9:41 PM, Luiz Otavio O Souza <lists.br at gmail.com> wrote:
> On 7 December 2012 12:27, Monthadar Al Jaberi <monthadar at gmail.com> wrote:
>> Sorry for being too late, have you solved this issue?
>>
>> br,
>>
>> On Thu, Jun 7, 2012 at 8:43 PM, John Hay <jhay at meraka.org.za> wrote:
>>> Hi,
>>>
>>> I found a RB433AH that is not doing anything and was wondering if one
>>> can run FreeBSD on it. For a start I thought of just a NFS boot. I
>>> started with the AR71XX_BASE config file and removed the USB and
>>> other stuff that I think I do not need and can get it load the kernel
>>> and start it. But it looks like there is a problem with the ethernet
>>> because I get stuck at:
>>>
>>> Timecounters tick every 1.000 msec
>>> Sending DHCP Discover packet from interface arge0 (00:0c:42:90:f9:de)
>>> arge0: link state changed to DOWN
>>> arge0: link state changed to UP
>>> DHCP/BOOTP timeout for server 255.255.255.255
>>> DHCP/BOOTP timeout for server 255.255.255.255
>>> ...
>>>
>>> This just keeps on repeating.
>>>
>>> Maybe I need some specific setup for the ethernet / phy. Anybody with
>>> ideas?
>>>
>
> Yeah, sorry for the delay...
>
> It's been a while since the last boot of my RB433UAH, so my kernel and
> hints are not really updated.
>
> But back then, i have this setup for the PHYs:
>
>
> # arge0
> hint.arge.0.at="nexus0"
> hint.arge.0.maddr=0x19000000
> hint.arge.0.msize=0x1000
> hint.arge.0.irq=2
> # PHY0, PHY1
> hint.arge.0.phymask=0x03
>
> # arge1
> hint.arge.1.at="nexus0"
> hint.arge.1.maddr=0x1A000000
> hint.arge.1.msize=0x1000
> hint.arge.1.irq=3
> # PHY4
> hint.arge.1.phymask=0x10
>
>
> Note that on RB433,RB450 the wan port is connected to arge1 and not to
> arge0 as usually, so you need to adjust your bootp setup.
>
> In order to keep the original mac address you'll the following patch:
> http://loos.no-ip.org/rb/routerboot.diff and then add 'options
> AR71XX_ROUTERBOOT' to kernel file.
Thnx!
I applied your patch on latest current. And your hint file plus the
options define.
But I am having trouble booting from nfs. kernel boots fine, except
arge1 is can't attach:
arge1: <Atheros AR71xx built-in ethernet interface> at mem
0x1a000000-0x1a000fff irq 3 on nexus0
arge1: finishing attachment, phymask 0010, proxy null
arge1: unable to attach PHY 4: 6
device_attach: arge1 attach returned 6
And I get:
Sending DHCP Discover packet from interface arge0 (d4:ca:6d:57:dc:d4)
arge0: link state changed to DOWN
DHCP/BOOTP timeout for server 255.255.255.255
DHCP/BOOTP timeout for server 255.255.255.255
...
I don't see any activity in tcpdump.
attaching my config & hints file based on AR71XX.
br,
#
# AR71XX -- Kernel configuration file for FreeBSD/MIPS for Atheros 71xx systems
#
# This includes all the common drivers for the AR71XX boards along with
# the usb, net80211 and atheros driver code.
#
# $FreeBSD$
#
machine mips mips
ident RB433AH_MFS
cpu CPU_MIPS4KC
makeoptions KERNLOADADDR=0x80050000
options HZ=1000
options HWPMC_HOOKS
files "../atheros/files.ar71xx"
# For now, hints are per-board.
hints "RB433AH.hints"
makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols
# Build these as modules so small platform builds will have the
# modules already built.
makeoptions MODULES_OVERRIDE="random gpio ar71xx if_gif if_gre
if_bridge bridgestp usb wlan wlan_xauth wlan_acl wlan_wep wlan_tkip
wlan_ccmp wlan_rssadapt wlan_amrr ath ath_pci"
options DDB
options KDB
options SCHED_4BSD #4BSD scheduler
options INET #InterNETworking
#options INET6 # IPv6
# options NFS_CL #Network Filesystem Client
options PSEUDOFS #Pseudo-filesystem framework
options _KPOSIX_PRIORITY_SCHEDULING #Posix P1003_1B real-time extensions
# options NFS_LEGACYRPC
# Debugging for use in -current
options INVARIANTS
options INVARIANT_SUPPORT
options WITNESS
options WITNESS_SKIPSPIN
options DEBUG_REDZONE
options DEBUG_MEMGUARD
options FFS #Berkeley Fast Filesystem
# options SOFTUPDATES #Enable FFS soft updates support
# options UFS_ACL #Support for access control lists
# options UFS_DIRHASH #Improve performance on big
directories
# options MSDOSFS # Read MSDOS filesystems; useful for USB/CF
device pci
device ar71xx_pci
# RTC - requires hackery in the spibus code to work
device pcf2123_rtc
# GEOM modules
device geom_redboot # to get access to the SPI flash partitions
device geom_uzip # compressed in-memory filesystem hackery!
options GEOM_UZIP
## Boot from the first MFS uzip
#options ROOTDEVNAME=\"ufs:md0.uzip\"
#options MD_ROOT
#options MD_ROOT_SIZE="9000"
# Boot from NFS
options NFSLOCKD #Network Lock Manager
options NFSCLIENT #Network Filesystem Client
options NFS_ROOT
options BOOTP
options BOOTP_NFSROOT
options BOOTP_NFSV3
#options BOOTP_WIRED_TO=arge1
options BOOTP_COMPAT
options ROOTDEVNAME=\"nfs:172.16.0.101:/usr/obj/rb433ah/nfs\"
# 802.11 framework
options IEEE80211_DEBUG
options IEEE80211_ALQ
options IEEE80211_SUPPORT_MESH
# This option is currently broken for if_ath_tx.
options IEEE80211_SUPPORT_TDMA
options IEEE80211_AMPDU_AGE
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 wlan_acl # 802.11 ACL support
# Atheros wireless NICs
device ath # Atheros interface support
device ath_pci # Atheros PCI/Cardbus bus
options ATH_DEBUG
options ATH_DIAGAPI
options ATH_ENABLE_11N
options AH_DEBUG
options AH_DEBUG_ALQ
options ALQ
device ath_hal
option AH_SUPPORT_AR5416
device ath_rate_sample
option AH_RXCFG_SDMAMW_4BYTES
option AH_AR5416_INTERRUPT_MITIGATION
# There's no DFS radar detection support yet so this won't actually
# detect radars. It however does enable the rest of the channel change
# machinery so DFS can be debugged.
option ATH_ENABLE_DFS
device mii
device arge
option ARGE_DEBUG
#device usb
#options USB_EHCI_BIG_ENDIAN_DESC # handle big-endian byte order
#options USB_DEBUG
#options USB_HOST_ALIGN=32 # AR71XX (MIPS in general?) requires this
#device ehci
device scbus
#device umass
device da
# On-board SPI flash
device spibus
device ar71xx_spi
device mx25l
device ar71xx_wdog
device uart
device uart_ar71xx
device loop
device ether
device md
device bpf
device random
device if_bridge
device gif # ip[46] in ip[46] tunneling protocol
device gre # generic encapsulation - only for IPv4 in IPv4 though atm
options ARGE_DEBUG # Enable if_arge debugging for now
# Enable GPIO
device gpio
device gpioled
options AR71XX_ROUTERBOOT
#
# $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
#ohci
hint.ohci.0.at="apb0"
hint.ohci.0.maddr=0x1c000000
hint.ohci.0.msize=0x01000000
hint.ohci.0.irq=6
#ehci
hint.ehci.0.at="nexus0"
hint.ehci.0.maddr=0x1b000000
hint.ehci.0.msize=0x01000000
hint.ehci.0.irq=1
# pci
hint.pcib.0.at="nexus0"
hint.pcib.0.irq=0
# arge0
hint.arge.0.at="nexus0"
hint.arge.0.maddr=0x19000000
hint.arge.0.msize=0x1000
hint.arge.0.irq=2
# PHY0, PHY1
hint.arge.0.phymask=0x03
# arge0 mdio bus
hint.argemdio.0.at="nexus0"
hint.argemdio.0.maddr=0x19000000
hint.argemdio.0.msize=0x1000
hint.argemdio.0.order=0
# arge0: dedicated switch port
hint.arge.0.phymask=0x00 # PHY4
hint.arge.0.miimode=3 # RGMII
hint.arge.0.mdio=mdioproxy1 # .. off of the switch mdiobus
# phymask, media and fduplex depend upon the specific
# board.
# So each board will override the settings as needed.
# arge1
hint.arge.1.at="nexus0"
hint.arge.1.maddr=0x1A000000
hint.arge.1.msize=0x1000
hint.arge.1.irq=3
# PHY4
hint.arge.1.phymask=0x10
#hint.arswitch.0.is_7240=0
#hint.arswitch.0.numphys=4
#hint.arswitch.0.phy4cpu=1
#hint.arswitch.0.is_rgmii=1
#hint.arswitch.0.is_gmii=0
# SPI flash
hint.spi.0.at="nexus0"
hint.spi.0.maddr=0x1f000000
hint.spi.0.msize=0x10
hint.mx25l.0.at="spibus0"
hint.mx25l.0.cs=0
# Watchdog
hint.ar71xx_wdog.0.at="nexus0"
# GPIO
hint.gpio.0.at="apb0"
hint.gpio.0.maddr=0x18040000
hint.gpio.0.msize=0x1000
hint.gpio.0.irq=2
# Each board should override the GPIO bus pins with the configuration
# relevant to it. Thus no pins are defined here.
# hwpmc device
hint.ar71xx_pmc.0.at="apb0"
hint.ar71xx_pmc.0.irq=5
>
> The etherswitch doesn't support the switch chip on RB433 right now,
> but i'm working on this.
>
> Luiz
--
Monthadar Al Jaberi
More information about the freebsd-mips
mailing list