From: Wolfgang Grandegger <wg@grandegger.com>
To: "tiejun.chen" <tiejun.chen@windriver.com>
Cc: Linux-MIPS <linux-mips@linux-mips.org>
Subject: Re: Can't read from mmaped PCI memory space
Date: Mon, 13 Dec 2010 21:48:10 +0100 [thread overview]
Message-ID: <4D06868A.4000904@grandegger.com> (raw)
In-Reply-To: <4CF3AD82.3030100@grandegger.com>
On 11/29/2010 02:41 PM, Wolfgang Grandegger wrote:
> Hello,
>
> I hit the send button too early, sorry...
>
> On 11/29/2010 02:23 PM, Wolfgang Grandegger wrote:
>> On 11/29/2010 11:24 AM, tiejun.chen wrote:
>>> Wolfgang Grandegger wrote:
>>>> Hello,
>>>>
>>>> I'm trying to read from mmapped PCI memory space on an alchemy board,
>>>> but I can't get it to work. Here's the lspci output of the PCI card:
>>>>
>>>> bash-3.00# lspci -v
>>>> 00:00.0 Class 0200: 168c:001b (rev 01)
>>>> Subsystem: 168c:2063
>>>> Flags: bus master, medium devsel, latency 168, IRQ 9
>>>> Memory at 0000000040000000 (32-bit, non-prefetchable) [size=64K]
>>>> Capabilities: [44] Power Management version 2
>>>>
>>>> I used mmap on "/dev/mem" and "/sys/bus/pci/.../resource0", but I do not
>>>> read the expected values using "*(volatile u32 *)mmap_addr" from that
>>>> region. The value also changes from read to read. Reading from kernel
>>>> space just work fine. Am I doing something illegal? Any idea why it does
>>>> not work?
>>>
>>> Form here I'm not sure how you did exactly.
>>>
>>> Theoretically, you can mmap() directly that at least from the sys resource. But
>>> I think you have to notice the aligning requirement for a page. I means you
>>> should firstly map one given base_address & ~(PAGE_SIZE - 1). Then access the
>>> last destination address with adding the corresponding offset as you want.
>
> I'm aware of the alignment issue. Anyway, I'm mapping the above address,
> which is already aligned. It must be something else. I'm using the
> ath_info and devmem2 Program for testing.
It's an issue with 64-bit address mapping. Currently mmap tries to map
0x4000'0000 but the physical address of the PCI memory space on my CPU is
0x4'4000'0000. I wonder why this problem has not yet been discovered.
The attached patch below works for my board.
Wolfgang.
prev parent reply other threads:[~2010-12-13 20:46 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-11-28 21:20 Can't read from mmaped PCI memory space Wolfgang Grandegger
2010-11-29 10:24 ` tiejun.chen
2010-11-29 13:23 ` Wolfgang Grandegger
2010-11-29 13:41 ` Wolfgang Grandegger
2010-12-13 20:48 ` Wolfgang Grandegger [this message]
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=4D06868A.4000904@grandegger.com \
--to=wg@grandegger.com \
--cc=linux-mips@linux-mips.org \
--cc=tiejun.chen@windriver.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox