Subject: Re:hme ...
To: Andrei Petrov <and@genesyslab.com>
From: Eduardo Horvath <eeh@turbolinux.com>
List: port-sparc64
Date: 08/21/2000 12:37:14
On Mon, 21 Aug 2000, Andrei Petrov wrote:

> I'm seeing one thing which I hardly believe: when kernel is doing
> netboot it sends packet and goes to tsleep, but there are no
> interrupts going thru during that tsleep. The interrupt can only
> happen after timeout. I changed timeout value in revarpwhoarewe
> function and sent more rarp replies from server during tsleep. There are
> no keyboard interrupts, I think there should be, I might be wrong.
> But timer works. 

It just occurred to me that the problem may be interrupt delivery from the
SBus controller to the main CPU.  We have only been using single CPU
machines where the CPU's UPAID is zero.  On a MPU machine you may need to
set the destination UPAID for interrupt delivery.  Try the following
patch and see if it helps any:

*** sys/arch/sparc64/dev/sbus.c Mon Jul 10 10:23:33 2000
--- sys/arch/sparc64/dev/newsbus.c      Mon Aug 21 12:33:30 2000
***************
*** 688,693 ****
--- 688,694 ----
                                intrptr = (int64_t *)&sc->sc_sysio->scsi_clr_int;
                                ih->ih_clr = &intrptr[i];
                                /* Enable the interrupt */
+                               intrmap |= (cpuinfo->ci_upaid << 25);
                                intrmap |= INTMAP_V;
                                bus_space_write_8(sc->sc_bustag, ih->ih_map, 0, (u_long)intrmap);
                        } else

(We will need to do the same thing to the psycho driver.)


Eduardo Horvath