====== Daniel Verkamp: COMBOOT Support ====== ===== Journal ===== ==== Week 2 ==== ---- === 02 June 2008 === * Message to soc-mentors discussing implementation details; learned how to get available memory, test if key is hit, call protected-mode code with flat-memory setup, etc. * Finish COMBOOT API "Get Version" - return address of version and copyright strings [[ http://git.etherboot.org/?p=people/dverkamp/gpxe.git;a=commitdiff;h=4f02100d29583bd9586e4a832eb910f9192d304b | 4f02100d29583bd9586e4a832eb910f9192d304b ]] * Fill in correct value for available memory field in PSP header [[ http://git.etherboot.org/?p=people/dverkamp/gpxe.git;a=commit;h=c07e41f20e6ef9b89e290733d5c06a8fcadfb0e1 | c07e41f20e6ef9b89e290733d5c06a8fcadfb0e1 ]] === 03 June 2008 === * Initial try at COM32 support; helper functions are not implemented yet, so nothing really works [[ http://git.etherboot.org/?p=people/dverkamp/gpxe.git;a=commitdiff;h=6d18cc20c85e7a1a195705d1da6bd67c0917138f | 6d18cc20c85e7a1a195705d1da6bd67c0917138f ]] * Wrappers for COM32 helper functions to switch between flat mapping used by COM32 and the virtual address space used by gPXE (COM32 still mainly untested) [[ http://git.etherboot.org/?p=people/dverkamp/gpxe.git;a=commitdiff;h=d5e92f83c8fba51e0a2c803b9204bae7d86c9cd8 | d5e92f83c8fba51e0a2c803b9204bae7d86c9cd8 ]] * Some small fixes to COMBOOT (always load the image in the same place, and use that fact to locate the PSP even if the image changes segment registers) [[ http://git.etherboot.org/?p=people/dverkamp/gpxe.git;a=commitdiff;h=245547103ed490bfc380d94ea7f7634a6e46f11a | 245547103ed490bfc380d94ea7f7634a6e46f11a ]] TODO: * Find correct end of available memory value for ESP before executing COM32 images * Finish helper functions (copy between registers and com32sys_t structs) === 04 June 2008 === * Find end of memory value from walking memmap and pass it to COM32 programs [[ http://git.etherboot.org/?p=people/dverkamp/gpxe.git;a=commitdiff;h=164672592936bb3026b4ada3113b3e66f0e6f51c | 164672592936bb3026b4ada3113b3e66f0e6f51c ]] === 05 June 2008 === * Fix a lot of small things related to COM32; now ''hello.c32'' and ''hello2.c32'' run correctly! [[ http://git.etherboot.org/?p=people/dverkamp/gpxe.git;a=commitdiff;h=3876fad11e9f4ba3d8319eaadffce7c30aaaeaa6 | 3876fad11e9f4ba3d8319eaadffce7c30aaaeaa6 ]], [[ http://git.etherboot.org/?p=people/dverkamp/gpxe.git;a=commitdiff;h=bcb1ffca2899973f73381d36cdae88e7c13c0881 | bcb1ffca2899973f73381d36cdae88e7c13c0881 ]], [[ http://git.etherboot.org/?p=people/dverkamp/gpxe.git;a=commitdiff;h=32030bd5f16208b01441eed8ef0d101362770ef0 | 32030bd5f16208b01441eed8ef0d101362770ef0 ]], [[ http://git.etherboot.org/?p=people/dverkamp/gpxe.git;a=commitdiff;h=8f4adae9cb357b8f88beea16439fa2afdcc127d3 | 8f4adae9cb357b8f88beea16439fa2afdcc127d3 ]], [[ http://git.etherboot.org/?p=people/dverkamp/gpxe.git;a=commitdiff;h=f7a3b956e3eaa5689da98721d1bbb55910b5d6c1 | f7a3b956e3eaa5689da98721d1bbb55910b5d6c1 ]] {{:soc:2008:dverkamp:journal:jun-05-2008.png|}} * Only the intcall helper is implemented; the farcall and cfarcall helper functions are still unimplemented, but should be relatively easy now that intcall is working