On Maw, 2006-02-21 at 13:33 +0800, zhuzhenhua wrote: > then i check the code and find it's in 8390.c, caused by uncorrect > write of MAC addr, and now i repalce all the inb,outb,inb_p, outb_p > with get_reg and put_reg in the 8390.c.as follow: > > static unsigned char get_reg (unsigned int regno) > { > return (*(volatile unsigned char *) regno); > } > > static void put_reg (unsigned int regno, unsigned char val) > { > *(volatile unsigned char *) regno = val; > } Should be return readb(regno); and writeb(val, regno) if regno holds the ioremap result of the memory mapped address of the 8019. Right now 8390.c assumes PIO mappings and you hardware appears to be MMIO ? > does someone have any idea of this situation? If the card is MMIO then make sure you are using readb/writeb and ioremap properly, otherwise you may get cache consistency and other strange errors.