etherboot-developers Mailing List for Etherboot (Page 193)
Brought to you by:
marty_connor,
stefanhajnoczi
You can subscribe to this list here.
| 2000 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(2) |
Aug
(10) |
Sep
(3) |
Oct
(10) |
Nov
(47) |
Dec
(20) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2001 |
Jan
(41) |
Feb
(107) |
Mar
(76) |
Apr
(103) |
May
(66) |
Jun
(72) |
Jul
(27) |
Aug
(31) |
Sep
(33) |
Oct
(18) |
Nov
(33) |
Dec
(67) |
| 2002 |
Jan
(25) |
Feb
(62) |
Mar
(79) |
Apr
(74) |
May
(67) |
Jun
(104) |
Jul
(155) |
Aug
(234) |
Sep
(87) |
Oct
(93) |
Nov
(54) |
Dec
(114) |
| 2003 |
Jan
(146) |
Feb
(104) |
Mar
(117) |
Apr
(189) |
May
(96) |
Jun
(40) |
Jul
(133) |
Aug
(136) |
Sep
(113) |
Oct
(142) |
Nov
(99) |
Dec
(185) |
| 2004 |
Jan
(233) |
Feb
(151) |
Mar
(109) |
Apr
(96) |
May
(200) |
Jun
(175) |
Jul
(162) |
Aug
(118) |
Sep
(107) |
Oct
(77) |
Nov
(121) |
Dec
(114) |
| 2005 |
Jan
(201) |
Feb
(271) |
Mar
(113) |
Apr
(119) |
May
(69) |
Jun
(46) |
Jul
(21) |
Aug
(37) |
Sep
(13) |
Oct
(4) |
Nov
(19) |
Dec
(46) |
| 2006 |
Jan
(10) |
Feb
(18) |
Mar
(85) |
Apr
(2) |
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
| 2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(10) |
Jul
(20) |
Aug
(9) |
Sep
(11) |
Oct
(4) |
Nov
(1) |
Dec
(40) |
| 2008 |
Jan
(19) |
Feb
(8) |
Mar
(37) |
Apr
(28) |
May
(38) |
Jun
(63) |
Jul
(31) |
Aug
(22) |
Sep
(37) |
Oct
(38) |
Nov
(49) |
Dec
(24) |
| 2009 |
Jan
(48) |
Feb
(51) |
Mar
(80) |
Apr
(55) |
May
(34) |
Jun
(57) |
Jul
(20) |
Aug
(83) |
Sep
(17) |
Oct
(81) |
Nov
(53) |
Dec
(40) |
| 2010 |
Jan
(55) |
Feb
(28) |
Mar
(36) |
Apr
(7) |
May
|
Jun
|
Jul
(7) |
Aug
|
Sep
|
Oct
(1) |
Nov
(3) |
Dec
|
| 2011 |
Jan
(1) |
Feb
|
Mar
(3) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(6) |
Oct
|
Nov
(10) |
Dec
|
| 2012 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2013 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: Timothy L. <tl...@ro...> - 2003-06-12 21:44:37
|
Hi I am looking at a doc that says: Align the list to the nearest octet (byte) boundary. I am assuming that octet is eight bits or one byte. Is that correct? If so, is any thing special necessary. That is, do I need __attribute__ ((aligned(1)))? Tim |
|
From: Michael B. <mb...@fe...> - 2003-06-12 14:47:59
|
On Sun, 1 Jun 2003, Marty Connor wrote: > 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 This has stopped in the middle of a printf() call: the line of code is printf ( "Initialized UNDI NIC with IO %#hx, IRQ %d, MAC %!\n", undi.pxs->undi_get_information.BaseIo, undi.pxs->undi_get_information.IntNumber, undi.pxs->undi_get_information.CurrentNodeAddress ); in which undi.pxs is definitely non-NULL because it has already been used. The only thing I can think of that could cause this is a corrupted interrupt handler. I've taken a look at pxeprefix.S. It performs the PXE API calls PXENV_UNDI_SHUTDOWN, PXENV_STOP_UNDI and PXENV_UNLOAD_STACK. It doesn't check the return status of any of these calls and it then proceeds to forcibly free base memory, even if the API calls returned "No, you can't free base memory because I've got an interrupt handler installed that I can't unhook for some reason". In order to get better diagnostics, I've added a config option -DPXELOADER_KEEP_ALL. This will cause pxeprefix.S to skip all its unloading, and will cause undi.c to perform the same sequence of PXE API calls. This way, we get to see any errors that occur. Could you retry this arrangement (PXE chaining) with DEBUG_BASEMEM enabled in arch/i386/firmware/pcbios/basemem.c and three sets of configuration options in arch/i386/Config: 1. CFLAGS+=-DPXELOADER_KEEP_ALL 2. CFLAGS+=-DPXELOADER_KEEP_UNDI 3. (nothing) PXE chaining is working for me via all three routes, although I get the expected warning about a valid !PXE structure being found in free base memory with option (3). (I haven't edited pxeprefix.S to delete the !PXE signature yet). Michael |
|
From: <ebi...@ln...> - 2003-06-12 05:09:12
|
"Timothy Legge" <tl...@ro...> writes: > Answered my own question. It looks like mdelay is milliseconds and it > is made up of 1000 udelays. Correct. mdelay is milliseconds. udelay is microseconds. It comes from the fact that the symbol for micro looks quite a bit like a u with a tail. Well that and the fact that the compiler would have a hard time if both the milli second and the micro second delays were named mdelay :) Eric |
|
From: Timothy L. <tl...@ro...> - 2003-06-12 02:49:18
|
Answered my own question. It looks like mdelay is milliseconds and it is made up of 1000 udelays. > -----Original Message----- > From: eth...@li... [mailto:etherboot- > dev...@li...] On Behalf Of Timothy Legge > Sent: Wednesday, June 11, 2003 11:15 PM > To: eth...@li... > Subject: [Etherboot-developers] timer question > > Hi > > Is udelay in milliseconds? I can probably figure it out but I thought > someone else might be around... > > Tim > > > > ------------------------------------------------------- > This SF.NET email is sponsored by: eBay > Great deals on office technology -- on eBay now! Click here: > http://adfarm.mediaplex.com/ad/ck/711-11697-6916-5 > _______________________________________________ > Etherboot-developers mailing list > Eth...@li... > https://lists.sourceforge.net/lists/listinfo/etherboot-developers |
|
From: Timothy L. <tl...@ro...> - 2003-06-12 02:14:41
|
Hi Is udelay in milliseconds? I can probably figure it out but I thought someone else might be around... Tim |
|
From: Roberto F. B. <ro...@td...> - 2003-06-09 13:09:10
|
Hello, I am installing a diskless x86 workstation using Windows CE. It has PXE features and it gets IP address through DHCP server. I've also installed a TFTP server. Both DHCP and TFTP servers are working fine. I created a nk.bin image for WinCE using MS Platform Builder, but I can't make the workstation download it. The file nk.bin is the WinCE kernel image. So I need to put it on the memory and run it. I know I need to use a boot loader to do that. I tried to generate a ROM image using rom-o-matic. It runned fine but I could'nt make it download and run nk.bin. Can you, please, help me ? Thank you very much. Roberto -- Roberto F. Brandao <ro...@td...> |
|
From: Michael B. <mb...@fe...> - 2003-06-07 17:12:52
|
On Sat, 7 Jun 2003, Boris wrote: > When downloading the latest etherboot 5.1.xx cvs, I tried compiling all the > drivers (make bin/etherboot.fd0) and the following error occurs. > make bin/etherboot.fd0 > ld -r bin/undi.o bin/ide_disk.o bin/pc_floppy.o bin/3c509.o bin/3c515.o > bin/3c595.o bin/3c90x.o bin/cs89x0.o bin/davicom.o bin/depca.o bin/e1000.o > bin/eepro.o bin/eepro100.o bin/epic100.o bin/fa311.o bin/lance.o > bin/natsemi.o bin/ns8390.o bin/prism2_pci.o bin/prism2_plx.o bin/rtl8139.o > bin/sis900.o bin/sk_g16.o bin/skel.o bin/smc9000.o bin/sundance.o bin/tg3.o > bin/tulip.o bin/via-rhine.o bin/w89c840.o bin/3c503.o bin/3c509.o > bin/3c515.o bin/3c529.o bin/cs89x0.o bin/depca.o bin/eepro.o bin/ne.o > bin/ne2100.o bin/ni6510.o bin/pc_floppy.o bin/sk_g16.o bin/skel-isa.o > bin/smc9000.o bin/undi.o bin/wd.o -o bin/etherboot.o > bin/undi.o(.text+0x0): In function `checksum': > : multiple definition of `checksum' > <snip> This is an error in genrules.pl (I think); if you look closely you'll see that the link command is trying to link in undi.o twice. Incidentally, if you are the same Boris from Canada whose e-mail address used to be bo...@th... then I would really appreciate the US$310 that you owe me for the Etherboot development work I did on your behalf almost eight months ago. If not, then my apologies. Apologies also to everyone else on the list for bringing the subject up, but I have tried many times to chase up this invoice and I think it is now appropriate to warn other Etherboot developers not to accept commissions from Boris Reisig <bo...@th...> and/or Thinovations (a Canadian company) without payment in advance. Michael |
|
From: <ke...@us...> - 2003-06-07 17:08:18
|
>When downloading the latest etherboot 5.1.xx cvs, I tried compiling all the >drivers (make bin/etherboot.fd0) and the following error occurs. > >make bin/etherboot.fd0 >ld -r bin/undi.o bin/ide_disk.o bin/pc_floppy.o bin/3c509.o bin/3c515.o >bin/3c595.o bin/3c90x.o bin/cs89x0.o bin/davicom.o bin/depca.o bin/e1000.o >bin/eepro.o bin/eepro100.o bin/epic100.o bin/fa311.o bin/lance.o >bin/natsemi.o bin/ns8390.o bin/prism2_pci.o bin/prism2_plx.o bin/rtl8139.o >bin/sis900.o bin/sk_g16.o bin/skel.o bin/smc9000.o bin/sundance.o bin/tg3.o >bin/tulip.o bin/via-rhine.o bin/w89c840.o bin/3c503.o bin/3c509.o >bin/3c515.o bin/3c529.o bin/cs89x0.o bin/depca.o bin/eepro.o bin/ne.o >bin/ne2100.o bin/ni6510.o bin/pc_floppy.o bin/sk_g16.o bin/skel-isa.o >bin/smc9000.o bin/undi.o bin/wd.o -o bin/etherboot.o >bin/undi.o(.text+0x0): In function `checksum': >: multiple definition of `checksum' undi.o appears twice in the linker arguments. |
|
From: Boris <bo...@bo...> - 2003-06-07 16:09:21
|
When downloading the latest etherboot 5.1.xx cvs, I tried compiling all the drivers (make bin/etherboot.fd0) and the following error occurs. make bin/etherboot.fd0 ld -r bin/undi.o bin/ide_disk.o bin/pc_floppy.o bin/3c509.o bin/3c515.o bin/3c595.o bin/3c90x.o bin/cs89x0.o bin/davicom.o bin/depca.o bin/e1000.o bin/eepro.o bin/eepro100.o bin/epic100.o bin/fa311.o bin/lance.o bin/natsemi.o bin/ns8390.o bin/prism2_pci.o bin/prism2_plx.o bin/rtl8139.o bin/sis900.o bin/sk_g16.o bin/skel.o bin/smc9000.o bin/sundance.o bin/tg3.o bin/tulip.o bin/via-rhine.o bin/w89c840.o bin/3c503.o bin/3c509.o bin/3c515.o bin/3c529.o bin/cs89x0.o bin/depca.o bin/eepro.o bin/ne.o bin/ne2100.o bin/ni6510.o bin/pc_floppy.o bin/sk_g16.o bin/skel-isa.o bin/smc9000.o bin/undi.o bin/wd.o -o bin/etherboot.o bin/undi.o(.text+0x0): In function `checksum': : multiple definition of `checksum' bin/undi.o(.text+0x0): first defined here bin/undi.o(.text+0x26): In function `hunt_pnp_bios': : multiple definition of `hunt_pnp_bios' bin/undi.o(.text+0x26): first defined here bin/undi.o(.text+0xad): In function `hunt_pixie': : multiple definition of `hunt_pixie' bin/undi.o(.text+0xad): first defined here bin/undi.o(.text+0x179): In function `hunt_rom': : multiple definition of `hunt_rom' bin/undi.o(.text+0x179): first defined here bin/undi.o(.text+0x317): In function `hunt_undi_rom': : multiple definition of `hunt_undi_rom' bin/undi.o(.text+0x317): first defined here bin/undi.o(.text+0x37b): In function `undi_call_loader': : multiple definition of `undi_call_loader' bin/undi.o(.text+0x37b): first defined here bin/undi.o(.text+0x403): In function `undi_call_silent': : multiple definition of `undi_call_silent' bin/undi.o(.text+0x403): first defined here bin/undi.o(.text+0x46b): In function `undi_call': : multiple definition of `undi_call' bin/undi.o(.text+0x46b): first defined here bin/undi.o(.text+0x4a0): In function `undi_loader': : multiple definition of `undi_loader' bin/undi.o(.text+0x4a0): first defined here bin/undi.o(.text+0x674): In function `eb_pxenv_start_undi': : multiple definition of `eb_pxenv_start_undi' bin/undi.o(.text+0x674): first defined here bin/undi.o(.text+0x6e4): In function `eb_pxenv_undi_startup': : multiple definition of `eb_pxenv_undi_startup' bin/undi.o(.text+0x6e4): first defined here bin/undi.o(.text+0x701): In function `eb_pxenv_undi_cleanup': : multiple definition of `eb_pxenv_undi_cleanup' bin/undi.o(.text+0x701): first defined here bin/undi.o(.text+0x70a): In function `eb_pxenv_undi_initialize': : multiple definition of `eb_pxenv_undi_initialize' bin/undi.o(.text+0x70a): first defined here bin/undi.o(.text+0x748): In function `eb_pxenv_undi_shutdown': : multiple definition of `eb_pxenv_undi_shutdown' bin/undi.o(.text+0x748): first defined here bin/undi.o(.text+0x76c): In function `eb_pxenv_undi_open': : multiple definition of `eb_pxenv_undi_open' bin/undi.o(.text+0x76c): first defined here bin/undi.o(.text+0x7aa): In function `eb_pxenv_undi_close': : multiple definition of `eb_pxenv_undi_close' bin/undi.o(.text+0x7aa): first defined here bin/undi.o(.text+0x7c7): In function `eb_pxenv_undi_transmit_packet': : multiple definition of `eb_pxenv_undi_transmit_packet' bin/undi.o(.text+0x7c7): first defined here bin/undi.o(.text+0x883): In function `eb_pxenv_undi_set_station_address': : multiple definition of `eb_pxenv_undi_set_station_address' bin/undi.o(.text+0x883): first defined here bin/undi.o(.text+0x891): In function `eb_pxenv_undi_get_information': : multiple definition of `eb_pxenv_undi_get_information' bin/undi.o(.text+0x891): first defined here bin/undi.o(.text+0x8ac): In function `eb_pxenv_undi_get_iface_info': : multiple definition of `eb_pxenv_undi_get_iface_info' bin/undi.o(.text+0x8ac): first defined here bin/undi.o(.text+0x8b5): In function `eb_pxenv_undi_isr': : multiple definition of `eb_pxenv_undi_isr' bin/undi.o(.text+0x8b5): first defined here bin/undi.o(.text+0x8be): In function `eb_pxenv_stop_undi': : multiple definition of `eb_pxenv_stop_undi' bin/undi.o(.text+0x8be): first defined here bin/undi.o(.text+0x8db): In function `eb_pxenv_unload_stack': : multiple definition of `eb_pxenv_unload_stack' bin/undi.o(.text+0x8db): first defined here bin/undi.o(.text+0x8fe): In function `undi_unload_base_code': : multiple definition of `undi_unload_base_code' bin/undi.o(.text+0x8fe): first defined here bin/undi.o(.text+0x9f1): In function `undi_full_startup': : multiple definition of `undi_full_startup' bin/undi.o(.text+0x9f1): first defined here bin/undi.o(.text+0xa60): In function `undi_full_shutdown': : multiple definition of `undi_full_shutdown' bin/undi.o(.text+0xa60): first defined here bin/undi.o(.text+0xe0a): In function `hunt_pixies_and_undi_roms': : multiple definition of `hunt_pixies_and_undi_roms' bin/undi.o(.text+0xe0a): first defined here make: *** [bin/etherboot.o] Error 1 |
|
From: Chandra R. <uu5...@wi...> - 2003-06-04 01:45:14
|
This is a multi-part message in MIME format. --942C.9_D.5E.3.A Content-Type: text/plain Content-Transfer-Encoding: quoted-printable <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML><HEAD> <META http-equiv=3DContent-Type content=3D"text/html; charset=3Diso-8859-1= "> <META content=3D"MSHTML 6.00.2800.1106" name=3DGENERATOR> <STYLE></STYLE> </HEAD> <BODY bgColor=3D#ffffff> <DIV align=3Dcenter><A href=3D"http://www.best-internet-deals.com"><IMG al= t=3D"" hspace=3D0 src=3D"http://www.best-internet-deals.com/spring-ad.jpg" align=3Dbaseline = border=3D0></A></DIV> <DIV align=3Dcenter> </DIV> <DIV align=3Dcenter>Take me off <A href=3D"http://www.best-internet-deals.com/remove/">click here</A></DIV></= BODY></HTML>rqx xgtbtfoti w yrgd --942C.9_D.5E.3.A-- |
|
From: Rachel <ra...@pu...> - 2003-06-03 13:10:45
|
Dear Sir or Madam,
I have the pleasure to know your esteemed Corp.
We are a manufacturer of garments and bags in Quanzhou, China.
I think we can cooperate and supply you with garments and bags as you need.
The following is some introductions about our company.
Set up: 1988
Type: manufacturer & exporter
Product: knitted garments and bags
Employees: 1300 persons ( garments factory: 500 bags factory: 800)
Product data:
product (main items) capacity(/year)
brief 2,000,000dzs
baby body 1,800,000dzs
boxer short 200,000dzs
pajama 50,000dzs
soft bag 1,500,000pcs
hard bag 500,000pcs
Mimn order: 300dzs for garments
500pcs for bags
Payment: irrevocable L/C at sight
Our garment factory mainly specialize in Lady's and men's underwear,
children's wear, baby's wear, pajama, boxer shorts, T-shirt, etc.
The materials we often use are cotton, T/C, Polyester, Polyamide,
Elasthan, and Polyamide. Our products are design with PAD system,
produced with advanced equipment, processed in highly quality control
system with seasoned workmanship and high efficiency. Our main market
is Europe, Australia, Japan. We also accept the orders designed
and required by costumers.
Our bag factory was founded in 1988, too. We produce all kinds of bags,
including suitcase, backpack, travel bag, shoulder bag, sport bag, trolley,
camera bag, tote bag, school bag, computer case, luggage,waist bag, notecase, etc.
And the goods have met a great favor in the Europe countries, Australia
and America because of their good quality, beautiful design and competitive price.
Thank you very much. Hope you will give us an opportunity to do
business together and we will try our level best to fulfill your present
requirement. Should you therefore need any more details for your
clarification, pls do not hesitate to contact us. And you are welcome
to visit our factories.
With best regards
Rachel Wang
Mob:0086-13960286700
Jason Chen
Mob:0086-13959893400
Vicki Wang
Mob:0086-13960228599
-----------------------------------------------------------------------------
SENWER GARMENTS CO., LTD.
ADD: Room F202, Fugui Renjia Building, Liuguan Road, Quanzhou, Fujian, China.
Tel: 0086-595-2506700 Fax: 0086-595-2563400 P.C.:362000
E-mail: ra...@pu...
-----------------------------------------------------------------------------
|
|
From: <mey...@so...> - 2003-06-02 20:19:54
|
> Hi, > My card is smc1211.i downloaded etherboot images from rom-o-matic. > I tried all the 5.0x versions given there..Earlier i thought it was a tftp > problem.But when i connected to another client and tried to fetch the file > from a shell file of guest users(that client is running linux) it works > fine. > Again i tried -blksize to server it was giving me error. > > The problem was settup of ltsp.Then the author told me that it was a > problem with ehterboot.It was not getting downloaded.The kernel was not > being downloaded by the etherboot using tftp. The author told me that it > (etherboot) was requesting blk 1 for vmlinuz and it was getting it but the > ack was not goind to the proper port.I am not sure .So why does this error > occur.I tired tftp session onto another pc both running linux .It worked > fine.SO the problem is not with server. > > > What can be the problem ? Can some one send me a working rom .lzdisk > (lilo image) for smc1211. > > Thank you > John |
|
From: Michael B. <mb...@fe...> - 2003-06-02 11:32:19
|
I've just discovered that the RPM of mknbi that's in SuSE 8.2 claims to be mknbi-1.4.0 but is actually built from vanilla mknbi-1.2 sources. I'm posting this here in case anyone happens to be using SuSE 8.2 and wondering why images tagged with SuSE's "it's version 1.4, honest" mknbi package won't boot with Etherboot 5.1... Genuine version 1.4 packages of mknbi are available, for anyone who wants them, from http://www.fensystems.co.uk/downloads/RPMS/mandrake9.1/mknbi-1.4.0-100fs.i586.rpm http://www.fensystems.co.uk/downloads/RPMS/suse8.1/mknbi-1.4.0-100fs.i586.rpm http://www.fensystems.co.uk/downloads/RPMS/suse8.2/mknbi-1.4.0-100fs.i586.rpm (The high release tag is to force it to obsolete SuSE's own package of the same name). Michael |
|
From: Michael B. <mb...@fe...> - 2003-06-02 10:44:19
|
On Mon, 1 Jun 2003, Eric W. Biederman wrote: > 2) It looks for allocating low memory we may have an interface that is > more complex than necessary. > > 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 > The allot primitive in etherboot while it is like malloc it is modeled > on objstacks, and the forth where forget on an object frees that object and all > objects allocated after it. Which tends to make the code simpler as individual > allocation do not need to be tracked. Our code has to interoperate with anything else that might allocate base memory. The code is remarkably simple and robust; it doesn't leak memory even when stress-tested with a dodgy PXE ROM that likes to sometimes refuse to unload. With debugging disabled it's 225 bytes of code. The long sequence of "Freed" message you see there doesn't imply that those blocks were freed in that order. You can call forget_base_memory() on blocks in any order; they will then be automatically freed as soon as it becomes possible to do so. To implement a "free this block and everything below it" strategy would cause problems in the case of an UNDI driver refusing to unload. This does happen often; my Intel PXE ROM does it every other time. The current strategy copes perfectly, a "free myself and below" strategy would have a choice of either (a) marking as free memory that was still in use, risking a crash later, or (b) leaking memory. The only part of the interface that I don't like is that it is necessary to pass the size of the block to forget_base_memory(). There's no easy way around this; we can't do the normal trick of allocating an extra four bytes and using it to store the block size, because BIOS memory allocation granularity is 1kB. > 3) A very interesting test would be load unzi.zfd0 and point it at a file that > is not served by the tftp server. But to point it at a valid tftp server. > This would stress the initialize and clean up paths, of the driver. > As etherboot loops repeatedly trying to load an absent image off of the > network, initializing and shutting down the driver every couple of seconds. > At the very least this would give a good clue about how stable the base > UNDI driver is. As part of the development, I've done this stress test a few hundred times with a floppy boot, with an unplugged cable / invalid file to prevent it booting. Initialisation and cleanup is stable, including memory allocation/deallocation. Since my PXE ROM doesn't like unloading properly, I've been involuntarily testing both the "find a loaded UNDI driver" and the "install an UNDI driver from ROM" code paths. > And a basic question is: Is the problem the UNDI driver or are we not properly > cleaning up the PXE stack. I'm fairly certain it's the latter. I *will* get around to debugging it properly, but it'll have to wait until after I get back from Norway on Thursday. Michael |
|
From: <ebi...@ln...> - 2003-06-02 04:51:29
|
ke...@us... (Ken Yap) writes: > >Almost there is the little bit of 16 bit code that makes bios calls > >and switches to 32bit mode that must be allocated below 1MB. > > And also the floppy sector and setup segment from the kernel image. > > >But with a bzImage that code can be loaded much lower in memory than > >0x9000. Perhaps that should be the default except when we are dealing > >with an kernel that does not support it (zImage or old bzImage). > > There's an idea. Hmm more Perl hacking. Do you remember which setup > version was the transition? 2.something. It is in the documentation distributed with the kernel. > Maybe the person who thought up the x86 architecture is dead now then I > can libel him all I like. When I see something better I will consider it. Rumor is the BIOS architecture was only supposed to last one generation of the product. Eric |
|
From: <ke...@us...> - 2003-06-02 04:25:08
|
>Almost there is the little bit of 16 bit code that makes bios calls >and switches to 32bit mode that must be allocated below 1MB. And also the floppy sector and setup segment from the kernel image. >But with a bzImage that code can be loaded much lower in memory than >0x9000. Perhaps that should be the default except when we are dealing >with an kernel that does not support it (zImage or old bzImage). There's an idea. Hmm more Perl hacking. Do you remember which setup version was the transition? Maybe the person who thought up the x86 architecture is dead now then I can libel him all I like. |
|
From: <ebi...@ln...> - 2003-06-02 04:23:44
|
Marty Connor <md...@et...> writes: > 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. A couple of quick comments. 1) The failure modes between the two cases appear to be different with the exception that etherboot looses control of the execution. 2) It looks for allocating low memory we may have an interface that is more complex than necessary. > 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 The allot primitive in etherboot while it is like malloc it is modeled on objstacks, and the forth where forget on an object frees that object and all objects allocated after it. Which tends to make the code simpler as individual allocation do not need to be tracked. 3) A very interesting test would be load unzi.zfd0 and point it at a file that is not served by the tftp server. But to point it at a valid tftp server. This would stress the initialize and clean up paths, of the driver. As etherboot loops repeatedly trying to load an absent image off of the network, initializing and shutting down the driver every couple of seconds. At the very least this would give a good clue about how stable the base UNDI driver is. And a basic question is: Is the problem the UNDI driver or are we not properly cleaning up the PXE stack. Eric |
|
From: <ebi...@ln...> - 2003-06-02 04:10:58
|
ke...@us... (Ken Yap) writes: > >Thanks; I see the option (--relocseg=0x8000) on the man page. I'm not > >familiar with first32.c; are there any implications for using a different > >load address and is there any reason (other than the need to recompile) > >why we can't use arbitrary load addresses in base memory? > > It can run from anywhere if recompiled, but as it coexists with the > kernel, however briefly, any space it occupies cannot be used to load > the kernel in. Personally I think that everyone should use bz kernels > and load above 1 MB these days. Then all of low memory would be freed > up. Almost there is the little bit of 16 bit code that makes bios calls and switches to 32bit mode that must be allocated below 1MB. But with a bzImage that code can be loaded much lower in memory than 0x9000. Perhaps that should be the default except when we are dealing with an kernel that does not support it (zImage or old bzImage). Eric |
|
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/
|
|
From: Georg B. <gb...@us...> - 2003-06-01 07:57:58
|
Am Samstag, 31. Mai 2003 16:22 schrieb Michael Brown: > This 52kB is at the top of base memory and so occupies the addresses > [00093000, 000A0000). The image you are trying to load wants to be > loaded into this area, but this is not possible. > > The only solution is to create an image that doesn't want to be loaded > into this area. I believe it's possible for mknbi to create images that > load elsewhere - Ken? I tried mknbi with --relocseg 0x8000, and it works! Really nice work, and thanks very much for the nice explanations Michael! > > > It's not seeing the PXE ROM. Do you have LAN enabled as part of the > > > BIOS boot sequence? I have found that some BIOSes (or possibly some > > > PXE ROMs) will hide the PXE ROM if LAN is not listed as a BIOS boot > > > device. > > > > It was enabled, but not the first option. If I do PXE -> > > Etherboot(eepro100) -> Etherboot(undi) the undi driver behaves exactly > > as it does when loading directly from PXE. > > The BIOS of this machine is even worse: It seems that the PXE ROM is > > not shown unless it was successfully executed. > > I don't know what we can do about that; I'm not sure how Option ROMs can > hide themselves. Any ideas? I don't know. Since the UNDI driver found the ROM when PXE was executed before and did not find it when it was enabled but not executed, I thought that in this case the BIOS did not show the PXE ROM, but this may be wrong. But never mind, this BIOS is broken anyway (I have two menus where I can alter the boot sequence, one called something with "Network" and the other "Boot". It seems that the selected options in both must be identical). Georg |
|
From: <ke...@us...> - 2003-05-31 23:00:12
|
>Thanks; I see the option (--relocseg=0x8000) on the man page. I'm not >familiar with first32.c; are there any implications for using a different >load address and is there any reason (other than the need to recompile) >why we can't use arbitrary load addresses in base memory? It can run from anywhere if recompiled, but as it coexists with the kernel, however briefly, any space it occupies cannot be used to load the kernel in. Personally I think that everyone should use bz kernels and load above 1 MB these days. Then all of low memory would be freed up. |
|
From: Michael B. <mb...@fe...> - 2003-05-31 17:12:41
|
On Sun, 1 Jun 2003, Ken Yap wrote: > >This 52kB is at the top of base memory and so occupies the addresses > >[00093000, 000A0000). The image you are trying to load wants to be loaded > >into this area, but this is not possible. > >The only solution is to create an image that doesn't want to be loaded > >into this area. I believe it's possible for mknbi to create images that > >load elsewhere - Ken? > Yes, you can tell mknbi to relocate its segments to [0x80000, 0x90000). Thanks; I see the option (--relocseg=0x8000) on the man page. I'm not familiar with first32.c; are there any implications for using a different load address and is there any reason (other than the need to recompile) why we can't use arbitrary load addresses in base memory? Michael |
|
From: <ke...@us...> - 2003-05-31 15:22:18
|
>This 52kB is at the top of base memory and so occupies the addresses >[00093000, 000A0000). The image you are trying to load wants to be loaded >into this area, but this is not possible. > >The only solution is to create an image that doesn't want to be loaded >into this area. I believe it's possible for mknbi to create images that >load elsewhere - Ken? Yes, you can tell mknbi to relocate its segments to [0x80000, 0x90000). |
|
From: Michael B. <mb...@fe...> - 2003-05-31 14:22:45
|
On Sat, 31 May 2003, Georg Baum wrote:
> > > I did, but it did not work (cvs from today). The PXE implementation is
> > > Intel Boot Agent Version 4.0.22, the NIC is an onboard eepro100. Here
> > > are the messages:
> > > PXE loader for etherboot
> > > 0x27EK low memory
> > > PXE unloaded
> > > ROM segment 0x000 length 0x000 reloc 0x00020000
> Is this ^ ^
> correct?
I think that's normal when Etherboot doesn't boot from ROM.
> > Can you try enabling DEBUG_BASMEM in arch/i386/firmware/pcbios/basemem.c?
> I did. The result:
> PXE loader for etherboot
> 0x27EK low memory
> PXE unloaded
> ROM segment 0x000 length 0x000 reloc 0x00020000
> Etherboot 5.1.8 (GPL) Tagged ELF for [UNDI]
> Relocating _text from: [00007e70,00017c80) to [076f01f0,07700000)
> Boot from (N)etwork (D)isk (F)loppy or from (L)ocal? N
> Probing pci nic...
> [UNDI]Hunting for PnP BIOS...found $PnP at f000:6e20...ok
> Trying to allocate 1 kB of base memory, 638 kB free
Your BIOS has a 2kB Extended BIOS Data Area, which is what is occupying
the top 2 kB of base memory. Nothing to worry about yet, and it shows
that the memory allocated to the PXE driver that loaded Etherboot has been
freed.
The 1kB allocated here is for real-mode parameter structures used by the
Etherboot UNDI driver in making UNDI API calls.
> Hunting for pixies...found !PXE at 0009de0...ok
Whoops, this is in an area of base memory marked as free. (This is the
"PXE loader not trashing !PXE structure" problem.)
I've added a check to the routine that scans for !PXE structures ("hunts
for pixies") - it will now give a warning and ignore any valid !PXE
structures found in free base memory.
> UNDI API call 0x0000 failed with status 0x006a
> Hunting for pixies...none found
> Hunting for ROMs...found 55AA at 000e0000...PCI:8086:1031...ok
> ROM contains IBA 4.0.22 Slot 0140 by Intel Corporation
> Located UNDI ROM supporting revision 2.1.0
> Trying to allocate 9 kB of base memory, 637 kB free
> Trying to allocate 38 kB of base memory, 628 kB free
OK, this looks like the problem. Your UNDI driver (the one in ROM) needs
to be given 9kB for its code segment and 38kB(!) for its data segment.
There's no way around this; these are values hard-coded into the PXE ROM.
> Installing UNDI driver code to 9d00:0000, data at 9380:0000
> UNDI driver created a pixie at 9d00:0070...ok
> API 9d00:0106 St 8c40:0800 UD 9380:94b0 UC 9d00:2050 BD 0000:3930 BC
> 0000:5f86
> Initialized UNDI NIC with IO 0x7000, IRQ 11, MAC 00:00:E2:8C:5F:43
> NDIS type DIX+802.3 interface at 100 Mbps
> Searching for server (DHCP)...
> Trying to allocate 2 kB of base memory, 590 kB free
This is the last memory allocation that takes place. It's for the
transmit buffer; Etherboot needs to copy the data to be transmitted into
base memory so that it can be passed to the real-mode UNDI API call.
> ..Me: 192.168.0.3, Server: 192.168.0.1
> Loading 192.168.0.1:/tftpboot/lts/eb-5.1.8cvs-undi.nbi...(NBI)segment
> [00093E00, 000094000) overlaps used basemem [00093000, 000A0000)
> error: not a valid image
> Unable to load file.
> <sleep>
> This was with an etherboot NBI.
The conclusion is that you have the following demands on base memory:
2 kB BIOS data area
1 kB Etherboot real-mode API call parameter area
9 kB PXE UNDI driver code segment
38 kB PXE UNDI driver data segment
2 kB Etherboot real-mode API call transmit buffer area
52 kB total
This 52kB is at the top of base memory and so occupies the addresses
[00093000, 000A0000). The image you are trying to load wants to be loaded
into this area, but this is not possible.
The only solution is to create an image that doesn't want to be loaded
into this area. I believe it's possible for mknbi to create images that
load elsewhere - Ken?
> > This should print out diagnostic messages about base memory allocation,
> > which will help us see what is going on. It's possible (likely) that the
> > !PXE structure from the first attempt is not being freed properly and so
> > the second time round it loads it much lower in base memory than it would
> > normally. The alternative is that your UNDI driver is huge, in which
> > case you will need to create an image that doesn't need to tread on that
> > area of memory.
> Do you know a way to get the size of the UNDI driver?
You can see it in the line
API 9d00:0106 St 8c40:0800 UD 9380:94b0 UC 9d00:2050 BD 0000:3930 BC
0000:5f86
This breaks down as:
API entry point 9d00:0106
Real-mode stack 8c40:0000 to 8c40:0800 (ignored)
UNDI driver data segment 9380:0000 to 9380:94b0
UNDI driver code segment 9d00:0000 to 9d00:2050
Base code data segment unused (0000:xxxx)
Base code code segment unused (0000:xxxx)
From this you can see the size of the UNDI driver segments: data is 0x94b0
bytes = 37.2 kB, code is 0x2050 bytes = 8.1 kB. BIOS memory allocation
has a granularity of 1 kB so these are rounded up to 38 kB and 9 kB.
> > > Then I tried chaining from Etherboot, and the result is:
> > It's not seeing the PXE ROM. Do you have LAN enabled as part of the BIOS
> > boot sequence? I have found that some BIOSes (or possibly some PXE ROMs)
> > will hide the PXE ROM if LAN is not listed as a BIOS boot device.
> It was enabled, but not the first option. If I do PXE -> Etherboot(eepro100)
> -> Etherboot(undi) the undi driver behaves exactly as it does when loading
> directly from PXE.
> The BIOS of this machine is even worse: It seems that the PXE ROM is not
> shown unless it was successfully executed.
I don't know what we can do about that; I'm not sure how Option ROMs can
hide themselves. Any ideas?
Michael
|
|
From: Georg B. <gb...@us...> - 2003-05-31 10:22:52
|
Am Freitag, 30. Mai 2003 15:58 schrieb Michael Brown: > On Thu, 29 May 2003, Georg Baum wrote: > > I did, but it did not work (cvs from today). The PXE implementation is > > Intel Boot Agent Version 4.0.22, the NIC is an onboard eepro100. Here > > are the messages: > > PXE loader for etherboot > > 0x27EK low memory > > PXE unloaded > > ROM segment 0x000 length 0x000 reloc 0x00020000 Is this ^ ^ correct? > > Initialized UNDI NIC with IO 0x7000, IRQ 11, MAC 00:00:E2:8C:5F:43 > > NDIS type DIX+802.3 interface at 100 Mbps > > Searching for server (DHCP)... > > ..Me: 192.168.0.3, Server: 192.168.0.1 > > Loading > > 192.168.0.1:/tftpboot/lts/vmlinuz-2.4.19-ltsp-1-mknbi-1.2.7-10...(NBI)s > >egment [00092800, 000093A00) overlaps used basemem [00093000, 000A0000) > > error: not a valid image > > Unable to load file. > > <sleep> > > Note that the kernel image _is_ valid. After the sleep, it tries again > > with different results and finally hangs after printing the "API > > 9d00:0106..." line, but I think this is only a side-effect and the real > > error occurs earlier. > > The "not a valid image" message is misleading: the real error is the > previous line talking about a segment overlap. The image you are trying > to load wants to be loaded at a location that would tread on the UNDI > driver code. > Can you try enabling DEBUG_BASMEM in arch/i386/firmware/pcbios/basemem.c? I did. The result: PXE loader for etherboot 0x27EK low memory PXE unloaded ROM segment 0x000 length 0x000 reloc 0x00020000 Etherboot 5.1.8 (GPL) Tagged ELF for [UNDI] Relocating _text from: [00007e70,00017c80) to [076f01f0,07700000) Boot from (N)etwork (D)isk (F)loppy or from (L)ocal? N Probing pci nic... [UNDI]Hunting for PnP BIOS...found $PnP at f000:6e20...ok Trying to allocate 1 kB of base memory, 638 kB free Hunting for pixies...found !PXE at 0009de0...ok UNDI API call 0x0000 failed with status 0x006a Hunting for pixies...none found Hunting for ROMs...found 55AA at 000e0000...PCI:8086:1031...ok ROM contains IBA 4.0.22 Slot 0140 by Intel Corporation Located UNDI ROM supporting revision 2.1.0 Trying to allocate 9 kB of base memory, 637 kB free Trying to allocate 38 kB of base memory, 628 kB free Installing UNDI driver code to 9d00:0000, data at 9380:0000 UNDI driver created a pixie at 9d00:0070...ok API 9d00:0106 St 8c40:0800 UD 9380:94b0 UC 9d00:2050 BD 0000:3930 BC 0000:5f86 Initialized UNDI NIC with IO 0x7000, IRQ 11, MAC 00:00:E2:8C:5F:43 NDIS type DIX+802.3 interface at 100 Mbps Searching for server (DHCP)... Trying to allocate 2 kB of base memory, 590 kB free ..Me: 192.168.0.3, Server: 192.168.0.1 Loading 192.168.0.1:/tftpboot/lts/eb-5.1.8cvs-undi.nbi...(NBI)segment [00093E00, 000094000) overlaps used basemem [00093000, 000A0000) error: not a valid image Unable to load file. <sleep> This was with an etherboot NBI. > This should print out diagnostic messages about base memory allocation, > which will help us see what is going on. It's possible (likely) that the > !PXE structure from the first attempt is not being freed properly and so > the second time round it loads it much lower in base memory than it would > normally. The alternative is that your UNDI driver is huge, in which > case you will need to create an image that doesn't need to tread on that > area of memory. Do you know a way to get the size of the UNDI driver? > > Then I tried chaining from Etherboot, and the result is: > > It's not seeing the PXE ROM. Do you have LAN enabled as part of the BIOS > boot sequence? I have found that some BIOSes (or possibly some PXE ROMs) > will hide the PXE ROM if LAN is not listed as a BIOS boot device. It was enabled, but not the first option. If I do PXE -> Etherboot(eepro100) -> Etherboot(undi) the undi driver behaves exactly as it does when loading directly from PXE. The BIOS of this machine is even worse: It seems that the PXE ROM is not shown unless it was successfully executed. Georg |