linux-mips
[Top] [All Lists]

Re: tx49 Ether problems

To: Geoff Levand <geoffrey.levand@am.sony.com>
Subject: Re: tx49 Ether problems
From: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Date: Sun, 16 Apr 2006 00:52:39 +0400
Cc: Atsushi Nemoto <anemo@mba.ocn.ne.jp>, ralf@linux-mips.org, linux-mips@linux-mips.org
In-reply-to: <444032A5.3030304@am.sony.com>
Organization: MontaVista Software Inc.
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <20060415.010518.126141918.anemo@mba.ocn.ne.jp> <444032A5.3030304@am.sony.com>
Sender: linux-mips-bounce@linux-mips.org
User-agent: Mozilla/5.0 (X11; U; Linux i686; rv:1.7.2) Gecko/20040803
Hello.

Geoff Levand wrote:

On Fri, 14 Apr 2006 08:38:00 -0700, Geoff Levand
<geoffrey.levand@am.sony.com> wrote:

I seem to get a lot of problems with an nfs root fs
on tx4937 board.  I haven't looked at it closely yet,
but I guess its some problem with the ne2000 driver.
I wanted to know if you know anything about this.

Please look at:

http://www.linux-mips.org/cgi-bin/mesg.cgi?a=linux-mips&i=20060226.23054
1.75185772.anemo%40mba.ocn.ne.jp

With a quick glance of ne.c, it seems ei_status.stop_page should be
changed to 0x60 on the board.  Please confirm its value.

Yes, this seems to fix the problem.

Index: 2.6.16.1/drivers/net/ne.c
===================================================================
--- 2.6.16.1.orig/drivers/net/ne.c      2006-04-14 15:54:41.000000000 -0700
+++ 2.6.16.1/drivers/net/ne.c   2006-04-14 16:27:51.000000000 -0700
@@ -140,7 +140,8 @@
 #define NE1SM_START_PG 0x20    /* First page of TX buffer */
 #define NE1SM_STOP_PG  0x40    /* Last page +1 of RX ring */
 #define NESM_START_PG  0x40    /* First page of TX buffer */
-#define NESM_STOP_PG   0x80    /* Last page +1 of RX ring */
+#define NESM_8_STOP_PG 0x60    /* Last page +1 of RX ring, RTL8019 8 bit mode 
*/
+#define NESM_STOP_PG   0x80    /* Last page +1 of RX ring */

 #if defined(CONFIG_PLAT_MAPPI)
 #  define DCR_VAL 0x4b
@@ -516,6 +517,7 @@
        ei_status.tx_start_page = start_page;
        ei_status.stop_page = stop_page;
 #if defined(CONFIG_TOSHIBA_RBTX4927) || defined(CONFIG_TOSHIBA_RBTX4938)
+       ei_status.stop_page = NESM_8_STOP_PG;
        wordlength = 1;
 #endif

This is really strange place for that #ifdef -- 'wordlength' is determined much earlier in this function (and stop_page is set to 0x40 for 8-bit case), shouldn't #ifdef be moved instead?

WBR, Sergei

<Prev in Thread] Current Thread [Next in Thread>