lkml.org 
[lkml]   [2008]   [Mar]   [25]   [last100]   RSS-feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
Complete thread (EXPERIMENTAL)
/
DateTue, 25 Mar 2008 17:03:06 -0700
From"Yinghai Lu" <>
SubjectRe: ohci1394 problem (MMIO broken) (was 2.6.25-rc6-git6: Reported regressions from 2.6.24)
Digg This
On Tue, Mar 25, 2008 at 4:33 PM, Benjamin Herrenschmidt <benh@ozlabs.org> wrote:
On Sat, 2008-03-22 at 14:33 -0700, Linus Torvalds wrote:

On Sat, 22 Mar 2008, Stefan Richter wrote:

Can an MMIO region reside above 0x1'0000'0000 on x86-32? ... Apparently yes, if CONFIG_RESOURCES_64BIT=y.

Hmm. It would only work if PAE (HIGHMEM64G) is enabled too.
And obviously the hardware has to have working 64-bit BAR's.

On other platforms however, you can have mmio above 32 bits without support for 64 bits BARs: the entire PCI bus mmio region can be mapped up there.

That happens for example with 4xx embedded PowerPC. We deal with it just fine, provided that nothing tries to stick a resource value into an unsigned long but uses resource_size_t instead. Unfortunately, it's a common bug, I've fixing drivers regulary.

It also appears that the iomap code on various archs is buggy too, including the generic lib/iomap.c, thus pci_iomap is broken for archs that can have 64 bits resources and use the version in lib/.
The good news is that I have done a patch to fix it, which has been in -mm for about a month: iomap-fix-64-bits-resources-on-32-bits.patch

does it support if size is 4G above, like 256G?

YH



\
ISP Services
Valid XHTML 1.0!\ /
Valid CSS! Last update: 2008-03-26 01:05    [W:0.559 / U:0.070 seconds]
©2003-2005 Jasper Spaans