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:stefanha:journal:week5 [2008/06/27 03:16]
stefanha
soc:2008:stefanha:journal:week5 [2008/06/30 10:03] (current)
stefanha
Line 39: Line 39:
 **Linux DMA mapping as a solution to driver memory constraints**. ​ The b44 driver can only access the first gigabyte of memory. ​ When I asked how to work around this limitation, mcb30 suggest looking at Linux ''​pci_map_single()''​. ​ I am going to implement something similar to manage bounce buffers for devices that cannot access gPXE's heap. **Linux DMA mapping as a solution to driver memory constraints**. ​ The b44 driver can only access the first gigabyte of memory. ​ When I asked how to work around this limitation, mcb30 suggest looking at Linux ''​pci_map_single()''​. ​ I am going to implement something similar to manage bounce buffers for devices that cannot access gPXE's heap.
  
-Next steps+==== Sat Jun 28 ==== 
-  * [b44] 1 GB memory limitation. +Git commit
-  * [b44] Performance. +  * [[http://​git.etherboot.org/?​p=people/​stefanha/​gpxe.git;​a=commit;​h=3c923c79098190c12b686965d8bd48e1cedecd4d|[b44] DMA mapping for device address limitations]] 
-  [b44] Cleanup & testing+  * [[http://​git.etherboot.org/?​p=people/​stefanha/​gpxe.git;​a=commit;​h=87455683845a6694fdc89cf986caa50571be8ef0|[b44] Fix DMA mapping]] 
-  * [bzImage] Expand ​the heap size to the full 64K segment ​when loading ​bzImage kernel with version 2.02 or higher+ 
-  * [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. +**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. 
-  * [GDB] Real-mode remote debugging.+ 
 +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: 
 +  * **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. 
 +  * **DMA mapping** for transparently managing bounce buffers ​when needed by hardware. ​ The DMA mapping API provides ​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
 +  * **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. 
 + 
 +===== Next week ===== 
 +On to [[.:week6|Week 6]]!

Navigation

* [[:start|Home]] * [[:about|About our Project]] * [[:download|Download]] * [[:screenshots|Screenshots]] * Documentation * [[:howtos|HowTo Guides]] * [[:appnotes|Application Notes]] * [[:faq:|FAQs]] * [[:doc|General Doc]] * [[:talks|Videos, Talks, and Papers]] * [[:hardwareissues|Hardware Issues]] * [[:mailinglists|Mailing lists]] * [[http://support.etherboot.org/|Bugtracker]] * [[:contributing|Contributing]] * [[:editing_permission|Wiki Edit Permission]] * [[:wiki:syntax|Wiki Syntax]] * [[:contact|Contact]] * [[:relatedlinks|Related Links]] * [[:commerciallinks|Commercial Links]] * [[:acknowledgements|Acknowledgements]] * [[:logos|Logo Art]]

QR Code
QR Code soc:2008:stefanha:journal:week5 (generated for current page)