According to info from Byron Servies on port-cobalt,

the interrupt line from the primary (and only) tulip Ethernet
on Qube2700 is connected to CPU INT2, so handle it properly
in pci_intr_map(9).
This commit is contained in:
tsutsui 2007-02-18 12:22:16 +00:00
parent 14dfb0043c
commit a632ff6d41
1 changed files with 15 additions and 8 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: pci_machdep.c,v 1.24 2006/08/22 21:42:19 riz Exp $ */
/* $NetBSD: pci_machdep.c,v 1.25 2007/02/18 12:22:16 tsutsui Exp $ */
/*
* Copyright (c) 2000 Soren S. Jorvang. All rights reserved.
@ -26,7 +26,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: pci_machdep.c,v 1.24 2006/08/22 21:42:19 riz Exp $");
__KERNEL_RCSID(0, "$NetBSD: pci_machdep.c,v 1.25 2007/02/18 12:22:16 tsutsui Exp $");
#include <sys/types.h>
#include <sys/param.h>
@ -156,12 +156,19 @@ pci_intr_map(struct pci_attach_args *pa, pci_intr_handle_t *ihp)
* directly to the CPU.
*/
if (bus == 0 && dev == 7 && pin == PCI_INTERRUPT_PIN_A)
*ihp = 16 + 1;
else if (bus == 0 && dev == 12 && pin == PCI_INTERRUPT_PIN_A)
*ihp = 16 + 2;
else
*ihp = line;
if (cobalt_id == COBALT_ID_QUBE2700) {
if (bus == 0 && dev == 7 && pin == PCI_INTERRUPT_PIN_A)
*ihp = 16 + 2;
else
*ihp = line;
} else {
if (bus == 0 && dev == 7 && pin == PCI_INTERRUPT_PIN_A)
*ihp = 16 + 1;
else if (bus == 0 && dev == 12 && pin == PCI_INTERRUPT_PIN_A)
*ihp = 16 + 2;
else
*ihp = line;
}
return 0;
}