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

_______________________________________________
ipxe-devel mailing list
ipxe-devel@lists.ipxe.org
https://lists.ipxe.org/mailman/listinfo/ipxe-devel

Reply via email to