Re: elroy(4) interrupt mapping issue

Nick Hudson <[email protected]> Thu, 20 Jan 2011 00:16:15 +0000
Newsgroups gmane.os.netbsd.ports.hp700
Message-ID <[email protected]>
--Boundary-00=_P73NNHyJff0efK3
Content-Type: text/plain;
  charset="iso-8859-1"
Content-Transfer-Encoding: 7bit

On Wednesday 19 January 2011 23:50:03 Tobias Nygren wrote:
> Hi,
> 
> I recently tried booting -current on my C3600. Overally it
> works really well, almost everything seems to be supported(1)!

good news.

> Then I tried to plug in a 3rd party PCI card and found a problem
> with interrupt mapping:
> 
> elroy1 at astro0 hpa 0xfed32000 path 10/1: Elroy TR4.0 APIC ver 20,
> 7 pins
> pci1 at elroy1 bus 0
> wm0 at pci1 dev 4 function 0: Intel i82540EM 1000BASE-T Ethernet, rev. 2
> wm0: interrupting at line 255 irq 31

Any specific reason you want wm0? 1GE?

> The bogus line 255 turns out to be that hp700_intr_allocate_bit()
> returns -1 and apic_intr_map() does not check the return value for an
> error condition.
> 
> My current solution to this problem is to disable the onboard esiop
> SCSI controllers in the kernel config, which seems to free up an
> interrupt bit for the NIC.
> 
> Any suggestion as to how to fix this so the PCI slots can be used?

yeah, the attached patch should help

int_reg_cpu is something on my todo list.

Nick

--Boundary-00=_P73NNHyJff0efK3
Content-Type: text/x-patch;
  charset="iso-8859-1";
  name="int_reg_cpu.diff"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
	filename="int_reg_cpu.diff"

Index: sys/arch/hp700/dev/cpu.c
===================================================================
RCS file: /cvsroot/src/sys/arch/hp700/dev/cpu.c,v
retrieving revision 1.16
diff -u -p -u -r1.16 cpu.c
--- sys/arch/hp700/dev/cpu.c	8 Dec 2010 09:48:27 -0000	1.16
+++ sys/arch/hp700/dev/cpu.c	20 Jan 2011 00:14:28 -0000
@@ -166,5 +166,6 @@ cpuattach(device_t parent, device_t self
 	 * or below 27.
 	 */
 	int_reg_cpu.int_reg_allocatable_bits =
+		(1 << 25) | (1 << 24) | (1 << 23) |
 		(1 << 28) | (1 << 27) | (1 << 26);
 }

--Boundary-00=_P73NNHyJff0efK3--