====== 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:week5 [2008/06/28 06:28] stefanha |
soc:2008:stefanha:journal:week5 [2008/06/30 10:03] (current) stefanha |
||
---|---|---|---|
Line 40: | Line 40: | ||
==== Sat Jun 28 ==== | ==== Sat Jun 28 ==== | ||
- | **Working on DMA mapping**. I have designed and implemented DMA mapping for gPXE. Am currently writing tests and will then update the b44 driver to make use of the new API. | + | Git commit: |
+ | * [[http://git.etherboot.org/?p=people/stefanha/gpxe.git;a=commit;h=3c923c79098190c12b686965d8bd48e1cedecd4d|[b44] DMA mapping for device address limitations]] | ||
+ | * [[http://git.etherboot.org/?p=people/stefanha/gpxe.git;a=commit;h=87455683845a6694fdc89cf986caa50571be8ef0|[b44] Fix DMA mapping]] | ||
- | Next steps: | + | **Working on DMA mapping**. I have designed and implemented DMA mapping for gPXE, see commits above. The b44 driver uses DMA mapping to work around the chip addressing limitations. I am currently writing tests. |
- | * [b44] 1 GB memory limitation. | + | |
- | * [b44] Performance. | + | I am not done with the code but wanted to commit instead of keeping this out of tree. Before submitting the code for review I will break it up into several patches: |
- | * [b44] Cleanup & testing. | + | * **uhmalloc**, general-purpose external memory allocator. Separates the ''umalloc'' heap from its memory allocator (which I call ''uhmalloc''). The idea is that DMA mapping reuses ''uhmalloc'' to manage its DMA heap. |
- | * [bzImage] Expand the heap size to the full 64K segment when loading a bzImage kernel with version 2.02 or higher. | + | * **DMA mapping** for transparently managing bounce buffers when needed by hardware. The DMA mapping API provides a way to structure DMA transactions. If the hardware has addressing limitations and is unable to access gPXE's heap, bounce buffers are used to communicate via regions of memory that the device has access to. |
- | * [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. | + | * **b44 with DMA mapping**. Update b44 code using DMA mapping API so it runs on machines with more than 1 GB of RAM. This reverses the hack to place the gPXE heap at 4 MB into the physical address space. |
- | * [GDB] Real-mode remote debugging. | + | |
+ | ===== Next week ===== | ||
+ | On to [[.:week6|Week 6]]! |