Daniel Verkamp: COMBOOT Support

Journal

Week 4


16 June 2008

18 June 2008

  • Discussed automated testing with mdc and stefanha; took a look at Expect; also qemu -nographic/-serial redirection and gPXE's CONSOLE_SERIAL for acquiring test output

19 June 2008

  • Worked on test suite for COMBOOT (unfinished; 16-bit COMBOOT program that calls API functions and checks return values, CF, etc.; eventually will be integrated with qemu for automated testing)
  • Wrote a simple shuffle and boot testcase (which turned out to be incorrect, but worked anyway for some reason in bochs!?) - still work to do here; I think the implementation in gPXE is correct, but I need a correct testcase first to be sure.
  • Talked to hpa a bit about shuffle and boot - maybe it will not be possible to implement it correctly in gPXE (at least without some more complicated tricks, relocating the shuffle and boot code to below 0x7C00 before running it, or else the code might get overwritten by one of the copies..)

20 June 2008

  • Met with mcb30 and mdc; decided shuffle and boot will be okay, since gPXE removes the memory regions it uses from the memory map, effectively hiding itself.
  • Fixed shuffle and boot testcase 1d7e6b8cc3ec0b940c6fec2df61fb7969ec7e0af - now it works in qemu
  • Got menu.c32 to show an actual menu from a SYSLINUX example configuration file after hacking the API that returns the configuration filename to just return a constant; menu.c32 apparently uses the newer “Run kernel” function that I haven't implemented yet, so that will be the next step.
  • In the course of testing on real hardware, noticed that gtest.gpxe (tomsrtbt) no longer booted on a couple of my machines (both with tulip-based cards), so I tried git-bisect to determine what broke it. In the end it pointed at the latest commit, arbitrary script line lengths, but I think I did something wrong (or the build system did), as the first try on that checkout actually worked. When I did make clean and built again, it failed consistently, and after checking out the previous head, that worked consistently, so I'm pretty sure this is the culprit, but I did not determine what is wrong.
  • Got sidetracked into a bit of driver cleanup :) - reorganized and updated the PCI ID list of the tulip driver , along with some whitespace/indentation cleanup first, as it was inconsistent. After the cleanup (removing unused fields, getting rid of some strings that aren't really necessary (although maybe nice for debugging)), the driver is a little smaller - originally 14533 bytes and now 9022 bytes, according to 'size'. Maybe I will update this driver to the new API if I get some time…

QR Code
QR Code soc:2008:dverkamp:journal:week4 (generated for current page)