All of lore.kernel.org
 help / color / mirror / Atom feed
From: Matt Porter <mporter@kernel.crashing.org>
To: Ed Goforth <egoforth@gmail.com>
Cc: linuxppc-embedded <linuxppc-embedded@ozlabs.org>
Subject: Re: mmap on 440gx
Date: Thu, 16 Jun 2005 21:41:55 -0700	[thread overview]
Message-ID: <20050616214155.A7062@cox.net> (raw)
In-Reply-To: <75b39f010506162047236fec19@mail.gmail.com>; from egoforth@gmail.com on Thu, Jun 16, 2005 at 11:47:22PM -0400

On Thu, Jun 16, 2005 at 11:47:22PM -0400, Ed Goforth wrote:
> On 6/16/05, Matt Porter <mporter@kernel.crashing.org> wrote:
> > On Thu, Jun 16, 2005 at 05:33:44PM -0400, Ed Goforth wrote:
> 
> Thanks for taking the time to reply.
> 
> > > I've been struggling with implementing mmap on a 440gx-based custom
> > > board.  I have been able to use ioremap(), but we really need a mmap()
> > > for our software.  The kernel is 2.4.18 (TimeSys 4.0).
> > 
> > There are some special things done for handling [io]_remap_page/pfn_range
> > on other vendor kernels and the current mainline kernel.  I'm not sure
> > if your vendor kernel addressed them since it would be a vendor-specific
> > patch in that timeframe.  The special things are due to 36-bit
> > addressing.
> > 
> > > I'm trying to access one of our FPGA's located at 0x50000000.  Offsets
> > 
> > Let's start at the beginning.  How do you have FPGA's at 0x50000000?
> > that address falls with the fix DDR SDRAM area on the 440GX memory
> > map. All peripheral and EBC space is mapped by 4GB. You lost me
> > right here. Oh wait, are you referring to the least significant 32-bits
> > of the physical mapping. It's not really at 0x50000000.
> 
> Of course, you're correct.  The 36-bit base address is 0x1_0000_0000. 
> It is mapped to the 32-bit address 0x5000_0000.

That's an interesting way to look at it but there isn't really a
"mapping".  You have configured a EBC chip selects to decode at
1_5000_0000.

> Should I pass the 36-bit address to remap_page_range()?

No, it takes a 32-bit physical address and "fixes it up" using
the fixup_bigphys_addr() method.  Double check that the trap ranges
are correct for you board port.  They need to be modified to add
the appropriate MS 4-bit.  Since ioremap() also uses
fixup_bigphys_addr() to "fixup" 32-bit addresses to 36-bit,
it should just work. 

> For what it's worth, __pa(0x5000_0000) returns 0x9000_0000.

Sure, you just asked it to subtract KERNELBASE from a physical address.
Don't use __pa() in drivers. That's expected behavior. Why are
you doing that?
 
> > You need something like the bigphys_remap patch for 2.4 that can be
> > found at ftp://source.mvista.com/pub/linuxppc/
> 
> I just checked the source, and that patch has indeed been applied.

Ok, assuming it's all correct then I don't know why it does work
for you in your vendor tree. Have you asked Timesys for help?

Put some debug statements throughout fixup_bigphys_addr() to see
what's going on.

-Matt

  reply	other threads:[~2005-06-17  4:41 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-06-16 21:33 mmap on 440gx Ed Goforth
2005-06-16 22:55 ` Matt Porter
2005-06-17  3:47   ` Ed Goforth
2005-06-17  4:41     ` Matt Porter [this message]
2005-06-17  5:42       ` Ed Goforth
2005-06-17  7:24         ` Matt Porter

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=20050616214155.A7062@cox.net \
    --to=mporter@kernel.crashing.org \
    --cc=egoforth@gmail.com \
    --cc=linuxppc-embedded@ozlabs.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.