From: Tom Cooksey <thomas.cooksey@trolltech.com>
To: Robert Schwebel <r.schwebel@pengutronix.de>
Cc: linux-embedded mailing list <linux-embedded@vger.kernel.org>,
Denis Olvier Kropp <dok@pengutronix.de>
Subject: Re: Getting physical addresses of mmap'd pages from userspace
Date: Mon, 13 Oct 2008 09:20:28 +0200 [thread overview]
Message-ID: <200810130920.28208.thomas.cooksey@trolltech.com> (raw)
In-Reply-To: <20081013070017.GH9852@pengutronix.de>
On Monday 13 October 2008 09:00:17 Robert Schwebel wrote:
> Tom,
>
> [Please configure your mail client to break likes @ column < 80]
Whoops - Sorry!
> On Mon, Oct 13, 2008 at 08:33:25AM +0200, Tom Cooksey wrote:
> > On Friday 10 October 2008 21:12:13 Robert Schwebel wrote:
> > > On Fri, Oct 10, 2008 at 06:15:05PM +0200, Tom Cooksey wrote:
> > > > Is there any way to get the physical address of mlock()'d memory
> > > > from userspace?
> > >
> > > What do you want to do? I don't really see a reason to do such
> > > strange things any more these days.
> >
> > It's quite an annoying problem actually. Basically I have binary
> > drivers for Imagination Technologies's PowerVR graphics drivers. We
> > have tried very hard to get the source code for these drivers and have
> > failed. Eventually ImgTec allowed us to sign an NDA to get the headers
> > for one of their user-space libraries. This library allows us to
> > direct the graphics hardware to render to a specific physical memory
> > region. The problem is that there's no way to find out what the
> > physical addresses are which we need pass to the graphics hardware
> > (via the user-space library). Allthough the library allows us to
> > allocate emory, what I want to do is then blit that memory in a
> > different process. So a client process renders into an off-screen
> > buffer and the server process blits that buffer to the framebuffer. By
> > allowing the server process to do the blit rather than the client
> > process, we can get semi-transparent GL windows.
> >
> > The synchronisation we can do, it's the memory allocation I'm
> > struggling with. If we ask the library to allocate the memory for us,
> > we don't get the physical address to pass to the server process.
> > Instead, we need to allocate memory ourselves and pass the physical
> > address to the library. But like I say, I can't find a way to get the
> > physical address from the kernel.
> >
> > I realise getting round closed-source drivers isn't exactly encoraged,
> > but sadly, we really have no choice. :-(
>
> We are working on DirectFB [1] support for the PowerVR MBX & SGX chips
> these days, so I know the problem :) Our hardware platform is i.MX31
> with the MBX, MPC5121e also with MBX (both freescale) and a TI OMAP with
> the SGX. The whole NDA and Licensing situation is annoying, but we have
> to live with it; if you ask me as a community person, I'd say "vote with
> your dollars". If manufacturers don't want to open their specs to allow
> people writing driver, it must mean that they don't want to sell chips.
> In reality, there are no real alternatives for accelerates chips.
ImgTec has had the market pretty much to itself for a long time and as you say,
there's pretty much no alternatives for the moment. Hopefully that is about to
change as there are, I beleive, about 3 other companies with competing products
about to come to market. I've no idea if the other companies will open up their
drivers either though. It also doesn't help the current situation. :-(
> Regarding the technical question, dok might have an idea. He's currently
> working on DirectFB drivers ontop of the proprietary drivers in one of
> our projects. Cc'ed him.
> [1] Sidenote: we have Gtk+ and TTFNAQ [2] running on top of DirectFB,
> with 2D acceleration.
>
> [2] The-Toolkit-Formerly-Known-As-Qtopia
Gulp - yeah, I'm kinda the maintainer for the Qt/Embedded DirectFB driver now.
(Since the guy who wrote it left a month ago) :-|
Cheers,
Tom
next prev parent reply other threads:[~2008-10-13 7:20 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-10-10 16:15 Getting physical addresses of mmap'd pages from userspace Tom Cooksey
2008-10-10 16:37 ` Bart Van Assche
2008-10-10 19:12 ` Robert Schwebel
2008-10-13 6:33 ` Tom Cooksey
2008-10-13 7:00 ` Robert Schwebel
2008-10-13 7:20 ` Tom Cooksey [this message]
2008-10-13 7:28 ` Thomas Petazzoni
2008-10-13 7:31 ` Robert Schwebel
2008-10-13 12:50 ` Bill Gatliff
2008-10-13 13:23 ` Robert Schwebel
2008-10-13 15:58 ` George G. Davis
2008-10-13 16:09 ` Robert Schwebel
2008-10-14 6:36 ` Tom Cooksey
2008-10-14 15:47 ` Bill Gatliff
2008-10-15 7:06 ` Tom Cooksey
2008-10-15 8:30 ` James Chapman
2008-10-15 18:27 ` Robert Schwebel
2008-10-15 18:29 ` Bill Gatliff
2008-10-13 9:37 ` Gilad Ben-Yossef
[not found] ` <48F31155.6090603@codefidence.com>
2008-10-13 9:38 ` Tom Cooksey
2008-10-13 12:48 ` Bill Gatliff
2008-10-13 14:45 ` Tom Cooksey
2008-10-13 15:09 ` Daniel THOMPSON
2008-10-13 17:21 ` George G. Davis
2008-10-13 17:29 ` Chris
2008-10-14 6:46 ` Tom Cooksey
2008-10-14 7:31 ` Daniel J Laird
2008-10-14 9:03 ` Tom Cooksey
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200810130920.28208.thomas.cooksey@trolltech.com \
--to=thomas.cooksey@trolltech.com \
--cc=dok@pengutronix.de \
--cc=linux-embedded@vger.kernel.org \
--cc=r.schwebel@pengutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.