Table of Contents
Daniel Verkamp: COMBOOT Support
Journal
Week 6
30 June 2008
- Discussed (with hpa and mcb30) implementation of newer Run kernel image function and Get configuration filename function; learned that menu.c32 and friends take an optional command line parameter to specify the configuration filename, so for now I will avoid implementing the configuration filename function until I'm sure how to do it to ensure the best compatibility with SYSLINUX/PXELINUX. Added parsing of kernel command line to get initrd= parameter and load it, but unfinished, as I am not sure of the best way to load the initrd myself (building a command to pass to system(), exposing some of the hci functionality internally, etc.)
01 July 2008
- Finished initial implementation of “Run kernel image” function; testing it with the standard gtest.gpxe/tomsrtbt images, it fails in the middle of loading the bzimage (qemu reports a jump outside of memory); worked on trying to debug this for a while, but DEBUG=bzimage didn't print any messages, so it seems to be before the bzimage image type even gets involved. More debugging tomorrow, and maybe the GDB stub will help…
02 July 2008
- Still more debugging; no real progress yet in determining the problem with menu bzimage loading.
03 July 2008
- Seems to be dying during the HTTP download, judging by DEBUG=http. Tracing deeper…
04 July 2008
- Thanks to invaluable help from Stefan, we've determined that the problem is due to the memory used for the com32 stack not being marked as used and therefore being overwritten; Stefan noted that he was working on a umalloc patch to allow multiple heaps, which could help solve this problem. Also noticed that com32 wasn't calling image_unregister like comboot; adding this, menu.c32 does work correctly on a real hardware test machine (probably by luck, noting the memory overwrites mentioned above) to boot tomsrtbt and a 16-bit COMBOOT program. However, it does not correctly boot another instance of menu.c32; more investigation to follow once the memory allocation issue is solved.