From: Frank Rowand <frank_rowand@mvista.com>
To: Roman Zippel <zippel@fh-brandenburg.de>
Cc: Dan Malek <dan@mvista.com>, Jeff Hartmann <jhartmann@valinux.com>,
michdaen@iiic.ethz.ch,
Benjamin Herrenschmidt <benh@kernel.crashing.org>,
Gareth Hughes <gareth@valinux.com>,
linuxppc-dev@lists.linuxppc.org, dri-devel@lists.sourceforge.net,
Paul Mackerras <paulus@linuxcare.com>
Subject: Re: [Dri-devel] PPC Lockup (ati-pcigart-branch)
Date: Mon, 22 Jan 2001 16:34:08 -0800 [thread overview]
Message-ID: <3A6CD180.EDFEA254@mvista.com> (raw)
In-Reply-To: Pine.GSO.4.10.10101222326300.26751-100000@zeus.fh-brandenburg.de
Roman Zippel wrote:
>
> Hi,
>
> On Mon, 22 Jan 2001, Dan Malek wrote:
>
> > > ...... Currently there is no kernel function to do
> > > this explicitly
> >
> > I'm working on that. The PowerPC port cheated by using BATs and
> > trivial macros, but this doesn't work on some of the newer processors
> > and more complex applications. Other architectures did the same, and
> > I am surprised there aren't generic kernel functions to track down this
> > information. In fact, these functions are already present for 4xx and
> > 8xx processors, so don't write anything new.
>
> AFAIK such tricks are used for mapping normal (low) memory and ioremapped
> areas. For normal memory you can use phys_to_virt()/virt_to_phys() and for
> ioremapped memory, you have to store the physical and virtual address
> yourself. What am I missing?
>
> bye, Roman
Take a look at Documentation/DMA-mapping.txt.
I've done something for the 405 that I'm especially wary of, but have been
hoping I can continue to get away with in the future. I map all of physical
SDRAM to the kernel virtual address space:
0xc000'0000 through (0xc000'0000 + size of memory - 1)
via large TLB entries (each entry typically covering a range of 8MB).
This means that I can't just change the TLB entry of a 4KB page if I want it
to be mapped uncached. I instead allocate a new virtual address range and
map that single page as uncachable via the new virtual address. Thus phys_to_virt()
incorrectly returns the cacheable virtual address instead of the uncacheable virtual
address.
Currently, my biggest user of this method is pci_alloc_consistent(). This use is
because the 405 is not IO cache coherent. In this case, the "physical" address
is really a bus address, which pci_alloc_consistent calls "dma_handle".
DMA-mapping.txt says drivers should not use bus_to_virt(), which is a close
relative of phys_to_virt().
-Frank
--
Frank Rowand <frank_rowand@mvista.com>
MontaVista Software, Inc
** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/
next prev parent reply other threads:[~2001-01-23 0:34 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-01-19 3:26 PPC Lockup (ati-pcigart-branch) Michel Dänzer
2001-01-19 3:55 ` Dan Malek
2001-01-19 6:53 ` [Dri-devel] " Gareth Hughes
2001-01-19 16:48 ` Jeff Hartmann
2001-01-19 17:24 ` Dan Malek
2001-01-20 0:45 ` Gareth Hughes
2001-01-19 16:40 ` [Dri-devel] " Jeff Hartmann
2001-01-19 17:11 ` Benjamin Herrenschmidt
2001-01-19 22:26 ` Chris Emerson
2001-01-19 22:59 ` Benjamin Herrenschmidt
2001-01-19 23:43 ` Chris Emerson
2001-01-20 1:38 ` Benjamin Herrenschmidt
2001-01-20 13:21 ` Michael Schmitz
2001-01-20 16:00 ` Benjamin Herrenschmidt
2001-01-20 17:03 ` Michael Schmitz
2001-01-20 2:46 ` Michel Dänzer
2001-01-20 4:17 ` Michel Dänzer
2001-01-22 9:44 ` Michel Dänzer
2001-01-22 17:59 ` Roman Zippel
2001-01-22 18:18 ` Michel Dänzer
2001-01-22 18:54 ` Roman Zippel
2001-01-22 19:39 ` Dan Malek
2001-01-22 20:08 ` Michel Dänzer
2001-01-22 20:30 ` Jeff Hartmann
2001-01-22 21:23 ` Roman Zippel
2001-01-22 23:12 ` Frank Rowand
2001-01-22 21:31 ` Dan Malek
2001-01-22 21:48 ` Jeff Hartmann
2001-01-22 22:15 ` Roman Zippel
2001-01-23 16:14 ` Mike Beede
2001-01-22 22:31 ` Roman Zippel
2001-01-23 0:24 ` Dan Malek
2001-01-23 2:28 ` Takashi Oe
2001-01-23 2:40 ` Dan Malek
2001-01-23 4:40 ` Ralph Metzler
2001-01-23 5:48 ` Takashi Oe
2001-01-23 11:24 ` Roman Zippel
2001-01-23 0:34 ` Frank Rowand [this message]
2001-01-23 0:43 ` Frank Rowand
2001-01-23 11:32 ` Roman Zippel
2001-01-22 20:43 ` Roman Zippel
2001-01-22 21:07 ` Jeff Hartmann
2001-01-22 17:33 ` Dan Malek
2001-01-22 17:38 ` Jeff Hartmann
2001-01-22 17:38 ` Gareth Hughes
2001-01-22 17:43 ` Michel Dänzer
2001-01-22 18:36 ` Dan Malek
2001-01-22 18:44 ` Jeff Hartmann
2001-01-22 18:47 ` Michel Dänzer
2001-01-22 21:13 ` Dan Malek
2001-01-22 21:58 ` Roman Zippel
2001-01-22 23:48 ` Paul Mackerras
2001-01-23 0:13 ` Dan Malek
2001-01-20 13:15 ` Michael Schmitz
2001-01-19 17:11 ` Wolfgang Denk
-- strict thread matches above, loose matches on Subject: below --
2001-01-23 3:34 Iain Sandoe
2001-01-23 6:49 Robert E Brose II
2001-01-23 7:01 ` Geert Uytterhoeven
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=3A6CD180.EDFEA254@mvista.com \
--to=frank_rowand@mvista.com \
--cc=benh@kernel.crashing.org \
--cc=dan@mvista.com \
--cc=dri-devel@lists.sourceforge.net \
--cc=frowand@mvista.com \
--cc=gareth@valinux.com \
--cc=jhartmann@valinux.com \
--cc=linuxppc-dev@lists.linuxppc.org \
--cc=michdaen@iiic.ethz.ch \
--cc=paulus@linuxcare.com \
--cc=zippel@fh-brandenburg.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.