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

Link to this comparison view

Both sides previous revision Previous revision
Last revision Both sides next revision
soc:2010:cooldavid:journal:week2 [2010/06/04 00:46]
soc:2010:cooldavid:journal:week2 [2010/06/04 00:50]
Line 68: Line 68:
 === Expand heap === === Expand heap ===
-The gPXE's code can be executed on both real-mode and +  * [[soc:2010:cooldavid:​notes:​expandheap|Expand gPXE heap]]
-protected-mode because of the GDT's base address was filled with +
-the starting point of the code. Which makes all the function, +
-global variable'​s pointer valid between the transition. +
-Also, the limit of GDT entry was set to 4G, so there is no need +
-to concern if we are going to across the segment limit. +
- +
-Since the heap is not used by real-mode code, and is used at +
-late stages of gPXE. I think it might be possible to put the +
-heap out side of the .bss section, and put it at the very end of +
-the image. After we put the heap at the very end of the image, +
-we can make sure that no data might be needed for real-mode +
-codes would put beyond 1MB limit. +
- +
-Currently I left 128KB for stack to grow, and put the heap right +
-behind it. The C code which runs in protected-mode would work +
-fine, since it's already using 32 bit addressing, and the +
-segment limit is way larger than image size. +
- +
-For the real-mode code, as long as the heap is not used. All the +
-data needed should be within 1MB limit. +
- +
-[[http://​git.etherboot.org/?​p=people/​cooldavid/​gpxe.git;​a=commitdiff;​h=09be316b2b1538860037233b41a43dfb3bb1f3d8|Commit-diff]] +
- +
-=== Original ​heap location === +
-[[Original heap location|{{http://​bbs.cooldavid.org/​pic/​origheap.png}}]] +
- +
-=== Modified heap location === +
-[[Modified heap location|{{http://​bbs.cooldavid.org/​pic/​hugeheap.png}}]] +

QR Code
QR Code soc:2010:cooldavid:journal:week2 (generated for current page)