Loading iPXE from RPL
|
2015-09-30, 23:00
Post: #1
|
|||
|
|||
Loading iPXE from RPL
I'm trying to boot linux, using an old ISA NIC.
Until now, my iPXE setup works with various PCI NICs, mostly Realtek RTL8139s and 3Com 3c905s, either with from their original bootrom or with gPXE/iPXE added to the BIOS ROM. Chainloading from the original PXE ROM to iPXE and then to Linux, DOS or memtest86 works without any problem. Now, I replaced the PCI NIC with a NE2000 compatible ISA card (Dlink DE-224 with DE22X4 16KiB bootrom). Unluckily, the only bootrom available only support RPL and the addressable ROM is too small for etherboot/gPXE/iPXE anyways. But I discovered rpld, so I installed it on a random machine connected to the same network. I never managed to boot a recent gPXE or an iPXE image (either rom or pxe images fails to boot or displays "pxe->eb: no pxe stack found!"). Rpld's load/execute addresses are not very clearly explained, but that's only a part of the problem (and doesn't depends on iPXE). Anyways, I managed to boot an old etherboot 5.4.3 image (works the same way with rom as well as zrom images) from RPL, assuming load=0x1000 and execute=0x1006 (it also works the same way with load=0x2000 and execute=0x2006), following this post. The RPL ROM loads this etherboot image, then chainloads to iPXE, which displays the menu, load the images and tries to boot from them. The main problem is to have the PC rebooting as soon as it tries to boot from either memtest, Linux kernel/initrd, DOS floppy image or even memtest86 iso. |
|||
2015-10-22, 00:50
Post: #2
|
|||
|
|||
RE: Loading iPXE from RPL
(2015-09-30 23:00)man-x86 Wrote: Rpld's load/execute addresses are not very clearly explained, but that's only a part of the problem (and doesn't depends on iPXE). Interesting! You might be able to get the RPL ROM to boot an iPXE ROM image directly by providing the correct execution address. For example: Code: make bin/ne.rom with my build environment gives Code: 0000028e l .prefix 00000044 int19_entry which should mean that load=0x2000 and execute=0x228e would work to load ne.rom directly from RPL. qemu apparently has an emulation for the ISA ne2k NIC. Could you extract the RPL ROM and e-mail me a copy? If that loads, then it should be relatively trivial to create a .rpl format for iPXE so that you could run just Code: make bin/ne.rpl and then boot using load=0x1000 and execute=0x1000. Michael Michael |
|||
2015-10-26, 15:22
Post: #3
|
|||
|
|||
RE: Loading iPXE from RPL
I tried to execute the code loaded at some different addresses (not only the address from int19_entry), using the ne2k_isa.rom image.
It did not went any further with most addresses (iPXE was only able to display some text by loading at 0x2000 and executing at 0x2000 or 0x2006). I also tried the same with the ne2k_isa.pxe image. Executing the code at 0x2006 managed to load the full iPXE bootloader. It displays "PXE-EB->: No PXE stack found!" and "iPXE initialising devices.. WARNING: Using legacy NIC wrapper on xx:xx:xx:xx:xx:xx" and loads the menu and is able to boot memtest, DOS and Linux. It looks like rpld's addresses and hex addresses are not corresponding (it may use "blocks" of different size). I tried to use my ROM images with qemu and its generic ne2k_isa emulation, but the software on the ROMs doesn't detects non-dlink chips. Anyway D-Link's images are located on http://ftp.dlink.ru/pub/Bootrom/Firmware/DE224C/, and I flashed the DE22X4.DAT image on my board's ROM. |
|||
2016-09-23, 22:40
Post: #4
|
|||
|
|||
RE: Loading iPXE from RPL
I forgot to update this thread as I've made a little progress while trying to make this board booting.
The main goal was to have iPXE on very old motherboards, mostly for convenience over floppy disks and cdrom. I noticed that I did most of the testing with an early 486 (HP Vectra 486M) and a 386 (Compaq Deskpro 386S). Both of them did successfully load the ne2k_isa.pxe image, but it seems to fail to execute it. I tried to modify the CFLAGS used for compiling iPXE (from no flags to -march=i386), without success. Then I tried to put this ISA board in a PII motherboard. The system loads the ne2k_isa.pxe image, executes it, chainloads to iPXE and is able to (slowly) boot an OS. Would iPXE be limited to 586 machines? Has anyone actually tested it on 486/386 machines, except qemu? |
|||
2019-05-30, 19:35
Post: #5
|
|||
|
|||
RE: Loading iPXE from RPL
Hi,
Did you ever figure out why your iPXE image wouldn't execute on a 386, and how'd you fix it? I'm facing a similar problem. thanks! |
|||
2019-05-30, 21:04
Post: #6
|
|||
|
|||
RE: Loading iPXE from RPL
you could try with the 1.0.0 release, or even older from the gpxe era, if you find something that works, use git bisect to see where it broke. (guide on the ipxe site)
there are some other more recent posts about running on old cpus as well, I have run it in qemu emulating 486 or 386, but have not tested on real hardware. Use GitHub Discussions VRAM bin |
|||
2019-08-23, 00:39
(This post was last modified: 2019-08-26 19:48 by coredump4.)
Post: #7
|
|||
|
|||
RE: Loading iPXE from RPL
(2019-05-30 21:04)NiKiZe Wrote: you could try with the 1.0.0 release, or even older from the gpxe era, if you find something that works, use git bisect to see where it broke. (guide on the ipxe site) I was initially testing using a 486 system, but now am using a P-III 866Mhz. I built iPXE & gPXE ne2k_isa images for use with an RTL8019AS ISA PnP NIC. Both .dsk images work fine when put on a floppy disk, but neither .rom image boots from the BROM chip. The card is jumpered for a 64kB ROM at address D000. gPXE hangs, but iPXE reports: Code: iPXE starting execution...1B101B10 000D11B4 0001AE58 I would guess that something's going wrong decompressing the image. What are the next troubleshooting steps at this point? Thanks! |
|||
2021-02-20, 10:47
Post: #8
|
|||
|
|||
RE: Loading iPXE from RPL
RPL booting was fixed, see https://ipxe.org/appnote/netware_rpl
and use the latest code. |
|||
« Next Oldest | Next Newest »
|
User(s) browsing this thread: 4 Guest(s)