[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Netra X1 boot getting closer



Richard Mortimer writes:
 > Diff below. Hope this is useful.
 > 
 > Richard
 > 
 > P.S. Sorry for slow turnaround. I had a few day job issues to sort out
 > :-(
 > 
 > Jeff Garzik writes:
 >  > Here is the patch I just checked in, which fixes some of the easier
 >  > issues.  If you could diff against this, that would be great.

Ok,

We may be able to scrap the dmfe.c idea and keep with tulip. I did a
bit of looking into why I was seeing pci errors with the tulip
driver. After a bit of scratching around and a bit of a helpful
suggestion from a colleague it seems that the dm9102a chip has a bit
of a problem with Memory Read Multiple pci transactions (That is CSR0
bit 21). If the MRM bit is cleared the pci errors go away and the chip
starts to act a bit more reasonably. 

That is I have changed csr0 as follows

#elif defined(__sparc__) || defined(__hppa__)
/* The UltraSparc PCI controllers will disconnect at every 64-byte
 * crossing anyways so it makes no sense to tell Tulip to burst
 * any more than that.
 */
static int csr0 = 0x01800000 | 0x9000;
/* static int csr0 = 0x01A00000 | 0x9000; */

I know that this isn't a good way to do it (should probably have a
check in tulip_init_one for the particular chip/rev maybe only on
SPARC).

Things don't really work (ideas as to what may be going wrong
gratefully received). I can see data but things are getting very
garbled i.e.

From the remote (not Netra X1) side I can see

23:43:11.598499 B arp who-has patricia tell pingu
23:43:11.598499 > arp reply patricia (0:0:c0:a0:ce:14) is-at 0:0:c0:a0:ce:14 (8:0:20:1:2:3)
23:43:11.598499 < pingu > patricia: icmp: echo request (DF)
23:43:11.598499 > patricia > pingu: icmp: echo reply (DF)
23:43:11.598499 < pingu > patricia: icmp: echo request (DF)
23:43:11.598499 > patricia > pingu: icmp: echo reply (DF)
23:43:11.598499 < pingu > patricia: icmp: echo request (DF)
23:43:11.598499 > patricia > pingu: icmp: echo reply (DF)
23:43:12.598499 < pingu > patricia: icmp: echo request (DF)
23:43:12.598499 > patricia > pingu: icmp: echo reply (DF)
23:43:13.598499 < pingu > patricia: icmp: echo request (DF)
23:43:13.598499 > patricia > pingu: icmp: echo reply (DF)
23:43:14.598499 < pingu > patricia: icmp: echo request (DF)
23:43:14.598499 > patricia > pingu: icmp: echo reply (DF)
23:43:16.598499 > arp who-has pingu tell patricia (0:0:c0:a0:ce:14)
23:43:16.598499 < arp reply pingu is-at 8:0:20:1:2:3 (0:0:c0:a0:ce:14)

Unfortunately something seems to go wrong on the Netra X1 side with
reads because ping reports the following.

linux:~ # ping patricia
PING patricia (192.168.1.1): 56 data bytes
64 bytes from 192.168.1.1: icmp_seq=8 ttl=255 time=55.770 ms
wrong data byte #8 should be 0x8 but was 0x0
39 77 80 16 0 1 0 0 0 0 a b c d e f 10 11 12 13 14 15 16 17 18 19 1a
1b 1c 1d 1e 1f
20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36
37 64 bytes from 192.168.1.1: icmp_seq=7 ttl=255 time=1056.247 ms
wrong data byte #8 should be 0x8 but was 0x0
39 77 80 15 0 1 0 0 0 0 a b c d e f 10 11 12 13 14 15 16 17 18 19 1a
1b 1c 1d 1e 1f
20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36
37 64 bytes from 192.168.1.1: icmp_seq=6 ttl=255 time=2056.490 ms
wrong data byte #8 should be 0x8 but was 0x0
39 77 80 14 0 1 0 0 0 0 a b c d e f 10 11 12 13 14 15 16 17 18 19 1a
1b 1c 1d 1e 1f
20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36
37 


