Hello. Geoff Levand wrote:
On Fri, 14 Apr 2006 08:38:00 -0700, Geoff Levand <geoffrey.levand@xxxxxxxxxxx> 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