All of lore.kernel.org
 help / color / mirror / Atom feed
From: Matt Porter <mporter@kernel.crashing.org>
To: John Whitney <johnw@sands-edge.com>
Cc: linuxppc-dev@lists.linuxppc.org
Subject: Re: Proposed changes to io.h
Date: Wed, 31 Mar 2004 10:01:59 -0700	[thread overview]
Message-ID: <20040331100159.A17284@home.com> (raw)
In-Reply-To: <49B568CB-832A-11D8-9FF0-000A95A07384@sands-edge.com>; from johnw@sands-edge.com on Wed, Mar 31, 2004 at 10:44:25AM -0500


On Wed, Mar 31, 2004 at 10:44:25AM -0500, John Whitney wrote:
> I've made few changes to include/asm-ppc/io.h that might want to be
> incorporated into the mainline tree.  These changes include:
>
> 1. Modifications to virt_to_bus, bus_to_virt, virt_to_phys, and
> phys_to_virt.  With the use of fully virtual addresses for
> cache-coherent allocations (consistent_alloc(), etc.), just subracting
> KERNELBASE from the virtual address is no longer sufficient.  Because
> of this, I have modified virt_to_phys and phys_to_virt to look like:

This group of calls is defined to only work on statically mapped
kernel virtual addresses. That is, the system memory mapped at
PAGE_OFFSET/KERNELBASE.  Adding any additional functionality to these
calls will just make ppc32 different from other arches. Yes, I know
the names are misleading but I didn't make them. :-P

If you want to drive a uniform address translation API into the
kernel then the place to start is on lkml.  This has been hashed
out on linuxppc-embedded before, please check the archives.

> 2. I'd like to add 64-bit __raw_readll and __raw_writell routines to
> io.h, done using floating-point registers.  Currently, modules such as
> MTD (when writing to 64-bit buses) perform two 32-bit, non-atomic
> writes, which can cause problems.  Using a floating-point register to
> guarantee a 64-bit write is ugly, but it works.  Code for these inlined
> routines is as follows:
>
> /*
>   * For reading and writing 64-bit values, we need to use the floating
> point
>   * registers.  The code will enable MSR_FP in the MSR register, use
> FPR1 to
>   * read from and write to memory, and then restore everything to the
>   * previous values.
>   */

I think this is useful...I've had to recommend this method for
local hacks on various people's platforms.  The most typical case
seems to be MTD but a lot of folks have custom data acquisition devices
that run into this problem. Yes, it's ugly, but hardware folks keep
configuring devices for a 64-bit bus width.

Why not create a patch against linux-2.5/linux-2.4 so that it is
easily reviewed?  Paul/Ben/others might then be compelled to comment
on it.

-Matt

** Sent via the linuxppc-dev mail list. See http://lists.linuxppc.org/

  parent reply	other threads:[~2004-03-31 17:01 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-03-31 15:44 Proposed changes to io.h John Whitney
2004-03-31 16:44 ` Eugene Surovegin
2004-03-31 16:58   ` Dan Malek
2004-03-31 17:30     ` Matt Porter
2004-03-31 17:32     ` John Whitney
2004-03-31 17:40       ` Dan Malek
2004-03-31 17:03   ` Matt Porter
2004-03-31 19:57     ` John Whitney
2004-03-31 22:07       ` Matt Porter
2004-03-31 22:25         ` John Whitney
2004-03-31 22:52         ` Dan Malek
2004-04-01  5:30           ` Kumar Gala
2004-03-31 17:01 ` Matt Porter [this message]
2004-03-31 17:29   ` Dan Malek
2004-03-31 18:18 ` Christoph Hellwig
2004-03-31 18:40   ` John Whitney
2004-03-31 18:43     ` Christoph Hellwig
2004-03-31 18:50       ` John Whitney
2004-03-31 21:09   ` John Whitney
2004-03-31 21:49     ` Dan Malek
2004-03-31 21:52     ` Eugene Surovegin
2004-03-31 22:07       ` John Whitney
2004-04-01  2:52 ` Benjamin Herrenschmidt
     [not found]   ` <209F76E4-838B-11D8-9FF0-000A95A07384@sands-edge.com>
     [not found]     ` <1080790433.1433.59.camel@gaston>
     [not found]       ` <43B0E668-84BC-11D8-9FF0-000A95A07384@sands-edge.com>
2004-04-03  3:04         ` Benjamin Herrenschmidt
2004-04-03  3:40           ` John Whitney

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=20040331100159.A17284@home.com \
    --to=mporter@kernel.crashing.org \
    --cc=johnw@sands-edge.com \
    --cc=linuxppc-dev@lists.linuxppc.org \
    /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.