====== Differences ====== This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
soc:2008:dverkamp:journal:start [2008/06/16 13:56]
drv
soc:2008:dverkamp:journal:start [2008/08/15 12:06] (current)
drv
Line 3: Line 3:
 ===== Journal ===== ===== Journal =====
  
-==== Week 0 ==== +  ​* [[ week12 ​| Week 12]] 
----- +  * [[ week10 ​Week 10]] 
- +  * [[ week9 Week 9 ]] 
-=== 19 May 2008 === +  * [[ week8 Week 8 ]] 
- +  * [[ week7 Week 7 ]] 
-Journal created.  +  * [[ week6 | Week ]] 
- +  * [[ week5 Week 5 ]] 
-=== 21 May 2008 === +  * [[ week4 Week 4 ]] 
- +  * [[ week3 Week 3 ]] 
-  ​Image type detection by filename: check image->​uri?​ +  * [[ week2 Week 2 ]] 
-  * arch/​i386/​README.i386:​ use libpm for COM32 transitions,​ librm for 16-bit COMBOOT +  * [[ week1 Week 1 ]] 
-  * hook_bios_interrupt -> hook the COMBOOT API ints (for 16-bit) with stubs that call back into gPXE? +  * [[ week0 | Week ]]
-  * 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 +
- +
-==== Week 1 ==== +
----- +
- +
-=== 25-26 May 2008 === +
- +
-  * Allow COMBOOT images to return via INT 20h - save the (far) return address during exec, then save the old stack address in the PSP, so in INT 20h handler, just change back to old stack and do RETF +
-  * Handle other termination API functions (INT 21h, AH=00h and AH=4Ch) - call INT 20h handler +
-  * Handle INT 21h, AH=09h (Write DOS String to Console) and AH=30h (Check DOS Version) +
- +
-=== 29 May 2008 === +
- +
-  * Add beginning of SYSLINUX AX=0001h (get version) and AX=0003h (run command) +
-  * Run command function was looping on itself (comboot executable ran again when "​boot"​ executed?), so did similar "​unregister image while running"​ like image/​script.c +
- +
-=== 30 May 2008 === +
- +
-  * Meeting with mdc +
-==== 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 +
- +
-==== Week 3 ==== +
----- +
- +
-=== 10 June 2008 === +
-  * Implement file I/O functions (open, read, close) based on gPXE's posix_io support [[ http://​git.etherboot.org/?​p=people/​dverkamp/​gpxe.git;​a=commitdiff;​h=dcf8448c1e922892ee8dc4cf7a238eaebca1a5df | dcf8448c1e922892ee8dc4cf7a238eaebca1a5df ​]] +
- +
-=== 11 June 2008 === +
- +
-  * Finally debugged why my VGA test case (a 256-byte demo, [[ http://​pouet.net/​prod.php?​which=3397 ​tube by 3SC ]]) wasn't working - it was assuming that registers were 0, and I hadn't been clearing them; after taking care of that, it works fine in bochs, qemu, and real hardware: [[ http://​git.etherboot.org/?​p=people/​dverkamp/​gpxe.git;​a=commitdiff;​h=169e9975ba0aea887bf5515f9bbe32466bf3b5e0 | 169e9975ba0aea887bf5515f9bbe32466bf3b5e0 ]] +
- +
-{{:​soc:​2008:​dverkamp:​journal:​jun-11-2008.png|}} +
- +
-  * Fixed a bunch of small things in com32_call.c,​ after which basic file I/O (filetest.c32) works [[ http://​git.etherboot.org/?​p=people/​dverkamp/​gpxe.git;​a=commitdiff;​h=d645d491cf48d7ef48566057b9b8ad6c5418b5d9 ​d645d491cf48d7ef48566057b9b8ad6c5418b5d9 ​]] +
- +
-{{:​soc:​2008:​dverkamp:​journal:​jun-11-2008.fileio.png| filetest.c32 reading a file over HTTP with a relative filename}} +
- +
-  * Implement more INT 22h functions (AX = 0005h, AX = 0007h, AX = 0013h, AX = 0015h) ​[[ http://​git.etherboot.org/?​p=people/​dverkamp/​gpxe.git;​a=commitdiff;​h=068eb73795d962cc70336a8159e6e91ecbd5cb68 ​068eb73795d962cc70336a8159e6e91ecbd5cb68 ​]] +
- +
-  * Implement "​Resolve hostname"​ function; resolv.c32 now works [[ http://​git.etherboot.org/?​p=people/​dverkamp/​gpxe.git;​a=commitdiff;​h=01fa277122c8ee33e26a35b7ef890e57b8b485e3 ​01fa277122c8ee33e26a35b7ef890e57b8b485e3 ​]] +
- +
-=== 12 June 2008 === +
- +
-  * Map Enter key to 0x0D instead of 0x0A; now fancyhello.c32 works [[ http://​git.etherboot.org/?​p=people/​dverkamp/​gpxe.git;​a=commitdiff;​h=d5f9318b8570cf3c489e4d3f8dfe1955cb837024 ​d5f9318b8570cf3c489e4d3f8dfe1955cb837024 ​]] +
- +
-  * Rebased comboot work on top of current upstream gPXE tree and pushed to [[ http://​git.etherboot.org/?​p=people/​dverkamp/​gpxe.git;​a=shortlog;​h=comboot-merge ​comboot-merge branch ]] +
- +
-==== Week 4 ==== +
----- +
- +
-=== 16 June 2008 === +
- +
-  * Implemented "Call PXE Stack" (INT 22h AX=0009h) [[ http://​git.etherboot.org/?​p=people/​dverkamp/​gpxe.git;​a=commitdiff;​h=e55e13db55ad26d9f62e72ff3bc2a77006d74b40 | e55e13db55ad26d9f62e72ff3bc2a77006d74b40 ]] (untested!) +
-  * Implemented "Write Character to Serial Port" (INT 21h AH=04h) using stefanha'​s serial changes [[ http://​git.etherboot.org/?​p=people/​dverkamp/​gpxe.git;​a=commitdiff;​h=dac1de178042d2ffdacb772d265033cfc24c2441 | dac1de178042d2ffdacb772d265033cfc24c2441 ]] (untested!) +
-  * Implemented "​Cleanup,​ shuffle and boot" (INT 22h AX=0012h) and related function "​Maximum number of shuffle descriptors"​ (AX=0011h) [[ http://​git.etherboot.org/?​p=people/​dverkamp/​gpxe.git;​a=commitdiff;​h=9a4e36722ceaf02d8360c37401af4c1716ab2334 | 9a4e36722ceaf02d8360c37401af4c1716ab2334 ​]] (untested!)+
  

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