Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1761498AbYCYXfZ (ORCPT ); Tue, 25 Mar 2008 19:35:25 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1753556AbYCYXfO (ORCPT ); Tue, 25 Mar 2008 19:35:14 -0400 Received: from ozlabs.org ([203.10.76.45]:34653 "EHLO ozlabs.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752621AbYCYXfN (ORCPT ); Tue, 25 Mar 2008 19:35:13 -0400 Subject: Re: ohci1394 problem (MMIO broken) (was 2.6.25-rc6-git6: Reported regressions from 2.6.24) From: Benjamin Herrenschmidt To: Linus Torvalds Cc: Stefan Richter , Ingo Molnar , Thomas Gleixner , Ivan Kokshaysky , Thomas Meyer , "Rafael J. Wysocki" , LKML , Adrian Bunk , Andrew Morton , Natalie Protasevich In-Reply-To: References: <200803220259.48534.rjw@sisk.pl> <47E5350D.101@s5r6.in-berlin.de> <47E540E7.7030108@m3y3r.de> <47E54FA6.3060809@s5r6.in-berlin.de> <47E557D5.9020604@s5r6.in-berlin.de> Content-Type: text/plain Date: Wed, 26 Mar 2008 10:33:25 +1100 Message-Id: <1206488005.10573.8.camel@pasglop> Mime-Version: 1.0 X-Mailer: Evolution 2.12.1 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1359 Lines: 36 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 Cheers, Ben. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/