• Home
  • Help
  • Search
  • Login
  • Register
Pages: [1] 2
Author Topic: ethernet stopped working after u-boot upgrade  (Read 10812 times)
niam
Newbie
*

Karma: 2
Posts: 10


View Profile
« 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

fragfutter
Sr. Member
****

Karma: 12
Posts: 280


View Profile
« 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


View Profile
« 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


View Profile
« Reply #3 on: May 26, 2010, 01:23:54 PM »

Hello! Here's printenv from u-boot:
Code:
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:
Code:
                                                                                                                                                       
         __  __                      _ _                                                                                                               
        |  \/  | __ _ _ ____   _____| | |                                                                                                               
        | |\/| |/ _` | '__\ \ / / _ \ | |
        | |  | | (_| | |   \ 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

fragfutter
Sr. Member
****

Karma: 12
Posts: 280


View Profile
« 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


View Profile
« 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


View Profile
« 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


View Profile
« 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


View Profile
« 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

* u-boot.bin.openrd (460.24 KB - downloaded 493 times.)
Logged

shep
Newbie
*

Karma: 1
Posts: 5


View Profile
« Reply #9 on: May 30, 2010, 05:04:39 AM »

You, sir, are a gentleman - many thanks  Grin
Logged

shep
Newbie
*

Karma: 1
Posts: 5


View Profile
« 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


View Profile
« 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


View Profile
« 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 Undecided

It would appear that the offending lines are here:

Code:
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


View Profile
« 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:

Code:
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 Grin

Cheers all!
--Harry
« Last Edit: June 02, 2010, 06:17:53 PM by shep » Logged

niam
Newbie
*

Karma: 2
Posts: 10


View Profile
« 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

Pages: [1] 2
Print
Jump to: