ip22 vdma question

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



After looking at vdma.pdf on linux-mips ftp site, i have (dumb) question:

This DMA hardware was designed for User-Mode DMA, as well normal-style kernel-mode DMA. For user-mode  DMA hardware (located in MemoryController) should (or simply can) translate virt->phys adresses, according to some registers, updated on every context switch. But traditional DMA, with physical addresses, should be more easy for setup? Code in Linux kernel tree has comment about MC interrupts (they should be handled in driver, not in core code) - so, if one want to add (V)DMA support to fb [currently - newport, may be others in the future] driver , and then potentially to X driver as well (with some drm-like kernel module, for handling interrupts and DMA itself) he must look at HAL2  (audio ) sources as comment suggest, and try to figure out how to write such code? 

One more question: my SGI O2 has many hardware units, usually working together: Rendering/Drawing Engine for graphics output, MemoryTransferEngine for moving blocks of memory around, including video memory (O2 is UMA system), VICE coprocessor, with two DMA channels and two execution units. (all this under native OS, of course .. i know some details thanks to NetBSD project and work done here at linux-mips.org). How (conceptually) add such wide functionality in Linux kernel? I guess, recently-merged GEM (GraphicsExecutionManager, iirc) can help here, for keeping track of currently used memory 'tiles' for graphics and rest of memory. (front buffer/optional back buffer/optional Z buffer/optional texture storage/optional offscreen render buffer, all can be tiled or not. Working blocks of memory for VICE. Blocks, currently in-move, or in-clear due to MTE activity). Not sure how to expose this machinery to userspace - just as set of buffers, with some control
 node(s), for requesting buffer, release buffer, clear buffer, move buffer around, change buffer type?  with list of "used-by-xxx" attributes?? May be just expose MTE as `generic` DMA engine for start (if this unit really can move  blocks of memory in full 1GB [max memory size on O2] range)?

Also, patches for r10k O2 still unstable? I have only r5k, so i can't test them, but if i remember correctly there was mostly driver issues, network and scsi namely. I'm very unfamiliar with anything SCSI, PCI related - can someone just look at current code and post some comments here?


      



[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux