linux-mips
[Top] [All Lists]

ip22 vdma question

To: linux-mips@linux-mips.org
Subject: ip22 vdma question
From: Andrew Randrianasulu <randrik_a@yahoo.com>
Date: Mon, 23 Mar 2009 01:34:50 -0700 (PDT)
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s1024; t=1237797290; bh=bJyxL+LoWXJy2PPK9MbSBhxzjlFS7KtMOuwPSsYOClU=; h=Message-ID:X-YMail-OSG:Received:X-Mailer:Date:From:Reply-To:Subject:To:MIME-Version:Content-Type; b=aqHWpeZ93mm3UGawX9pgxWw+pH45O5Rv/13Ss4U0eXXDbUeoGOGvkE8UCA8pC2IIlrzuGanj+YnEE/nS2gJYkwACm46ypnUAhvYJCUXVb9cV7MgJDn/JDU68VLnNhHqsf1mEznHStR2hB+DwX4VgYF9v/VivSA2WJsx2WzUA6XY=
Domainkey-signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com; h=Message-ID:X-YMail-OSG:Received:X-Mailer:Date:From:Reply-To:Subject:To:MIME-Version:Content-Type; b=RqdmjeaA1RlGmPd8+Rgy2LX/K7NHMCRi/VVUWYShTcRlqVgMYQp4D9kO4eTCyetB9BKBgDXanu/C0jN8Lq/LaZKm+MTE3PpRn1G/stUqHMC7mZGNgRMsrPrwvsKWVw/ZXNL8joWTdMxdNIdUi7R9ug0VJyNLAjOY/1lM/97oNOg=;
Original-recipient: rfc822;linux-mips@linux-mips.org
Reply-to: randrik_a@yahoo.com
Sender: linux-mips-bounce@linux-mips.org
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?


      


<Prev in Thread] Current Thread [Next in Thread>
  • ip22 vdma question, Andrew Randrianasulu <=