>Hi all,
> I just fixed the problem where trying to boot dos by chaining from PXE to
>EtherBoot to dos crashes the system in EtherBoot 5.0.8. Also, on my system
>once PXE had loaded EtherBoot, going to local boot to load dos would crash
>during dos loading as well.
>
> In version 2.1 of the PXE Specification, in the UNDI_STARTUP service
>description, it says that 'PXENV_UNDI_STARTUP and PXENV_UNDI_SHUTDOWN are no
>longer responsible for chaining interrupt 1Ah. This must be done by the
>PXENV_START_UNDI and PXENV_STOP_UNDI calls.' Since loader.S only uses
>PXENV_UNDI_SHUTDOWN and PXENV_UNLOAD_STACK, the interrupt doesn't get
>unhooked. If dos or EtherBoot or any other images load over the PXE
>interrupt handler, then when int 1Ah gets called, the system will crash.
>The way I fixed this was to add a call to PXENV_STOP_UNDI. Other ways to
>fix this would be to relocate EtherBoot code to other areas or not release
>the PXE memory to the system.
>
>How should I submit the changes to the code or has this problem already been
>fixed?
>
>I also rewrote the hex to ascii routines that display the amount of free
>memory in the PXE loader. The current routines don't seem to work properly.
That's wonderful, you've finally fixed a long standing bug. If the fixes
aren't too large, say > 10kB, just post them to this developer list so
that Peter and Vasil can give a second opinion. If there are no
corrections, I will issue a patch on the web site, and also queue this
up for 5.0.9 (and also fix it in 5.1.x). And your name gets inscribed in
the change log, naturally.
Thanks, Ken
|