[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
course)
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,
Regards,
Nikolai
More information about the ipxe-devel
mailing list