[ipxe-devel] 486 with a Realtek 8139

Nikolai Zhubr n-a-zhubr at yandex.ru
Thu May 6 23:20:46 UTC 2021

Hi all,

I've got some more input on the subject.

First, unfortunately I could not get the patched current iPXE to load to 
a real board, because the board is unaware of CD/USB booting, and using 
an .hd and .usb image for harddisk resulted in either freezing at boot 
or prompting to insert another one. Maybe its some disk geometry issue, 
but whatever settings I chose in BIOS setup, it didn't help.

Now because "good old" etherboot 5.4.4 at least boots itself from 
harddisk successfully, I tried debugging it, sort of. Observing that 
freezing likely happens in pxe_call(), I inserted a couple of 
tty-putchar fragments just before leaving real mode and shortly after 
return to real mode within etherboot's service handler, basically like this:
         movw    $0x0E28, %ax
         int     $0x10
The actual characters were '(' and ')' so as to easily see the event of 
no return. (Surrounding pushf/popf and push/pop ax were also inserted of 

And great surprise, beside showing the '()' series, it started 
communicating! At some point it still freezed, but before that, it 
managed to find and download my default config file.

Now this is both encouraging and scaring, as soon as the thing appears 
that fragile. Anyway, at least CPU instruction set and memory layout 
errors (E820 or otherwise) can probably be sorted out right away. 
Apparently it is something more dynamic, like caching/flushing/timing or 
maybe something to do with unwanted higher halves of 32-bit registers in 
real mode. Pretty puzzling.

I appologise for bugging you with ancient etherboot, please ignore if it 
is too much off topic. I'm just not sure how to proceed yet.

Thank you,


More information about the ipxe-devel mailing list