[eepro100] 82559ER eeprom
   
    Afzal, Naeem M
     
    naeem.m.afzal@intel.com
       
    Fri Jun 14 21:53:01 2002
    
    
  
What could be the reason for the driver to crash during init, when trying to
write eeprom.
Currently linux(2.4.17 rmk2) crashes while in do_eeprom_cmd() when it tries
to write to eeprom. Any suggestion on this would be appreciated.
thanks
naeem
...... do_eeprom_cmd()....
do {
		short dataval = (cmd & (1 << cmd_len)) ? EE_WRITE_1 :
EE_WRITE_0;
		printk("go dataval\n");
		io_outw(dataval, ee_addr); 
		printk("go delay\n");
		udelay(2);
		printk("go dataval EE_SHIFT\n");
		io_outw(dataval | EE_SHIFT_CLK, ee_addr); 
		printk("go delay\n");
		udelay(2);
		retval = (retval << 1) | ((io_inw(ee_addr) & EE_DATA_READ) ?
1 : 0);<--- crashes
	} while (--cmd_len >= 0);
Nic settings:
Linux version 2.4.17-rmk2-adi (root@optimus) (gcc version 2.95.3)
PCI Autoconfig: BAR 0, Mem, size=0x1000, address=0xfffff000
PCI Autoconfig: BAR 1, I/O, size=0x40, address=0xd9ffffc0
PCI Autoconfig: BAR 2, Mem, size=0x20000, address=0xfffc0000
......
go init_etherdev
done init_etherdev
go read eeprom
go EE_ENB, ee_addr=0xD9FFFFCE
go delay
go io_outw
go delay
go dataval
go delay
go dataval EE_SHIFT
go delay
Bad mode in data abort handler detected: mode IRQ_32
Vectors:
Stubs:
Internal error: Oops: 0
CPU: 0
pc : [<ffff0014>]    lr : [<400b4fc8>]    Not tainted
sp : 5ffadc40  ip : 5ffadc34  fp : 5ffadcb0
r10: 06000000  r9 : 4012aebc  r8 : 4012ae98
r7 : 00000000  r6 : 0000001b  r5 : d9ffffce  r4 : 00004803
r3 : 4013f19c  r2 : 00000000  r1 : 0000001a  r0 : 00000000
Flags: nZCv  IRQs off  FIQs on  Mode IRQ_32  Segment kernel
Control: 397F  Table: 00004000  DAC: 0000001D
Process swapper (pid: 1, stackpage=5ffad000)