[U-Boot-Users] AGAIN: need help for LAN91C111 driver

Stephan Linz linz at mazet.de
Tue Oct 28 19:31:47 CET 2003

Hi all,

I've found unexpected code inside of smc_send_packet() in file 
drivers/smc91111.c (near line 585-590):

	/* send the packet length ( +6 for status, length and ctl byte )
	   and the status word ( set to zeros ) */
#ifdef USE_32_BIT
	SMC_outl ((length + 6) << 16, SMC91111_DATA_REG);
	SMC_outw (0, SMC91111_DATA_REG);
	/* send the packet length ( +6 for status words, length, and ctl */
	SMC_outw ((length + 6), SMC91111_DATA_REG);

This code assembles the header of a data frame for transmission. My SMSC 
manual says about the BYTE COUNTER: "... alway even ...", Hmm , this code 
will put in even and odd length arguments. "length" should be replaced with 
"(length & 0xfffe)", the same code at top of function for page number 

What's your opinion?

Best regards
Mit freundlichen Gruessen
Stephan Linz

Stephan Linz

MAZeT GmbH                   Email: mailto:linz at mazet.de
Göschwitzer Str. 32          Tel. : (3641) 2809-55
D-07745 Jena                 Fax  : (3641) 2809-12

Besuchen Sie bitte unsere Web-Seiten: http://www.MAZeT.de

More information about the U-Boot mailing list