[U-Boot-Users] tftp problem

George G. Davis davis_g at comcast.net
Mon May 10 17:28:38 CEST 2004


On Mon, May 10, 2004 at 11:08:07AM +0200, Wolfgang Denk wrote:
> In message <A5F3D6A490BAD1118AAE00A0C94C2664034025EA at CORREO> you wrote:
> >
> > We're using u-boot 1.0.0 to boot Linux on a Lubbock based platform. We've
> 
> Why are you posting the very same message twice  from  two  different
> mail addresses?
> 
> Please NEVER do this again!!!!
> 
> > We know that the tftp server works because we've tested it with other
> > clients. But with tftp in u-boot we're only able to transfer little files
> > (1, 2 Kb).. 
> 
> What happens then? Is there an error mesaage or what? Did you try  to
> debug the problem?
> 
> > Which can be the problem?? Newer versions work fine??
> 
> Ummm... did you try it out? If yes, what was the result? If not, why not???

FWIW, I've noticed that the Lubbock SMC_inb macro in drivers/lan9196.h is
broken. Take a look at that Lubbock SMC_inb macro definition:

#define SMC_inb(p)	({ \
	unsigned int __p = (unsigned int)(SMC_BASE_ADDRESS + (p * 4)); \
	unsigned int __v = *(volatile unsigned short *)((__p) & ~1); \
	if (__p & 1) __v >>= 8; \
	else __v &= 0xff; \
	__v; })


I believe that definition should be rewritten as follows (ignoring issues
of coding style or personal preferences : ):

#define SMC_inb(p)	({ \
	unsigned int __p = (unsigned int)(SMC_BASE_ADDRESS + ((p) * 4)); \
	unsigned int __v = *(volatile unsigned short *)(__p & ~4); \
	if (__p & 4) __v >>= 8; \
	else __v &= 0xff; \
	__v; })


I don't have a Lubbock target so I can't vouch for the accuracy of my
assertion. But it clearly seems broken as currently written. Also have a
look at the Lubbock kernel lan91c96 support to review those macros there
and draw your own conclusions.

I have no idea if this will help with this problem. But it probably won't
hurt. : )

HTH!

--
Regards,
George




More information about the U-Boot mailing list