Re: [Etherboot-users] 3c905b bug fix compile error
Brought to you by:
marty_connor,
stefanhajnoczi
From: Marty C. <md...@et...> - 2005-09-09 11:47:41
|
On Sep 8, 2005, at 11:07 PM, le...@mi... wrote: > Hello, > I have been reading the mail archive and see there is the bug > with the > 3c90x cards so I am trying to compile the etherboot bug fix option > -DCFG_3C90X_BOOTROM_FIX. Hello, and thanks very much for your message. > I am guessing you put it in the Makefile.main towards > the bottom like this but not sure > 3C90XFLAGS= -DINCLUDE_3C90X -DCFG_3C90X_BOOTROM_FIX This should work fine. You could also do: CFLAGS+= -DCFG_3C90X_BOOTROM_FIX in src/Config which might be easier to find and comment out after you've made your floppy. Either way is fine. > Anyways, If this is correct, when I go to compile I get the > following error > # make bin/3c90x.zfd0 > ld -N -T arch/i386/core/etherboot.lds -o bin/3c90x.dsk.rt bin/ > 3c90x.rt.o > bin/floppyprefix.exit.o > bin/3c90x.rt.o(.text+0x1803): In function `a3c90x_probe': > : undefined reference to `a3c90x_internal_WriteEeprom' > make: *** [bin/3c90x.dsk.rt] Error 1 This looks like a bug in 3c90x.c. Here is a patch: ===== patch begins at next line===== --- 3c90x.c.orig 2005-09-09 06:53:10.000000000 -0400 +++ 3c90x.c 2005-09-09 07:04:17.000000000 -0400 @@ -319,7 +319,7 @@ } -#if 0 +#ifdef CFG_3C90X_BOOTROM_FIX | CFG_3C90X_XCVR /*** a3c90x_internal_WriteEepromWord - write a physical word of *** data to the onboard serial eeprom (not the BIOS prom, but the *** nvram in the card that stores, among other things, the MAC @@ -353,9 +353,7 @@ return 0; } -#endif -#if 0 /*** a3c90x_internal_WriteEeprom - write data to the serial eeprom, *** and re-compute the eeprom checksum. ***/ ===== patch ends with previous line ===== Part of the code that the BOOTROM_FIX code needed was conditionalized out. I just made sure that the code was turned on if either of two compile-time options was defined, since they both need it. If you copy this patch into a file, say, ~/bootrom-patch.txt", and go to the etherboot-5.4.1/src/drivers/net directory, and do: $ patch -p0 < ~/bootrom-patch.txt it should apply the patch, and you can then do: $ make bin/3c90x.zdsk And you should get the floppy you need to fix configure the ROM socket on your 3C905B with the BootROM socket bug. Then it's a simple matter of: $ cat bin/3c90x.zdsk > /dev/fd0 and boot once with the floppy (and no EEPROM in the socket!). Then take out the floppy, put in an EEPROM, and have at it. > I am using etherboot 5.4.1 any help would be great for I am trying > to make my > own boot rom chips for I have a programmer but so far the cards are > not seeing > the chips I make at all. I am hoping this bug fix will fix the > problem > thanks > -Lee I should also mention that the good folks of LTSP released a pre- built floppy image (from an older version of Etherboot) that configures 3C905-B ROM sockets. It is available here: http://sourceforge.net/project/showfiles.php? group_id=17723&package_id=13619&release_id=32370 It should also reconfigure the card. I do appreciate your bug report, and would also appreciate it if you would be so kind as to test the patch I provided above. If it works, we'll apply it to CVS so the fix will be carried forward. Thanks again for your help. Please let us know how things go... Marty -- Try: http://rom-o-matic.net/ to make Etherboot images instantly. Name: Marty Connor US Mail: Entity Cyber, Inc.; P.O. Box 391827; Cambridge, MA 02139; USA Voice: (617) 491-6935; Fax: (617) 491-7046 Email: md...@et... Web: http://www.etherboot.org/ |