NetBSD Problem Report #20777
Received: (qmail 12131 invoked by uid 605); 18 Mar 2003 02:56:30 -0000
Message-Id: <20030318025625.84B7311152@narn.netbsd.org>
Date: Mon, 17 Mar 2003 18:56:25 -0800 (PST)
From: nakagawa@bu.jp.nec.com
Sender: gnats-bugs-owner@netbsd.org
Reply-To: nakagawa@bu.jp.nec.com
To: gnats-bugs@gnats.netbsd.org
Subject: can't map memory 64bit PCI device on 32bit system
X-Send-Pr-Version: www-1.0
>Number: 20777
>Category: kern
>Synopsis: can't map memory 64bit PCI device on 32bit system
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: kern-bug-people
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Tue Mar 18 02:57:00 +0000 2003
>Closed-Date:
>Last-Modified:
>Originator: NAKAGAWA Yoshihisa
>Release: 1.6 RELEASE and 1.6P
>Organization:
NEC, Japan
>Environment:
>Description:
Broadcom BCM5690 is 64bit PCI device, but only bits[39:0] of the 64bit address decode. So, in pci_mem_find():pci_map.c, "mask1" become 0x000000ff.
>How-To-Repeat:
use not 64bit-full-decode PCI device. ex) BCM5690
>Fix:
use this pach:
--- pci_map.c.org Tue Mar 18 11:40:43 2003
+++ pci_map.c Tue Mar 18 11:41:24 2003
@@ -184,7 +184,7 @@
* bus_addr_t is 64-bit, then so is bus_size_t.
*/
if (sizeof(u_int64_t) > sizeof(bus_addr_t) &&
- (address1 != 0 || mask1 != 0xffffffff)) {
+ address1 != 0) {
printf("pci_mem_find: 64-bit memory map which is "
"inaccessible on a 32-bit platform\n");
return (1);
>Release-Note:
>Audit-Trail:
>Unformatted:
(Contact us)
$NetBSD: query-full-pr,v 1.39 2013/11/01 18:47:49 spz Exp $
$NetBSD: gnats_config.sh,v 1.8 2006/05/07 09:23:38 tsutsui Exp $
Copyright © 1994-2007
The NetBSD Foundation, Inc. ALL RIGHTS RESERVED.