Initial revision
[etherboot.git] / contrib / 3c90xutil / romutil.txt
1 I wrote the attached little util program to try out the basic approach
2 and thought that you might find it useful as well as providing some
3 simple testing. It isn't a final solution so the interface is rough. The
4 program must be run as root on an Intel based machine.
5
6 The key point is that the IO address needs to be entered - I grab it
7 from the dmesg output:
8
9 eth0: 3Com 3c905B Cyclone 100baseTx at 0xe400,  00:10:4b:d2:5e:0d, IRQ
10 11
11
12 or "cat /proc/pci" to find the "I/O at XXXXXX" for your 3Com Card.
13
14 Some example commands are:
15
16 romutil 0xe400 erase            - erases the ROM contents
17 romutil 0xe400 protect            - enables the Software Data Protection
18 on the ROM [3c905B only]
19 romutil 0xe400 unprotect       - disables the Software Data Protection
20 on the ROM [3c905B only]
21 romutil 0xe400 id                    - displays the manufacturer and
22 device IDs
23 romutil 0xe400 read >file    - writes the contents of the ROM to stdout
24 romutil 0xe400 prog <file    - writes the contents of the stdin into the
25 ROM (<64k)
26
27 I tried reading and writing the ROM while doing large ftp transfers and
28 experienced no problems. I didn't spend much time worrying about the
29 possible race conditions. My system has lots of resources (450MHx P2,
30 128MB RAM) so it might not provide the best test candidate.
31
32 Let me know what results you get if you try it out.
33
34 Thanks
35
36 John