====== Daniel Verkamp: COMBOOT Support ====== ===== Journal ===== ==== Week 0 ==== ---- === 19 May 2008 === Journal created. === 21 May 2008 === * Image type detection by filename: check image->uri? * arch/i386/README.i386: use libpm for COM32 transitions, librm for 16-bit COMBOOT * hook_bios_interrupt -> hook the COMBOOT API ints (for 16-bit) with stubs that call back into gPXE? * REAL_CODE, PHYS_CODE in inline asm * memcpy_user, real_to_user * i386_all_regs, regs_t (ordered like PUSHA) types * _virt_to_phys to switch from etherboot-style virtual address space to flat physical addresses (COM32) * basemem_packet (BASEMEM_PACKET_LEN = 1514) * arch/i386/include/virtaddr.h: VIRTUAL/PHYSICAL/REAL_CS/DS * install_rm_callback_interface * Split COMBOOT and C32 or use the same image type for both? == TODO == * Check current PXE API support * Find out how to add config option for image type === 23 May 2008 === * Had meeting with mdc and mcb30; discussed basic architecture for COMBOOT support * Discovered how near RET from 16-bit COMBOOT works - INT 20h at byte 0 of segment (documented as part of PSP in COMBOOT spec) * Sample hook_bios_interrupt/call_prot code from mcb30; see [[soc/2008/dverkamp/notes/hook_bios_interrupt]] * Finished basic 16-bit COMBOOT loading and INT 20h and INT 21h AH=02h hooks {{:soc:2008:dverkamp:journal:dverkamp-may-23-2008.png|}} === 24 May 2008 === * Figured out and fixed why RET wasn't working - top of stack wasn't being cleared * Cleaned up and committed beginnings of COMBOOT API