niam
Newbie
Karma: 2
Posts: 10
|
 |
« on: May 26, 2010, 02:27:15 AM » |
|
After I've updated uboot to 3.4.19 both GbEth0/GBEth1 stopped working on openrd-client. Downgrading uboot to one from the Downloads section at http://code.google.com/p/openrd/ using openocd didn't help. Ethernet doesn't work neither in u-boot nor in linux. Thank you for any suggestions. -- Dmytro Milinevskyy
|
|
|
|
|
Logged
|
|
|
|
|
|
|
 |
« Reply #1 on: May 26, 2010, 02:43:02 AM » |
|
is the u-boot environment variable ethaddr set?
|
|
|
|
|
Logged
|
|
|
|
|
niam
Newbie
Karma: 2
Posts: 10
|
 |
« Reply #2 on: May 26, 2010, 03:00:43 AM » |
|
Yes, both ethaddr and ath1addr are set.
As soon as I will get the output from printenv(currently I don't have an access to the target board) I will post here.
Thank you.
|
|
|
|
|
Logged
|
|
|
|
|
niam
Newbie
Karma: 2
Posts: 10
|
 |
« Reply #3 on: May 26, 2010, 01:23:54 PM » |
|
Hello! Here's printenv from u-boot: Marvell>> printenv baudrate=115200 loads_echo=0 rootpath=/mnt/ARM_FS/ netmask=255.255.255.0 CASset=min MALLOC_len=1 ethprime=egiga0 bootargs_root=root=/dev/nfs rw bootargs_end=:::DB88FXX81:eth0:none image_name=uImage standalone=fsload 0x2000000 $(image_name);setenv bootargs $(console) root=/dev/mtdblock0 rw ip=$(ipaddr):$(serverip)$(bootargs_end) $(mvPhoneConfig); bootm 0x2000000; ethaddr=00:50:43:36:12:03 ethmtu=1500 eth1addr=00:50:43:58:12:03 eth1mtu=1500 mvPhoneConfig=mv_phone_config=dev0:fxs,dev1:fxs mvNetConfig=mv_net_config=(00:11:88:0f:62:81,0:1:2:3),mtu=1500 usb0Mode=host yuk_ethaddr=00:00:00:EE:51:81 nandEcc=1bit netretry=no autoload=no ipaddr=192.168.1.1 serverip=192.168.1.2 ethact=egiga0 bootargs=console=ttyS0,115200 mtdparts=nand_mtd:0x400000@0x100000(uImage),0x1fb00000@0x500000(rootfs) rw ubi.mtd=1,2048 root=ubi0:rootfs rootfstype=ubifs fb=xgifb bootcmd=nand read.e 0x800000 0x100000 0x400000; bootm 0x800000 run_diag=no console=console=ttyS0,115200 arcNumber=10 loadaddr=0x2000000 mtd1Size=0x400000 filesize=0x45DD000 rcvrip=192.168.1.2 stdin=serial stdout=serial stderr=serial mainlineLinux=no enaMonExt=no enaCpuStream=no enaWrAllo=no pexMode=RC disL2Cache=no setL2CacheWT=yes disL2Prefetch=yes enaICPref=yes enaDCPref=yes sata_dma_mode=yes netbsd_en=no vxworks_en=no bootdelay=3 disaMvPnp=no enaAutoRecovery=yes
Here's u-boot start-up output: __ __ _ _ | \/ | __ _ _ ____ _____| | | | |\/| |/ _` | '__\ \ / / _ \ | | | | | | (_| | | \ V / __/ | | |_| |_|\__,_|_| \_/ \___|_|_| _ _ ____ _ | | | | | __ ) ___ ___ | |_ | | | |___| _ \ / _ \ / _ \| __| | |_| |___| |_) | (_) | (_) | |_ \___/ |____/ \___/ \___/ \__| ** MARVELL BOARD: OpenRD-Client LE
U-Boot 1.1.4 (May 26 2010 - 00:09:51) Marvell version: 3.4.16
U-Boot code: 00600000 -> 0067FFF0 BSS: -> 006CEE80
Soc: 88F6281 A0 (DDR2) CPU running @ 1200Mhz L2 running @ 400Mhz SysClock = 400Mhz , TClock = 200Mhz
DRAM CAS Latency = 5 tRP = 5 tRAS = 18 tRCD=6 DRAM CS[0] base 0x00000000 size 256MB DRAM CS[1] base 0x10000000 size 256MB DRAM Total size 512MB 16bit width Flash: 0 kB Addresses 8M - 0M are saved for the U-Boot usage. Mem malloc Initialization (8M - 7M): Done NAND:512 MB
Checking for BootROM Routine Errors
No. of BootROM routine retries: 8 NAND: Nand ECC error
Running POST...
DDR2 data bus test PASSED
DDR2 address bus test PASSED
UART 1 internal loopback test on baudrate 9600 PASSED UART 1 internal loopback test on baudrate 19200 PASSED UART 1 internal loopback test on baudrate 115200 PASSED
Device: 0, Size: 512 MB, Page Size: 2 KB, Block Size: 128 KB NAND detection test PASSED
NAND bad-block detection test PASSED
RTC test PASSED
6/6 tests PASSED POST completed
CPU : Marvell Feroceon (Rev 1)
Streaming disabled Write allocate disabled
Module 0 is AUDIO Module 1 is RGMII
USB 0: host mode PCI 0: PCI Express Root Complex Interface PEX interface detected Link X1 Net: egiga0 [PRIME], egiga1 Hit any key to stop autoboot: 0
Let me know what can I do here. I wonder why ethernen is not working both in u-boot and in linux. -- Dmytro
|
|
|
|
|
Logged
|
|
|
|
|
|
|
 |
