Hello out there!

Here in short my question, I hope you can help me ...
I've got a IQ80310 XScale board running with linux-2.4.17-rmk5.iop310.1
and the mvista-jffs-rootfs image (downloads see below). Now I tried both,
Intel NIC 82543 and 82544, with the e1000-4.1.7 driver from intel. Not one
ping between the IQ and my host got an answer. What's wrong?

Below I summarized the complete history, everything which might be
helpfull - in hope someone of you is able to help me working out my
problem ... here we go

The sources:
--<cut>--
Kernel:
ftp://ftp.kernel.org/pub/linux/kernel/v2.4/linux-2.4.17.tar.bz2
ARM-Patch:
ftp://ftp.arm.linux.org.uk/pub/armlinux/kernel/v2.4/patch-2.4.17-rmk5.gz
IQ80310-Patch:
ftp://source.mvista.com/pub/xscale/iop310/patch-2.4.17-rmk5-iop310.1.gz
JFFS-Image:
ftp://source.mvista.com/pub/xscale/iq80310/jffs.img

Intel e1000 driver for NIC82543:
http://downloadfinder.intel.com/scripts-df/proc/T8Clearance.asp?
        url=/2897/eng/e1000-4.1.7.tar.gz
--</cut>--

The Host:
Dual PII 350MHz, SuSe 7.3, Kernel 2.4.17