Looking at these on the X1 with tcp dump seems to show that everything
is ok

linux:~ # less /tmp/eth0.dump
User level filter, protocol ALL, datagram packet socket

tcpdump: listening on eth0

23:47:30.938669 arp who-has patricia tell pingu (8:0:20:1:2:3)
23:47:30.939133 arp reply patricia is-at 0:0:c0:a0:ce:14 (8:0:20:1:2:3)
23:47:30.939173 pingu > patricia: icmp: echo request (DF)
23:47:30.939742 patricia > pingu: icmp: echo reply (DF)
23:47:31.930012 pingu > patricia: icmp: echo request (DF)
23:47:31.930603 patricia > pingu: icmp: echo reply (DF)
23:47:32.929982 pingu > patricia: icmp: echo request (DF)
23:47:32.930562 patricia > pingu: icmp: echo reply (DF)
23:47:33.929982 pingu > patricia: icmp: echo request (DF)
23:47:33.930562 patricia > pingu: icmp: echo reply (DF)
23:47:34.929989 pingu > patricia: icmp: echo request (DF)
23:47:34.930569 patricia > pingu: icmp: echo reply (DF)
23:47:35.927439 arp who-has pingu tell patricia
23:47:35.927481 arp reply pingu (8:0:20:1:2:3) is-at 8:0:20:1:2:3 (0:0:c0:a0:ce:14)

Now with tcpdump -e -x (sorry different set of packets but same
symptoms)

cat /tmp/eth0.dump

User level filter, protocol ALL, datagram packet socket

tcpdump: listening on eth0

23:53:36.328546 0:0:0:0:0:0 8:0:20:1:2:3 ip 98: pingu > patricia:
icmp: echo req
uest (DF)
                         4500 0054 0000 4000 4001 b750 c0a8 0107
                         c0a8 0101 0800 4bb9 01a2 0000 3977 82f0
                         0005 0335 0809 0a0b 0c0d 0e0f 1011 1213
                         1415 1617 1819 1a1b 1c1d 1e1f 2021 2223
                         2425 2627 2829 2a2b 2c2d 2e2f 3031 3233
                         3435 3637
23:53:36.329192 0:0:c0:a0:ce:14 0:0:0:0:0:1 ip 98: patricia > pingu:
icmp: echo 
reply (DF)
                         4500 0054 0000 4000 ff01 f84f c0a8 0101
                         c0a8 0107 0000 53b9 01a2 0000 3977 82f0
                         0005 0000 0000 0a0b 0c0d 0e0f 1011 1213
                         1415 1617 1819 1a1b 1c1d 1e1f 2021 2223
                         2425 2627 2829 2a2b 2c2d 2e2f 3031 3233
                         3435 3637
23:53:37.320027 0:0:0:0:0:0 8:0:20:1:2:3 ip 98: pingu > patricia:
icmp: echo req
uest (DF)
                         4500 0054 0000 4000 4001 b750 c0a8 0107
                         c0a8 0101 0800 6cef 01a2 0001 3977 82f1
                         0004 e1fd 0809 0a0b 0c0d 0e0f 1011 1213
                         1415 1617 1819 1a1b 1c1d 1e1f 2021 2223
                         2425 2627 2829 2a2b 2c2d 2e2f 3031 3233
                         3435 3637

23:53:37.320624 0:0:c0:a0:ce:14 0:0:0:0:0:1 ip 98: patricia > pingu:
icmp: echo 
reply (DF)
                         4500 0054 0000 4000 ff01 f84f c0a8 0101
                         c0a8 0107 0000 74ef 01a2 0001 3977 82f1
                         0004 30b2 0809 0a0b 0c0d 0e0f 1011 1213
                         1415 1617 1819 1a1b 1c1d 1e1f 2021 2223
                         2425 2627 2829 2a2b 2c2d 2e2f 3031 3233
                         3435 3637

