Subject: Re: Booting with nfsroot

From: Philip Blundell <[email-masked]>
Date: Thu, 25 Feb 1999 14:18:55 +0000

>And then it queries RPC GETPORT 100005/1. Here begin troubles:
>IP id is 1, but IP checksum and UDP checksum are the same than the 
>previous ones, which are not the good checksum for this packet.
>Second packet queriing RPC GETPORT 100005/1. This time, IP id is 2,
>IP checksum is 0x22ea, bad checksum but UDP checksum is good (0x31cd)

Again this sounds like it might be a DMA cache coherency problem.  The 3c59x.c 
driver doesn't seem to have had the appropriate surgery yet as far as I can 
see.  Did you try running with the D-cache disabled like Dave suggested?

p.

unsubscribe: body of `unsubscribe linux-arm' to [email-masked]

---

From: Philip Blundell <[email-masked]>
Date: Thu, 25 Feb 1999 15:01:58 +0000

>I've tried with D cache off, it works far better with 3COM card

Great.  To fix it properly you need to go through the driver, work out where 
DMA operations take place and add appropriate calls to dma_cache_wback() or 
dma_cache_inv() to synchronise with main memory.

>It doesn't work better with LANCE card: still have nothing at all

OK.  Maybe the lance has general compatibility problems of its own.  I'll 
take a look at the driver and see if I can spot anything.

p.

---

From: christophe leroy <[email-masked]>
Date: Thu, 25 Feb 1999 15:06:01 +0000

I've got strange problems trying to boot with nfsroot

RARP packet are good and the strongarm gets the answer
The RPC GETPORT 100003/2 is good, IP id is 0,IP checksum is 0x22eb
UDP checksum is 0x32ce
The strong ARM get the response from the server (a i586-linux)
And then it queries RPC GETPORT 100005/1. Here begin troubles:
IP id is 1, but IP checksum and UDP checksum are the same than the 
previous ones, which are not the good checksum for this packet.
Second packet queriing RPC GETPORT 100005/1. This time, IP id is 2,
IP checksum is 0x22ea, bad checksum but UDP checksum is good (0x31cd)

The other contents of packets are OK
This bug is exactly the same each time I boot.

Network card is a 3COM PCI 3c905B with 8K ram
Kernel is 2.2.1rmk4+philb, on EBSA285 with DEC PCI backplane

christophe

---

From: christophe leroy <[email-masked]>
Date: Thu, 25 Feb 1999 15:45:09 +0000

christophe

---

From: Russell King <[email-masked]>
Date: Thu, 25 Feb 1999 16:10:23 +0000 (GMT)

> see.  Did you try running with the D-cache disabled like Dave suggested?

The 3c59x driver does not have any Dcache coherency problems - I've
been running my 3c592 Vortex card with it for 6 months with no problems
on my EBSA285.

--
Russell King ([email-masked])

---

From: christophe leroy <[email-masked]>
Date: Thu, 25 Feb 1999 17:35:36 +0000

> been running my 3c592 Vortex card with it for 6 months with no problems

Sorry, but It does, at least with 3c905B Cyclone
Or, maybe am I initialising it badly (in pcibios_fixup_ebsa285()):

#define ETH_IO_BASE     0x401
#define ETH_MEM_BASE    0x00800000

                if
(dev->vendor==PCI_VENDOR_ID_3COM||dev->vendor==PCI_VENDOR_ID_AMD) {
                        pci_set_base_addr(dev, 0, ETH_IO_BASE);
                        pci_set_base_addr(dev, 1, ETH_MEM_BASE);
                        pci_set_cmd(dev, 0, PCI_COMMAND_MASTER |
PCI_COMMAND_MEMORY | PCI_COMMAND_IO);
                        /* Put the chip to sleep in case the driver
isn't loaded */
                        pci_write_config_dword(dev, 0x40, 0x80000000);
                } else pci_set_cmd(dev, 0, PCI_COMMAND_MASTER);
unsubscribe: body of `unsubscribe linux-arm' to [email-masked]

---

From: Russell King - ARM Linux Admin <[email-masked]>
Date: Thu, 25 Feb 1999 20:08:23 +0000 (GMT)

> see.  Did you try running with the D-cache disabled like Dave suggested?

Argh!  My mail didn't make it out of Demon!

The 3c59x driver should not require any DMA-cache coherency - I've been running
a Vortex card for the past 6 months with zero problems.  If you have a boomerang
card, I'd suggest setting rx_copybreak to 1513 to disable bus master transfers
for best performance on ARM systems.
   _____
  |_____| ------------------------------------------------- ---+---+-
  |   |        Russell King       [email-masked]      --- ---
  | | | |  http://www.arm.linux.org.uk/~rmk/armlinux.html    /  /  |
  | +-+-+                                                     --- -+-
  /   |               THE developer of ARM Linux              |+| /|\
 /  | | |                                                     ---  |
    +-+-+ -------------------------------------------------  /\\\  |
unsubscribe: body of `unsubscribe linux-arm' to [email-masked]

---

From: Russell King - ARM Linux Admin <[email-masked]>
Date: Thu, 25 Feb 1999 20:44:16 +0000 (GMT)

> Or, maybe am I initialising it badly (in pcibios_fixup_ebsa285()):

Ignore my mail - I don't have the kernel sources to look at at work.  See my
later mail on this subject.
   _____
  |_____| ------------------------------------------------- ---+---+-
  |   |        Russell King       [email-masked]      --- ---
  | | | |  http://www.arm.linux.org.uk/~rmk/armlinux.html    /  /  |
  | +-+-+                                                     --- -+-
  /   |               THE developer of ARM Linux              |+| /|\
 /  | | |                                                     ---  |
    +-+-+ -------------------------------------------------  /\\\  |
unsubscribe: body of `unsubscribe linux-arm' to [email-masked]

---

From: Alan Cox <[email-masked]>
Date: Sat, 27 Feb 1999 00:28:44 +0000 (GMT)

> been running my 3c592 Vortex card with it for 6 months with no problems

Your card isnt running in DMA to/from host mode, because its one of the
cards the driver considers crap. With a 3c90x the rules change a bit
unsubscribe: body of `unsubscribe linux-arm' to [email-masked]