« Reply #4 on: May 26, 2010, 01:41:34 PM » |
|
in u-boot you can run "dhcp" (at least i think also the guruplug has this, i work with different embedded systems and sometimes mix the different u-boot specials) or you could set ipaddr and netmask and then run ping (from u-boot). From you printenv there is an ipaddr but it could collide with your normal gateway.
how do you determine that ethernet is not working in linux? You don't get an IP (by DHCP) and therefore can't ping? Then i would guess your mac address changed. Check the content of /etc/network/interfaces. Check if you have interface but they are simply not configures (ifconfig eth0, ifconfig eth1)
|
|
|
|
|
Logged
|
|
|
|
|
niam
Newbie
Karma: 2
Posts: 10
|
 |
« Reply #5 on: May 26, 2010, 02:08:19 PM » |
|
Here's configuration in linux on target: ip a 1: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 532 link/ether 00:50:43:36:12:03 brd ff:ff:ff:ff:ff:ff inet 192.168.1.1/24 brd 192.168.1.255 scope global eth0 2: eth1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 532 link/ether 00:50:43:58:12:03 brd ff:ff:ff:ff:ff:ff inet 192.168.2.1/24 brd 192.168.2.255 scope global eth1
looks like eth0 has link up.
here on PC: ip a show dev eth0 2: eth0: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000 link/ether 00:1a:4b:63:6c:14 brd ff:ff:ff:ff:ff:ff inet 192.168.1.2/24 scope global eth0
The target and PC are connected via switch(tried also direct connection - the same behavior).
When I'm trying to ping host from target I see that only led for the target is blinking. While when I'm trying to ping target from host both leds are blinking.
Through /proc/net/dev on host I see Tx packets but nothing in Rx. But on target both Rx and Tx counters are being incremented.
|
|
|
|
|
Logged
|
|
|
|
|
niam
Newbie
Karma: 2
Posts: 10
|
 |
« Reply #6 on: May 26, 2010, 09:15:29 PM » |
|
Hello!
I've fixed the problem. I have openrd-ultimate, but I didn't think that's would be an issue. On this board eth0 and eth1 have PHY addresses 0 and 1 accordingly. So I had to modify u-boot BSP(by default 0x8 and 0x18 are used for openrd).
I wonder why eth didn't work in linux. Linux driver(at least linux kernel from the box) doesn't initialize PHY itself?
I hope there won't be any other surprizes.
-- Dima
|
|
|
|
|
Logged
|
|
|
|
|
shep
Newbie
Karma: 1
Posts: 5
|
 |