23:53:38.320000 0:0:0:0:0:0 8:0:20:1:2:3 ip 98: pingu > patricia:
icmp: echo req
uest (DF)
                         4500 0054 0000 4000 4001 b750 c0a8 0107
                         c0a8 0101 0800 6cfa 01a2 0002 3977 82f2
                         0004 e1f0 0809 0a0b 0c0d 0e0f 1011 1213
                         1415 1617 1819 1a1b 1c1d 1e1f 2021 2223
                         2425 2627 2829 2a2b 2c2d 2e2f 3031 3233
                         3435 3637

23:53:38.320566 0:0:c0:a0:ce:14 0:0:0:0:0:1 ip 98: patricia > pingu:
icmp: echo 
reply (DF)
                         4500 0054 0000 4000 ff01 f84f c0a8 0101
                         c0a8 0107 0000 74fa 01a2 0002 3977 82f2
                         0004 0000 0000 0a0b 0c0d 0e0f 1011 1213
                         1415 1617 1819 1a1b 1c1d 1e1f 2021 2223
                         2425 2627 2829 2a2b 2c2d 2e2f 3031 3233
                         3435 3637

23:53:39.319981 0:0:0:0:0:0 8:0:20:1:2:3 ip 98: pingu > patricia:
icmp: echo req
uest (DF)
                         4500 0054 0000 4000 4001 b750 c0a8 0107
                         c0a8 0101 0800 6d0c 01a2 0003 3977 82f3
                         0004 e1dc 0809 0a0b 0c0d 0e0f 1011 1213
                         1415 1617 1819 1a1b 1c1d 1e1f 2021 2223
                         2425 2627 2829 2a2b 2c2d 2e2f 3031 3233
                         3435 3637

23:53:39.320565 0:0:c0:a0:ce:14 0:0:0:0:0:1 ip 98: patricia > pingu:
icmp: echo 
reply (DF)
                         4500 0054 0000 4000 ff01 f84f c0a8 0101
                         c0a8 0107 0000 750c 01a2 0003 3977 82f3
                         0004 0000 0000 0a0b 0c0d 0e0f 1011 1213
                         1415 1617 1819 1a1b 1c1d 1e1f 2021 2223
                         2425 2627 2829 2a2b 2c2d 2e2f 3031 3233
                         3435 3637

23:53:40.319988 0:0:0:0:0:0 8:0:20:1:2:3 ip 98: pingu > patricia:
icmp: echo req
uest (DF)
                         4500 0054 0000 4000 4001 b750 c0a8 0107
                         c0a8 0101 0800 6d05 01a2 0004 3977 82f4
                         0004 e1e1 0809 0a0b 0c0d 0e0f 1011 1213
                         1415 1617 1819 1a1b 1c1d 1e1f 2021 2223
                         2425 2627 2829 2a2b 2c2d 2e2f 3031 3233
                         3435 3637

23:53:40.320572 0:0:c0:a0:ce:14 0:0:0:0:0:1 ip 98: patricia > pingu:
icmp: echo 
reply (DF)
                         4500 0054 0000 4000 ff01 f84f c0a8 0101
                         c0a8 0107 0000 7505 01a2 0004 3977 82f4
                         0004 0000 0000 0a0b 0c0d 0e0f 1011 1213
                         1415 1617 1819 1a1b 1c1d 1e1f 2021 2223
                         2425 2627 2829 2a2b 2c2d 2e2f 3031 3233
                         3435 3637

23:53:41.324814 0:0:c0:a0:ce:14 0:0:0:0:0:1 arp 60: arp who-has pingu
tell patri
cia
                         0001 0800 0604 0001 0000 c0a0 ce14 c0a8
                         0101 0000 0000 0000 c0a8 0107 3977 82f4
                         0004 e1e1 0809 0a0b 0c0d 0e0f 1011

23:53:41.324863 0:0:0:0:0:0 8:0:20:1:2:3 arp 42: arp reply pingu
(8:0:20:1:2:3) 
is-at 8:0:20:1:2:3 (0:0:c0:a0:ce:14)
                         0001 0800 0604 0002 0800 2001 0203 c0a8
                         0107 0000 c0a0 ce14 c0a8 0101

                                                                                
12 packets received by filter

linux:~ # 



Reply to: