Port-hp700 archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: elroy(4) interrupt mapping issue



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
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);
 }


Home | Main Index | Thread Index | Old Index