The Cross Compiler:
I didn't use the GNUpro-Toolkit, it didn't bother to do what I wanted it
to do, so I used:
--<cut>--
netarm:/usr/local/arm/2.95.3/bin # ./arm-linux-gcc -dumpversion
2.95.3
netarm:/usr/local/arm/2.95.3/bin # ./arm-linux-gcc -dumpmachine
arm-linux
netarm:/usr/local/arm/2.95.3/bin # ./arm-linux-gcc -dumpspecs
*asm:
%{mbig-endian:-EB} %{mcpu=*:-m%*} %{march=*:-m%*}  %{mapcs-*:-mapcs-%*}
%{mthumb
.... [lots of output I'm not sure if really necessary to know ]
--</cut>--
I used this one already to compile tools for a strongarm. Now, I used it
to compile both, kernel and e1000.o for xscale.

Compilation:
After patching the kernel I did
        make iq80310_config
        make oldconfig
        make config
        (add jffs-fs and
                Kernel command line: console=ttyS0,115200 root=/dev/mtdblock3)
        edit Makefile (path to cross-compiler as mentioned above)
        make dep
        make bzImage

The kernel builds neatly.
The e1000.o Makefile needed again a few adjustments, such as path to
kernel tree and to cross-compiler, but then compiled fine, too.
--<cut>--
**************************************************
** e1000.o built for 2.4.17-rmk5-iop310.1
** SMP               Disabled
** iANS hooks        Disabled
** Pro Diagnostics   Enabled
**************************************************
--</cut>--

Then loading both, the kernel and the image, first into RAM, then writing
to flash. The current flash contents:
--<cut>--
RedBoot> fi li
Name              FLASH addr  Mem addr    Length      Entry point
RedBoot           0x00000000  0x00000000  0x00040000  0x00000000
RedBoot[backup]   0x00040000  0x00040000  0x00040000  0x00000000
RedBoot config    0x007DF000  0x007DF000  0x00001000  0x00000000
FIS directory     0x007E0000  0x007E0000  0x00020000  0x00000000
vmlinuz           0x00080000  0xA1008000  0x000C0000  0x00000000
jffs              0x00160000  0x00160000  0x00600000  0x00000000
--</cut>--

--<cut>--
RedBoot> fi load vmlinuz
RedBoot> go 0xa1008000
--</cut>--

This after a few moments brings up:
--<cut>--
...
INIT: Entering runlevel: 3
Starting system logger:  syslogd
Starting INET services:  inetd

Welcome to MontaVista's XScale Linux port!

xscale login:
--</cut>--

Great! Now, login as root, ftp to the host, get the precompiled
e1000.o and ...
--<cut>--
[root@xscale /root]$insmod e1000.o Intel(R)
PRO/1000 Network Driver - version 4.1.7 Copyright (c) 1999-2002 Intel
Corporation.

Intel(R) PRO/1000 Network Connection
eth1:  Mem:0x8bfe0000  IRQ:17  Speed:N/A  Duplex:N/A

[root@xscale /root]$ifconfig eth1 192.168.1.2
e1000: eth1 NIC Link is Up 1000 Mbps Full Duplex
[root@xscale /root]$ifconfig eth1
eth1      Link encap:Ethernet  HWaddr 00:03:47:40:D2:91
          inet addr:192.168.1.2  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          Interrupt:17 Memory:8bfe0000-8c000000
--</cut>--

BTW, ifconfig the host ...
--<cut>--
eth2      Link encap:Ethernet  HWaddr 00:03:47:40:D6:2F
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:26 errors:0 dropped:0 overruns:0 frame:0
          TX packets:15 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:2006 (1.9 Kb)  TX bytes:1378 (1.3 Kb)
          Interrupt:19 Memory:e1820000-e1840000
--</cut>--

Still everythings seems fine to me. Now, the test (xscale -> host):

--<cut>--
[root@xscale /root]$ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1): 56 data bytes

--- 192.168.1.1 ping statistics ---
8 packets transmitted, 0 packets received, 100% packet loss
--</cut>--

I'm unable to cope with this output from tcpdump, but maybe someone of
yours?
--cut--
netarm:~ # tcpdump -i eth2 -l | tee dump
tcpdump: listening on eth2
11:33:54.221516 0:0:0:0:0:0 sap 54 > 0:0:0:0:0:0 sap 3a rr (r=0,C) len=42
11:33:55.201294 0:0:0:0:0:0 sap 54 > 0:0:0:0:0:0 sap 3a rr (r=0,C) len=42
11:33:56.189066 0:0:0:0:0:0 sap 54 > 0:0:0:0:0:0 sap 3a rr (r=0,C) len=42
11:33:57.176965 0:0:0:0:0:0 sap 54 > 0:0:0:0:0:0 sap 3a rr (r=0,C) len=42
11:33:58.164552 0:0:0:0:0:0 sap 54 > 0:0:0:0:0:0 sap 3a rr (r=0,C) len=42
11:33:59.152316 0:0:0:0:0:0 sap 54 > 0:0:0:0:0:0 sap 3a rr (r=0,C) len=42
11:34:00.140200 0:0:0:0:0:0 sap 54 > 0:0:0:0:0:0 sap 3a rr (r=0,C) len=42
11:34:01.127822 0:0:0:0:0:0 sap 54 > 0:0:0:0:0:0 sap 3a rr (r=0,C) len=42
11:34:02.115621 arp who-has netarm.local tell x1000
11:34:02.115682 arp reply netarm.local is-at 0:3:47:40:d6:2f
11:34:02.115923 34:0:0:2:34:0 null > 0:0:34:0:0:0 sap 45 I (s=0,r=42,C)
len=80
11:34:02.115927 0:0:0:0:20:20 3c:4e:4e:3e:5d:a 5b5b 98:
                         4500 0054 0000 4000 4001 b755 c0a8 0102
                         c0a8 0101 0800 b7c1 4700 0700 d403 0000
                         06a6 0e00 1600 0000 0000 0000 1446 0240
                         4000 0000 0000 0000 0100 0000 085e 0202
                         f8b8 0202 0200 0000 58d4 0140 e8fd ffbf
                         50e0
--</cut>--

The other way round (host -> xscale):
--<cut>--
netarm:~/e1000-4.1.7/src # ping x1000
PING x1000 (192.168.1.2) from 192.168.1.1 : 56(84) bytes of data.

--- x1000 ping statistics ---
4 packets transmitted, 0 received, 100% loss, time 3011ms
--</cut>--

And again tcpdump:
--<cut>--
11:48:50.376546 arp who-has x1000 tell netarm.local
11:48:50.376801 arp who-has netarm.local tell x1000
11:48:50.376858 netarm.local > x1000: icmp: echo request (DF)
11:48:50.376871 arp reply netarm.local is-at 0:3:47:40:d6:2f
11:48:50.377744 x1000 > netarm.local: icmp: echo request [ttl 1]
11:48:51.387995 netarm.local > x1000: icmp: echo request (DF)
11:48:51.388210 x1000 > netarm.local: icmp: echo request [ttl 1]
11:48:52.387992 netarm.local > x1000: icmp: echo request (DF)
11:48:52.388208 x1000 > netarm.local: icmp: echo request [ttl 1]
11:48:53.387999 netarm.local > x1000: icmp: echo request (DF)
11:48:53.388202 x1000 > netarm.local: icmp: echo request [ttl 1]
11:48:55.367956 arp who-has x1000 tell netarm.local
11:48:55.368157 arp who-has netarm.local tell x1000
11:48:55.368193 arp reply netarm.local is-at 0:3:47:40:d6:2f
--</cut>--

if I try now again to ping from xscale to host, tcpdump tells ...
--<cut>--
11:50:06.094583 34:0:0:2:34:0 null > 0:0:34:0:0:0 sap c0 I (s=0,r=0,C) len=80
11:50:07.082353 34:0:0:2:34:0 null > 0:0:34:0:0:0 sap c0 I (s=0,r=0,C) len=80
11:50:08.070086 34:0:0:2:34:0 null > 0:0:34:0:0:0 sap c0 I (s=0,r=0,C) len=80
11:50:09.057809 0:0:0:0:0:0 sap 54 > 0:0:0:0:0:0 sap 3a rr (r=0,C) len=42
11:50:09.057895 34:0:0:2:34:0 null > 0:0:34:0:0:0 sap c0 I (s=0,r=0,C) len=80
11:50:10.045553 0:0:0:0:0:0 sap 54 > 0:0:0:0:0:0 sap 3a rr (r=0,C) len=42
11:50:10.045620 34:0:0:2:34:0 null > 0:0:34:0:0:0 sap c0 I (s=0,r=0,C) len=80
11:50:11.033305 0:0:0:0:0:0 sap 54 > 0:0:0:0:0:0 sap 3a rr (r=0,C) len=42
...
--</cut>--

I wrote already the story in short to Dave Jiang who reported to the list
last November he did, what I try to do.

--<Dave>--
> I'd expect to see ARP replies for the ping and not the SAP stuff.
[...]
> There shouldn't be any additional parameters.
[...]
> The only thing I would recommend is to look over the E1000 source and
> make sure there aren't any IA32 dependencies.
--</Dave>--
(BTW, what's this SAP ? I've never seen it before ?!)

OK, grep the sources...
--<cut>--
xscale@netarm:~/e1000-4.1.7/src> grep i386 *
Makefile:#ARCH := $(shell uname -m | sed 's/i.86/i386/')
Makefile:#ifeq (,$(findstring $(ARCH),i386 ia64))
base_comm.h:#if defined(__i386__)
--</cut>--

The lines in the Makefile I already commented, but the .h, let's see ...

--<cut base_comm.h>--
/* Turn into a legal pointer */
#if defined(__i386__)
#define CelingAlignPtr(p)       ( p )
#else
#define CelingAlignPtr(p)       ( p )
#endif
--</cut>--
Nope, that doesn't seem to be the clue. However, thanks Dave :)

That's the end of my wisdom. I'm at a loss. Is there anyone out there who
has a suggestion, or maybe even _knows_ what's wrong?

Thanks in advance!

        Daniel Franke


_______________________________________________
http://lists.arm.linux.org.uk/mailman/listinfo/linux-arm
http://www.arm.linux.org.uk/armlinux/mailinglists.php
Please visit the above addresses for information on this list.

Reply via email to