« Reply #7 on: May 29, 2010, 06:02:21 AM » |
|
Hi Dima,
Hehe I wish I'd found this post five minutes ago! Just got myself into exactly the same state as you were in.
You don't happen to have a copy of your modified uBoot image available do you? I'm new to the whole cross-compiling game and would rather have a bootloader that was built by someone who knows what they're doing (i.e. not me!)
Cheers, Harry
|
|
|
|
|
Logged
|
|
|
|
|
niam
Newbie
Karma: 2
Posts: 10
|
 |
« Reply #8 on: May 29, 2010, 01:40:27 PM » |
|
Hi, Harry!
I've attached the bootrom to the post.
Please note that it's modified so it w/o recover and monitoring support.
If you want the standard but with quirk for openrd-ultimate feel free to ask for it. I will build it for you then.
-- Dima
|
|
|
|
Logged
|
|
|
|
|
shep
Newbie
Karma: 1
Posts: 5
|
 |
« Reply #9 on: May 30, 2010, 05:04:39 AM » |
|
You, sir, are a gentleman - many thanks 
|
|
|
|
|
Logged
|
|
|
|
|
shep
Newbie
Karma: 1
Posts: 5
|
 |
« Reply #10 on: June 01, 2010, 12:06:49 PM » |
|
Hi Dima,
Thanks again for the firmware image - it worked a treat and I now have network back again in uBoot! Cheers!
--Harry
|
|
|
|
|
Logged
|
|
|
|
|
niam
Newbie
Karma: 2
Posts: 10
|
 |
« Reply #11 on: June 01, 2010, 01:12:51 PM » |
|
Hi Harry!
Glad that it helped.
Best regards.
-- Dima
|
|
|
|
|
Logged
|
|
|
|
|
shep
Newbie
Karma: 1
Posts: 5
|
 |
« Reply #12 on: June 02, 2010, 05:45:01 PM » |
|
OK - stuck again :-) I've managed to build a kernel with support for every bit of hardware the OpenRD-Ultimate has using the walkthrough here: http://groups.google.com/group/openrd/web/add-audio-video-support-to-2-6-33-kernel, however ethertnet gets wedged in what appears to be the same state as uBoot before the BSP was tweaked by Dima... Presumably there's an address that needs tweaking in arch/arm/mach-kirkwood/openrd_client-setup.c, but I have no clue as to what that tweak needs to be  It would appear that the offending lines are here: static struct mv643xx_eth_platform_data openrd_client_ge00_data = { .phy_addr = MV643XX_ETH_PHY_ADDR(8), };
static struct mv643xx_eth_platform_data openrd_client_ge01_data = { .phy_addr = MV643XX_ETH_PHY_ADDR(24), }; ...but short of blindly stuffing random values in here I don't know where to take it - anyone have any ideas? Cheers, Harry
|
|
|
|
|
Logged
|
|
|
|
|
shep
Newbie
Karma: 1
Posts: 5
|
 |
« Reply #13 on: June 02, 2010, 06:01:36 PM » |
|
Hehe re-read Dima's original post - PHY addresses are now 0 and 1, not 8 and 24, so offending lines now read: static struct mv643xx_eth_platform_data openrd_client_ge00_data = { .phy_addr = MV643XX_ETH_PHY_ADDR(0), };
static struct mv643xx_eth_platform_data openrd_client_ge01_data = { .phy_addr = MV643XX_ETH_PHY_ADDR(1), }; Ethernet, SATA, USB, Audio and Video now all work a treat  Cheers all! --Harry
|
|
|
|
« Last Edit: June 02, 2010, 06:17:53 PM by shep »
|
Logged
|
|
|
|
|
niam
Newbie
Karma: 2
Posts: 10
|
 |
« Reply #14 on: June 02, 2010, 11:18:28 PM » |
|
Exactly =)
However I haven't yet tried video.
Currently trying to build own lightweight environment for the target.
|
|
|
|
|
Logged
|
|
|
|
|
|