Date: Fri, 19 Jul 2013 11:13:11 -0700 From: hiren panchasara <hiren.panchasara@gmail.com> To: Adrian Chadd <adrian@freebsd.org> Cc: freebsd-embedded <freebsd-embedded@freebsd.org> Subject: Re: Making Picostation m2HP work Message-ID: <CALCpEUHEPRDAiCZ2-hFwD1sPPQHqmNVA=E8sJREm5qmB%2BxF5cA@mail.gmail.com> In-Reply-To: <CAJ-VmonxVF6GQXEZod9XajAK00i9ZP6=s3SSCDEL%2BJR6kgLVWQ@mail.gmail.com> References: <CALCpEUHxqyZb1Y5WqsuxjvwY2Pd_xN2%2BoTgsew0DwdRMC6=5Nw@mail.gmail.com> <CAJ-VmomtCNq3KUjVfcaLGjnSLjnvBWKzARs8TzebmN9MdMFkcA@mail.gmail.com> <CALCpEUGmtpVL=Y5Uqiz_h4%2BKgBDH9%2B=vC_DJHyU5rvOGOdiSag@mail.gmail.com> <CALCpEUE%2BDMq9KYBNZfJLx6DTxAY%2B1gv3uLQ3OtO-N1W1zRKL=Q@mail.gmail.com> <CAJ-VmokNR6VzdG7EC0jpEQN40He%2BUR=Y99dmzakXMfO3ojHjqw@mail.gmail.com> <CALCpEUFiQp-UrZHe9X-zxneQUc9p%2BX1Ojbp0F865a1QTPicp%2Bg@mail.gmail.com> <CALCpEUGbk8mCFqOUp6WxfdcH-kveudG-f4S0muUg4aYy0uqBtA@mail.gmail.com> <CAJ-VmomsSBSs9QumGc6z=aYQ0OUqjGcxBnnsy%2B1NR_F83KUzxg@mail.gmail.com> <CALCpEUG4FR2qugb-ZYHG%2BJ7xcOL34edkPx41yOwU7qK-BynGOw@mail.gmail.com> <CAJ-VmokPNDgkdziRFr3-MnDZudskGb0ykRk9jfY1nWhrxBZEKw@mail.gmail.com> <CAB=2f8yPSSpOZBwOv8Xr5=OtM%2BMq0-h-%2B9-tKTgjR7LvCfX6jQ@mail.gmail.com> <CALCpEUFi6qr8Cox9PpzmkPk69gb0hrhM1vepE81gqot2cVy7tQ@mail.gmail.com> <CAJ-VmonxVF6GQXEZod9XajAK00i9ZP6=s3SSCDEL%2BJR6kgLVWQ@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Jul 19, 2013 at 12:02 AM, Adrian Chadd <adrian@freebsd.org> wrote: > Cool, so next is populating the MAP device fields in a kernel config > hints file with the relevant flash offsets. > > That way you can setup the rootfs right. alright!! > > What's 'printenv' from uboot show? ar7240> printenv bootdelay=1 baudrate=115200 ethaddr=00:15:6d:0d:00:00 mtdids=nor0=ar7240-nor0 partition=nor0,0 mtddevnum=0 mtddevname=u-boot filesize=10000 fileaddr=81000000 serverip=192.168.1.254 ethact=eth0 mtdparts=mtdparts=ar7240-nor0:256k(u-boot),64k(u-boot-env),1024k(kernel),5760k(rootfs),256k(cfg),64k(EEPROM) bootcmd=bootm 0x9f050000 bootargs=console=tty0 root=31:03 rootfstype=squashfs init=/init ipaddr=192.168.1.20 stdin=serial stdout=serial stderr=serial Environment size: 452/65532 bytes ar7240> Thanks for your help :-) cheers, Hiren > > > -adrian > > On 17 July 2013 16:54, hiren panchasara <hiren.panchasara@gmail.com> wrote: >> On Tue, Jul 16, 2013 at 6:48 AM, Luiz Otavio O Souza <lists.br@gmail.com> wrote: >>> On 16 July 2013 00:52, Adrian Chadd <adrian@freebsd.org> wrote: >>>> >>>> Right, >>>> >>>> you have to get the mdio bus configured up right, then attach arswitch to >>>> it. >>>> >>>> Then you tell arge0/arge1 what PHY it speaks to, via Stefan's mdioproxy >>>> stuff. >>>> >>>> _then_ arge0/arge1 will come up. >>>> >>>> Now, as for how you do that - i'd have to re-read the datasheet and >>>> write some documentation: >>>> >>>> * one of them (I think arge0) is directly glued to arswitch with no >>>> PHY per se - it's hard-programmed with a MIIbus mode (RMGII I think?) >>>> and 100/full or 1000/full >>> >>> >>> It's usually the arge1 which is dedicated to switch and it's hard-programmed >>> as 1000/full (even when the switch ports are just 10/100). >>> >>> arge0 is the 'WAN' port (using the dedicated PHY 4). >>> >>> The MDIO is at arge0 on ar7240 and at arge1 on ar7241. >>> >>> [...] >>>> >>>> >>>> I'll follow this up with a post explaining how the miibus, mdiobus, >>>> mdioproxy stuff and how arswitch is configured. Then I'll braindump >>>> that into the wiki. >>> >>> >>> Thanks Adrian! >>> >>> Stefan also has a nice documentation about how this stuff fits together: >>> >>> https://wiki.freebsd.org/StefanBethke/EtherSwitch >>> http://www.bsdcan.org/2012/schedule/attachments/201_BSDCan-2012-Bethke-Ethernet-Switch-Framework.pdf >>> >> >> Thanks a lot Adrian and Luiz for the explanation. >> >> I've built just the kernel with in-tree (-head) kernconf AP91 and >> hints file from Luiz: http://pastebin.com/Z647yiZh >> >> And I am seeing arge0/1 attaching: >> >> ar7240> go 80050100 >> ## Starting application at 0x80050100 ... >> CPU platform: Atheros AR7241 rev 1 >> CPU Frequency=390 MHz >> CPU DDR Frequency=390 MHz >> CPU AHB Frequency=195 MHz >> platform frequency: 390000000 >> CPU reference clock: 5 MHz >> arguments: >> a0 = 00000001 >> a1 = 81f4fcbc >> a2 = 00000010 >> a3 = fffffffe >> Cmd line:argv is invalid >> Environment: >> envp is invalid >> Cache info: >> picache_stride = 4096 >> picache_loopcount = 16 >> pdcache_stride = 4096 >> pdcache_loopcount = 8 >> cpu0: MIPS Technologies processor v116.147 >> MMU: Standard TLB, 16 entries >> L1 i-cache: 4 ways of 512 sets, 32 bytes per line >> L1 d-cache: 4 ways of 256 sets, 32 bytes per line >> Config1=0x9ee3519e<PerfCount,WatchRegs,MIPS16,EJTAG> >> Config3=0x20 >> KDB: debugger backends: ddb >> KDB: current backend: ddb >> Copyright (c) 1992-2013 The FreeBSD Project. >> Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 >> The Regents of the University of California. All rights reserved. >> FreeBSD is a registered trademark of The FreeBSD Foundation. >> FreeBSD 10.0-CURRENT #1 r252757M: Wed Jul 17 16:45:15 PDT 2013 >> root@flymockour-l7.corp.yahoo.com:/usr/home/hirenp/head/obj/mips.mips/usr/home/hirenp/head/sys/AP91 >> mips >> gcc version 4.2.1 20070831 patched [FreeBSD] >> real memory = 16777216 (16384K bytes) >> avail memory = 11968512 (11MB) >> random device not loaded; using insecure entropy >> nexus0: <MIPS32 root nexus> >> clock0: <Generic MIPS32 ticker> on nexus0 >> Timecounter "MIPS32" frequency 195000000 Hz quality 800 >> Event timer "MIPS32" frequency 195000000 Hz quality 800 >> argemdio0: <Atheros AR71xx built-in ethernet interface, MDIO >> controller> at mem 0x1a000000-0x1a000fff on nexus0 >> mdio0: <MDIO> on argemdio0 >> mdioproxy0: <MII/MDIO proxy, MDIO side> on mdio0 >> arswitch0: <Atheros AR7240 Ethernet Switch> on mdio0 >> miibus0: <MII bus> on arswitch0 >> ukphy0: <Generic IEEE 802.3u media interface> PHY 0 on miibus0 >> ukphy0: none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, >> 1000baseT-FDX, 1000baseT-FDX-master, auto >> miibus1: <MII bus> on arswitch0 >> ukphy1: <Generic IEEE 802.3u media interface> PHY 1 on miibus1 >> ukphy1: none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, >> 1000baseT-FDX, 1000baseT-FDX-master, auto >> miibus2: <MII bus> on arswitch0 >> ukphy2: <Generic IEEE 802.3u media interface> PHY 2 on miibus2 >> ukphy2: none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, >> 1000baseT-FDX, 1000baseT-FDX-master, auto >> miibus3: <MII bus> on arswitch0 >> ukphy3: <Generic IEEE 802.3u media interface> PHY 3 on miibus3 >> ukphy3: none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, >> 1000baseT-FDX, 1000baseT-FDX-master, auto >> mdio1: <MDIO> on arswitch0 >> mdioproxy1: <MII/MDIO proxy, MDIO side> on mdio1 >> etherswitch0: <Switch controller> on arswitch0 >> apb0 at irq 4 on nexus0 >> uart0: <16550 or compatible> on apb0 >> uart0: console (115200,n,8,1) >> pcib0 at irq 0 on nexus0 >> pcib0: found EEPROM at 0x1fff1000 on 0.0.0 >> pcib0: EEPROM firmware: 0x1fff1000 @ 4096 bytes >> pcib0: device EEPROM 'pcib.0.bus.0.0.0.eeprom_firmware' registered >> pci0: <PCI bus> on pcib0 >> pci0: <network> at device 0.0 (no driver attached) >> arge0: <Atheros AR71xx built-in ethernet interface> at mem >> 0x19000000-0x19000fff irq 2 on nexus0 >> arge0: Overriding MAC from EEPROM >> miiproxy0: <MII/MDIO proxy, MII side> on arge0 >> miiproxy0: attached to target mdio1 >> arge0: finishing attachment, phymask 0010, proxy set >> miibus4: <MII bus> on miiproxy0 >> ukphy4: <Generic IEEE 802.3u media interface> PHY 4 on miibus4 >> ukphy4: none, 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, >> 1000baseT-FDX, 1000baseT-FDX-master, auto >> arge0: Ethernet address: 8e:42:00:5c:3c:04 >> arge1: <Atheros AR71xx built-in ethernet interface> at mem >> 0x1a000000-0x1a000fff irq 3 on nexus0 >> arge1: finishing attachment, phymask 0000, proxy null >> arge1: Ethernet address: 8e:42:00:5c:3c:05 >> spi0: <AR71XX SPI> at mem 0x1f000000-0x1f00000f on nexus0 >> spibus0: <spibus bus> on spi0 >> mx25l0: <M25Pxx Flash Family> at cs 0 on spibus0 >> mx25l0: w25q64, sector 65536 bytes, 128 sectors >> ar71xx_wdog0: <Atheros AR71XX watchdog timer> on nexus0 >> ar71xx_wdog0: Previous reset was due to watchdog timeout >> Timecounters tick every 1.000 msec >> arswitch0port1: link state changed to DOWN >> arswitch0port2: link state changed to DOWN >> arswitch0port3: link state changed to DOWN >> arswitch0port4: link state changed to DOWN >> Trying to mount root from ufs:/dev/map/rootfs.uncompress []... >> mountroot: waiting for device /dev/map/rootfs.uncompress ... >> Mounting from ufs:/dev/map/rootfs.uncompress failed with error 19. >> >> Loader variables: >> >> Manual root filesystem specification: >> <fstype>:<device> [options] >> Mount <device> using filesystem <fstype> >> and with the specified (optional) option list. >> >> eg. ufs:/dev/da0s1a >> zfs:tank >> cd9660:/dev/acd0 ro >> (which is equivalent to: mount -t cd9660 -o ro /dev/acd0 /) >> >> ? List valid disk boot devices >> . Yield 1 second (for background tasks) >> <empty line> Abort manual input
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CALCpEUHEPRDAiCZ2-hFwD1sPPQHqmNVA=E8sJREm5qmB%2BxF5cA>