Re: Can't read from mmaped PCI memory space

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.

Thanks,

Wolfgang.



[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux