Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
soc:2008:stefanha:journal:week6 [2008/07/01 12:14] stefanha |
soc:2008:stefanha:journal:week6 [2008/07/08 06:57] (current) stefanha |
||
---|---|---|---|
Line 20: | Line 20: | ||
**Fixed known ROM-o-matic bugs**. Soon ROM-o-matic will be added to gPXE ''contrib/''. This will allow anyone to run their own or contribute to mainline development. There were a few known bugs that I tracked down and fixed today. | **Fixed known ROM-o-matic bugs**. Soon ROM-o-matic will be added to gPXE ''contrib/''. This will allow anyone to run their own or contribute to mainline development. There were a few known bugs that I tracked down and fixed today. | ||
- | **E820 memory map splitting support**. Yesterday's hang while loading an initrd turned out to be caused by me misunderstanding ''e820mangler.S''. gPXE can mark memory regions as hidden. When gPXE or an image use the E280 BIOS memory map function, ''e820mangler.S'' will hide these memory regions. This prevents gPXE memory from being overwritten or used by another program. | + | **E820 memory map splitting support**. Yesterday's hang while loading an initrd turned out to be caused by me misunderstanding |
+ | ''e820mangler.S''. gPXE can mark memory regions as hidden. When gPXE or an image use the E280 BIOS memory map function, ''e820mangler.S'' will hide these memory regions. This prevents gPXE memory from being overwritten or used by another program. | ||
The bug was my assumption that ''e820mangler.S'' would split memory regions around arbitrary hidden regions. I haven't deciphered all of the code yet, but printing the memory map after placing a hidden region inside a larger free region shows that arbitrary splits aren't performed. Here is the picture: | The bug was my assumption that ''e820mangler.S'' would split memory regions around arbitrary hidden regions. I haven't deciphered all of the code yet, but printing the memory map after placing a hidden region inside a larger free region shows that arbitrary splits aren't performed. Here is the picture: | ||
Line 40: | Line 41: | ||
I had a look at the [[http://www.uruk.org/orig-grub/mem64mb.html|E820 interface]] and will start working on a solution tomorrow. It gets nasty when there are N hidden regions inside one free region, thereby splitting it up into many smaller regions. | I had a look at the [[http://www.uruk.org/orig-grub/mem64mb.html|E820 interface]] and will start working on a solution tomorrow. It gets nasty when there are N hidden regions inside one free region, thereby splitting it up into many smaller regions. | ||
- | Next steps: | + | ==== Wed Jul 1 ==== |
- | * [b44] E820 splitting. | + | **Updated GDB debugging documentation** now that debugging over UDP and watchpoints are in mainline. The [[:dev:gdbstub|documentation]] still needs work but I have at least updated the parts that are there so they are correct. |
- | * [b44] Performance. | + | |
- | * [b44] Cleanup & testing. | + | ==== Fri Jul 4 ==== |
- | * [gpxelinux] Work with hpa and mcb30 to cleanly merge gpxelinux.0 modifications into gPXE. | + | This week I haven't kept my journal up-to-date. I have not been writing much gPXE code. Instead I worked on ROM-o-matic, GDB documentation, bug reports on IRC, understanding ''gpxelinux.0'' so we can merge changes into mainline, and understanding ''e820mangler.S'' to get DMA mapping working. |
- | * [GDB] Update [[:dev:gdbstub|GDB stub page]] and screencast when UDP code is merged into mainline. See [[http://grub.enbug.org/DebuggingWithGDB|GRUB GDB wiki page]] for inspiration. | + | |
- | * [bzImage] Expand the heap size to the full 64K segment when loading a bzImage kernel with version 2.02 or higher. | + | **b44 progress has been stuck at E820 memory splitting**. I will talk to mcb30 today about ''e820mangler.S''. I am misunderstanding that code because its output does not match my expectations. I'd like to make progress on E820 mapping this weekend and it will open the door to getting DMA mapping and the b44 working and into mainline. |
- | * [GDB] Real-mode remote debugging. | + | |
+ | **I am in dialogue with hpa, mcb30, and mdc so we can merge gpxelinux.0 into gPXE**. SYSLINUX now builds ''gpxelinux.0'', a PXE NBP that uses the UNDI driver with gPXE (aka ''undionly.kpxe'') to run PXELINUX. A relatively small set of changes was needed to make this work on some hardware. The aim is to get this code merged into gPXE mainline. | ||
+ | |||
+ | ===== Next Week ===== | ||
+ | On to [[.:week7|Week 7]]. |