Fix a botch in the comparison of two addresses, where I forgot to add in

the offset of a range.  With this fix to the openpic initialization,
ofppc now boots single user on a 7046-B50.  Thanks to Jochen Kunz for
giving me remote access to a B50 to hack on it.
This commit is contained in:
garbled 2008-02-13 21:12:32 +00:00
parent dc6a7fd211
commit 53ee4a269c

View File

@ -1,4 +1,4 @@
/* $NetBSD: mainbus.c,v 1.20 2008/02/07 19:48:37 garbled Exp $ */
/* $NetBSD: mainbus.c,v 1.21 2008/02/13 21:12:32 garbled Exp $ */
/*-
* Copyright (c) 2007 The NetBSD Foundation, Inc.
@ -37,7 +37,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: mainbus.c,v 1.20 2008/02/07 19:48:37 garbled Exp $");
__KERNEL_RCSID(0, "$NetBSD: mainbus.c,v 1.21 2008/02/13 21:12:32 garbled Exp $");
#include "opt_interrupt.h"
@ -127,7 +127,7 @@ init_openpic(int node)
while (len >= sizeof(ranges[0])) {
if ((rp->pci_hi & OFW_PCI_PHYS_HI_SPACEMASK) ==
(aadr.phys_hi & OFW_PCI_PHYS_HI_SPACEMASK) &&
(aadr.size_lo + aadr.phys_lo <= rp->size_lo)) {
(aadr.size_lo + aadr.phys_lo <= (rp->size_lo+rp->host))) {
baseaddr = (unsigned char *)mapiodev(
rp->host | aadr.phys_lo, aadr.size_lo);
aprint_normal("Found openpic at %08x\n",
@ -135,7 +135,6 @@ init_openpic(int node)
setup_openpic(baseaddr, 0);
return TRUE;
}
/* XXX I think this is correct */
rp++;
len -= sizeof(ranges[0]);
}