**This is an old revision of the document!** ----
====== Daniel Verkamp: COMBOOT Support ====== ===== Journal ===== ==== Week 8 ==== ---- === 15-17 July 2008 === * After a conversation with mcb30 last Thursday on how to fix the problems with COM32 stack overwrites during image loading, I've implemented his suggestions. This resulted in a 3-day debugging marathon until I switched to a simpler test case and just single stepped through the entire image execution process... and finally noticed (thanks to the Intel-syntax Bochs debugger) that I had written a constant as 12 instead of $12 (AT&T syntax strikes again :-)). But the upshot of all this is that COM32 programs using "Run kernel image" work totally correctly now, without any hack to limit the stack size, and I can say without reservation that menu.c32 is working perfectly fine now (given the configuration filename via the command line); it can load itself numerous times (until there is no more memory left to load the image again) as well as other image types without any problems now. I plan to start doing further testing on real hardware with various booting scenarios now, but so far, everything looks good. === 18 July === * Added a jmp to self-modifying intcall code to avoid problems on 486 (makes execution in qemu much faster too) [[ http://git.etherboot.org/?p=people/dverkamp/gpxe.git;a=commitdiff;h=3d6bd95bcb0919c4c14df0a1bce3641388f6d88d | 3d6bd95bcb0919c4c14df0a1bce3641388f6d88d ]] Since menu.c32 is working well now, here is a sample SYSLINUX menu I am using to test (http://10.0.0.11 is a web server): <code> default menu.c32 prompt 0 menu title gPXE COMBOOT menu test timeout 600 label tomsrtbt menu label tomsrtbt menu default kernel http://10.0.0.11/~daniel/gpxe/gtest/bz2bzImage append initrd=http://10.0.0.11/~daniel/gpxe/gtest/initrd.bz2 root=100 label gtest menu label tomsrtbt via gtest.gpxe kernel http://10.0.0.11/~daniel/gpxe/gtest.gpxe label tube menu label tube kernel http://10.0.0.11/~daniel/gpxe/TUBE.COM </code>