Re: [Etherboot-developers] UNDI driver
Brought to you by:
marty_connor,
stefanhajnoczi
|
From: Marty C. <md...@et...> - 2003-06-01 21:58:18
|
I've been doing some testing of the UNDI driver with 5.1.8, and have
some results that I hope will help with debugging.
EXECUTIVE SUMMARY
We're getting closer! In the table below, the undi driver worked on
both cards when booted from floppy. It failed when chained from PXE
ROM. I am hopeful that the output below will help isolate the problem.
I'd appreciate any suggestions on debugging the PXE ->
ETHERBOOT_UNDI_DRIVER case. It would be way cool if we could tell
people that they could use the undi.zpxe file to boot any of their PXE
cards. It's already way cool that we can boot the 3Com and Intel cards
from the same floppy.
I appreciate the difficulty of getting two booting strategies that both
think they own the machine to cooperate (or at least not kill each
other). I suspect there are a few ways to get them to work together.
One thought is to wipe all memory marked as free so that Etherboot's
UNDI driver doesn't get confused by stuff left over from the PXE load
of Etherboot. I'm also wondering if the Ethernet card itself might be
in an odd state since it was just used to load Etherboot. This reminds
me a bit of when we used to have problems because we didn't disable
certain cards after loading the kernel.
But I'm just guessing. Hopefully the following information will be
helpful in getting the code to explain what is happening. Maybe a few
other folks will join in the testing fun. I've included some
information on how to re-tag the kernel configure /etc/dhcpd.conf for
those that might be interested in helping get PXE UNDI chaining work.
Thanks to everyone who is working this problem. It's actually quite
nice to follow the discussions (whoever know that memory allocation
could be soooooooo exciting! :p )
Give a shout if I can test anything else.
Regards,
Marty
NIC Etherboot Version Boot Media Result
--- ----------------- ---------- ------
3Com 3C905C-TXM 5.1.8 3c905c-tpo.zfd0 Floppy OK
3Com 3C905C-TXM 5.1.8 undi.zfd0 Floppy OK
3Com 3C905C-TXM 5.1.8 3c905c-tpo.zpxe PXE ROM OK
3Com 3C905C-TXM 5.1.8 undi.zpxe PXE ROM Failed
Intel EEPRO100 5.1.8 eepro100.zfd0 Floppy OK
Intel EEPRO100 5.1.8 undi.zfd0 Floppy OK
Intel EEPRO100 5.1.8 eepro100.zpxe PXE ROM OK
Intel EEPRO100 5.1.8 undi.zpxe PXE ROM Failed
I used the CONSOLE_DUAL option of Etherboot to gather console output.
DISCUSSION
Following advice from Michael and Ken, I created a tagged kernel that
loaded at segment 0x8000, in order avoid a conflict with other code
loading in segment 0x9000.
I did this by downloading the file
http://prdownloads.sourceforge.net/ltsp/ltsp_initrd_kit-3.0.5-
i386.tgz?download
and untaring it. This gave me a copy of the untagged kernel
"bzImage-2.4.19-ltsp-1" to work with.
I also installed downloaded and installed mknbi-1.4 from:
http://prdownloads.sourceforge.net/etherboot/mknbi-1.4.0-1.noarch.rpm
This allowed me to hack a simple script to retag the kernel:
========
:
# This script tags a kernel with mknbi-linux with relocation to avoid
# problems when other software is using the 0x9000 segment.
mknbi-linux --output=`pwd`/ltsp-0x8000.nb \
--append="init=/linuxrc rw" \
--rootdir="/dev/ram0" \
--relocseg=0x8000 \
bzImage-2.4.19-ltsp-1 \
initrd-2.4.19-ltsp-1.gz
========
This created the file ltsp-0x8000.nb which I copied to /tftpboot for
later use.
Running disnbi on the image gives:
=========
$ disnbi /tftpboot/ltsp-0x8000.nb
Type: NBI
Header location: 8220:0000
Start address: 00082800 (flat)
Flags:
Vendor data: mknbi-linux-1.4.0
Segment number 1
Load address: 00082800
Image length: 4608
Memory length: 6144
Position: Absolute
Vendor tag: 16
Segment number 2
Load address: 00082400
Image length: 512
Memory length: 2048
Position: Absolute
Vendor tag: 17
Segment number 3
Load address: 00080000
Image length: 512
Memory length: 512
Position: Absolute
Vendor tag: 18
Segment number 4
Load address: 00080200
Image length: 5120
Memory length: 8192
Position: Absolute
Vendor tag: 19
Segment number 5
Load address: 00100000
Image length: 673792
Memory length: 673792
Position: Absolute
Vendor tag: 20
Segment number 6
Load address: 001a5000
Image length: 733184
Memory length: 733184
Position: Absolute
Vendor tag: 21
Vendor data: ""
Vendor data in hex: 00 00 00 00
===========
I modified my /etc/dhcpd.conf file to test two PXE cards, one 3Com and
one Intel. Here is the relevent section:
===========
# 3COM PXE Card
host ws137 {
hardware ethernet 00:01:02:59:03:d5;
fixed-address 192.168.2.137;
if substring (option vendor-class-identifier, 0, 9) =
"PXEClient" {
filename "/undi.zpxe";
# filename "/3c905c-tpo.zpxe";
} else if substring (option vendor-class-identifier, 0, 9) =
"Etherboot" {
filename "/ltsp-0x8000.nb";
# filename "/lts/vmlinuz-2.4.19-ltsp-1";
option vendor-encapsulated-options
3c:09:45:74:68:65:72:62:6f:6f:74:ff;
}
}
# Intel PXE Card
host ws138 {
hardware ethernet 00:02:B3:25:45:56;
fixed-address 192.168.2.138;
if substring (option vendor-class-identifier, 0, 9) =
"PXEClient" {
filename "/undi.zpxe";
# filename "/eepro100.zpxe";
} else if substring (option vendor-class-identifier, 0, 9) =
"Etherboot" {
filename "/ltsp-0x8000.nb";
# filename "/lts/vmlinuz-2.4.19-ltsp-1";
option vendor-encapsulated-options
3c:09:45:74:68:65:72:62:6f:6f:74:ff;
}
}
===========
I then ran a series of tests on each card. Here is a summary:
NIC Etherboot Version Boot Media Result
--- ----------------- ---------- ------
3Com 3C905C-TXM 5.1.8 3c905c-tpo.zfd0 Floppy Success
3Com 3C905C-TXM 5.1.8 undi.zfd0 Floppy Success
3Com 3C905C-TXM 5.1.8 3c905c-tpo.zpxe PXE ROM Success
3Com 3C905C-TXM 5.1.8 undi.zpxe PXE ROM Failed
Intel EEPRO100 5.1.8 eepro100.zfd0 Floppy Success
Intel EEPRO100 5.1.8 undi.zfd0 Floppy Success
Intel EEPRO100 5.1.8 eepro100.zpxe PXE ROM Success
Intel EEPRO100 5.1.8 undi.zpxe PXE ROM Failed
===========
I used the CONSOLE_DUAL option of Etherboot to gather console output.
Here are the outputs from the various test:
===========
3Com 3C905C-TXM 5.1.8 3c905c-tpo.zfd0 Floppy Success
ROM segment 0x0000 length 0x0000 reloc 0x00020000
Etherboot 5.1.8 (GPL) Tagged ELF for [3C90X]
Relocating _text from: [00014120,00023610) to [07eb0b10,07ec0000)
Boot from (N)etwork (D)isk (F)loppy or from (L)ocal?
Probing pci nic...
[3c905c-tpo]
3C90X Driver 2.00 Copyright 1999 LightSys Technology Services, Inc.
Portions Copyright 1999 Steve Smith
Provided with ABSOLUTELY NO WARRANTY.
------------------------------------------------------------------------
-------
MAC Address = 00:01:02:59:03:D5
Connectors present: 10Base-T / 100Base-TX.
Searching for server (DHCP)...
..Me: 192.168.2.137, Server: 192.168.2.37, Gateway 192.168.2.15
Loading 192.168.2.37:/ltsp-0x8000.nb
...(NBI)...................................
........................................................................
........
........................................................................
........
........................................................................
........
........................................................................
........
........................................................................
........
........................................................................
........
........................................................................
........
........................................................................
........
........................................................................
........
........................................................................
........
........................................................................
........
........................................................................
...done
Issuing RESET:
==============
3Com 3C905C-TXM 5.1.8 undi.zfd0 Floppy Success
ROM segment 0x0000 length 0x0000 reloc 0x00020000
Etherboot 5.1.8 (GPL) Tagged ELF for [UNDI]
Relocating _text from: [00014440,00023e90) to [07eb05b0,07ec0000)
Boot from (N)etwork (D)isk (F)loppy or from (L)ocal?
Probing pci nic...
[UNDI]Hunting for PnP BIOS...found $PnP at f000:2c30...ok
Trying to allocate 1 kB of base memory, 639 kB free
Hunting for pixies...none found
Hunting for ROMs...found 55AA at 000cc000...PCI:10b7:9200...ok
ROM contains MBA UNDI by 3Com
Located UNDI ROM supporting revision 2.1.0
Trying to allocate 10 kB of base memory, 638 kB free
Trying to allocate 13 kB of base memory, 628 kB free
Installing UNDI driver code to 9d00:0000, data at 99c0:0000
UNDI driver created a pixie at 9d00:0060...ok
API 9d00:00f6 St 0000:0000 UD 99c0:3284 UC 9d00:24c0 BD 0000:0000 BC
0000:0000
Initialized UNDI NIC with IO 0xdc00, IRQ 11, MAC 00:01:02:59:03:D5
NDIS type DIX+802.3 interface at 100 Mbps
Searching for server (DHCP)...
Trying to allocate 2 kB of base memory, 615 kB free
..Me: 192.168.2.137, Server: 192.168.2.37, Gateway 192.168.2.15
Loading 192.168.2.37:/ltsp-0x8000.nb
...(NBI)...................................
........................................................................
........
........................................................................
........
........................................................................
........
........................................................................
........
........................................................................
........
........................................................................
........
........................................................................
........
........................................................................
........
........................................................................
........
........................................................................
........
........................................................................
........
........................................................................
...done
Freed 2 kB base memory, 615 kB now free
Freed 13 kB base memory, 628 kB now free
Freed 10 kB base memory, 638 kB now free
Freed 1 kB base memory, 639 kB now free
============
3Com 3C905C-TXM 5.1.8 3c905c-tpo.zpxe PXE ROM Success
ROM segment 0x0000 length 0x0000 reloc 0x00020000
Etherboot 5.1.8 (GPL) Tagged ELF for [3C90X]
Relocating _text from: [0000bf20,0001b410) to [07eb0b10,07ec0000)
Boot from (N)etwork (D)isk (F)loppy or from (L)ocal?
Probing pci nic...
[3c905c-tpo]
3C90X Driver 2.00 Copyright 1999 LightSys Technology Services, Inc.
Portions Copyright 1999 Steve Smith
Provided with ABSOLUTELY NO WARRANTY.
------------------------------------------------------------------------
-------
MAC Address = 00:01:02:59:03:D5
Connectors present: 10Base-T / 100Base-TX.
Searching for server (DHCP)...
..Me: 192.168.2.137, Server: 192.168.2.37, Gateway 192.168.2.15
Loading 192.168.2.37:/ltsp-0x8000.nb
...(NBI)...................................
........................................................................
........
........................................................................
........
........................................................................
........
........................................................................
........
........................................................................
........
........................................................................
........
........................................................................
........
........................................................................
........
........................................................................
........
........................................................................
........
........................................................................
........
........................................................................
....done
Issuing RESET:
==============
3Com 3C905C-TXM 5.1.8 undi.zpxe PXE ROM Failed
ROM segment 0x0000 length 0x0000 reloc 0x00020000
Etherboot 5.1.8 (GPL) Tagged ELF for [UNDI]
Relocating _text from: [0000c240,0001bc90) to [07eb05b0,07ec0000)
Boot from (N)etwork (D)isk (F)loppy or from (L)ocal?
Probing pci nic...
[UNDI]Hunting for PnP BIOS...found $PnP at f000:2c30...ok
Trying to allocate 1 kB of base memory, 639 kB free
Hunting for pixies...found !PXE at 0009d7a0...in free base memory!
WARNING: a valid !PXE structure was found in an area of memory marked
as free!
Ignoring and continuing, but this may cause problems later!
none found
Hunting for ROMs...found 55AA at 000cc000...PCI:10b7:9200...ok
ROM contains MBA UNDI by 3Com
Located UNDI ROM supporting revision 2.1.0
Trying to allocate 10 kB of base memory, 638 kB free
Trying to allocate 13 kB of base memory, 628 kB free
Installing UNDI driver code to 9d00:0000, data at 99c0:0000
UNDI driver created a pixie at 9d00:0060...ok
API 9d00:00f6 St 0000:0000 UD 99c0:3284 UC 9d00:24c0 BD 0000:0000 BC
0000:0000
Initialized UNDI NIC
==============
Intel EEPRO100 5.1.8 eepro100.zfd0 Floppy Success
ROM segment 0x0000 length 0x0000 reloc 0x00020000
Etherboot 5.1.8 (GPL) Tagged ELF for [EEPRO100]
Relocating _text from: [00013ed0,000234e0) to [07eb09f0,07ec0000)
Boot from (N)etwork (D)isk (F)loppy or from (L)ocal?
Probing pci nic...
[eepro100]Ethernet addr: 00:02:B3:25:45:56
Searching for server (DHCP)...
..Me: 192.168.2.138, Server: 192.168.2.37, Gateway 192.168.2.15
Loading 192.168.2.37:/ltsp-0x8000.nb
...(NBI)...................................
........................................................................
........
........................................................................
........
........................................................................
........
........................................................................
........
........................................................................
........
........................................................................
........
........................................................................
........
........................................................................
........
........................................................................
........
........................................................................
........
........................................................................
........
........................................................................
...done
===============
Intel EEPRO100 5.1.8 undi.zfd0 Floppy Success
ROM segment 0x0000 length 0x0000 reloc 0x00020000
Etherboot 5.1.8 (GPL) Tagged ELF for [UNDI]
Relocating _text from: [00014440,00023e90) to [07eb05b0,07ec0000)
Boot from (N)etwork (D)isk (F)loppy or from (L)ocal?
Probing pci nic...
[UNDI]Hunting for PnP BIOS...found $PnP at f000:2c30...ok
Trying to allocate 1 kB of base memory, 639 kB free
Hunting for pixies...none found
Hunting for ROMs...found 55AA at 000cc000...PCI:8086:1229...ok
ROM contains Intel UNDI, PXE-2.0 (build 067) by Intel Corporation
Located UNDI ROM supporting revision 2.1.0
Trying to allocate 8 kB of base memory, 638 kB free
Trying to allocate 20 kB of base memory, 630 kB free
Installing UNDI driver code to 9d80:0000, data at 9880:0000
UNDI driver created a pixie at 9d80:0070...ok
API 9d80:0106 St 9140:0800 UD 9880:4d30 UC 9d80:1e70 BD 0000:37c0 BC
0000:563a
Initialized UNDI NIC with IO 0xdf00, IRQ 11, MAC 00:02:B3:25:45:56
NDIS type DIX+802.3 interface at 100 Mbps
Searching for server (DHCP)...
Trying to allocate 2 kB of base memory, 610 kB free
..Me: 192.168.2.138, Server: 192.168.2.37, Gateway 192.168.2.15
Loading 192.168.2.37:/ltsp-0x8000.nb
...(NBI)...................................
........................................................................
........
........................................................................
........
........................................................................
........
........................................................................
........
........................................................................
........
........................................................................
........
........................................................................
........
........................................................................
........
........................................................................
........
........................................................................
........
........................................................................
........
........................................................................
...done
Freed 2 kB base memory, 610 kB now free
Freed 20 kB base memory, 630 kB now free
Freed 8 kB base memory, 638 kB now free
Freed 1 kB base memory, 639 kB now free
===============
Intel EEPRO100 5.1.8 eepro100.zpxe PXE ROM Success
ROM segment 0x0000 length 0x0000 reloc 0x00020000
Etherboot 5.1.8 (GPL) Tagged ELF for [EEPRO100]
Relocating _text from: [0000bcd0,0001b2e0) to [07eb09f0,07ec0000)
Boot from (N)etwork (D)isk (F)loppy or from (L)ocal?
Probing pci nic...
[eepro100]Ethernet addr: 00:02:B3:25:45:56
Searching for server (DHCP)...
..Me: 192.168.2.138, Server: 192.168.2.37, Gateway 192.168.2.15
Loading 192.168.2.37:/ltsp-0x8000.nb
...(NBI)...................................
........................................................................
........
........................................................................
........
........................................................................
........
........................................................................
........
........................................................................
........
........................................................................
........
........................................................................
........
........................................................................
........
........................................................................
........
........................................................................
........
........................................................................
........
........................................................................
...done
==============
Intel EEPRO100 5.1.8 undi.zpxe PXE ROM Failed
ROM segment 0x0000 length 0x0000 reloc 0x00020000
Etherboot 5.1.8 (GPL) Tagged ELF for [UNDI]
Relocating _text from: [0000c240,0001bc90) to [07eb05b0,07ec0000)
Boot from (N)etwork (D)isk (F)loppy or from (L)ocal?
Probing pci nic...
[UNDI]Hunting for PnP BIOS...found $PnP at f000:2c30...ok
Trying to allocate 1 kB of base memory, 638 kB free
Hunting for pixies...found !PXE at 0009dba0...in free base memory!
WARNING: a valid !PXE structure was found in an area of memory marked
as free!
Ignoring and continuing, but this may cause problems later!
none found
Hunting for ROMs...found 55AA at 000cc000...PCI:8086:1229...ok
ROM contains Intel UNDI, PXE-2.0 (build 067) by Intel Corporation
Located UNDI ROM supporting revision 2.1.0
Trying to allocate 8 kB of base memory, 637 kB free
Trying to allocate 20 kB of base memory, 629 kB free
Installing UNDI driver code to 9d40:0000, data at 9840:0000
UNDI driver created a pixie at 9d40:0070...ok
API 9d40:0106 St 9100:0800 UD 9840:4d30 UC 9d40:1e70 BD 0000:37c0 BC
0000:563a
Initialized UNDI NIC with IO 0xdf00, IRQ 11, MAC 00:02:B3:25:45:56
NDIS type DIX+802.3 interface at 100 Mbps
Searching for server (DHCP)...
Trying to allocate 2 kB of base memory, 609 kB free
--
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/
|