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:

NetBSD Home
NetBSD PR Database Search

(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.