Subject: PXE boot loader?
To: None <port-i386@netbsd.org>
From: Andrew Gillham <gillham@vaultron.com>
List: port-i386
Date: 09/11/2000 15:30:15
Is anyone working on a PXE compatible boot?  It appears to be somewhat
easy to get PXE to load/execute code, but I'm having problems with the
i386/stand code, particularly with the 16bit versus 32bit assembler stuff.

Basically PXE loads the image at 0:7c00 and far calls 0:7c00.  Using
objcopy I can easily make it load and run 'biosboot.sym' which then accesses
the floppy and prints read error.  So I know it is executing code. :)

Hacking on 'start_rom.S' myself I can output a couple bytes to the screen,
but the "ROMDEBUG" output doesn't work as expected.

Considering that the PXE rom sets everything up as if the code was just read
in from the bootsector I thought I could just add a 'jmp to_boot2' at
the beginning of start_bootsect.S and use that.  No luck here either.
(well ok, it at least appears to set everything up like this)

I've tried using the FreeBSD 'pxeldr.s' code, but our version of gas can't
assemble the 16bit stuff correctly. (I think)

My assembler skills are very good, and this 16bit versus 32bit stuff
(i.e. data32) has me confused and unable to make a simple 'int 0x10' call
to print a byte reliably. :(

Anyway, I have a number of PXE capable Intel NICs that I would like to
netboot with.  I don't really want to flash them with the NetBSD netboot
code, I would prefer to have them pull down the netboot image via PXE and
boot that way.  Of course full UNDI/PXE support would be nice so that
any PXE ethernet could be netbooted, but that will have to wait. ;-)

Thanks for any insight.

-Andrew