Current-Users archive

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

Re: siop(4) problem on bebox



On Thu, Jun 05, 2008 at 03:00:15AM +0900, KIYOHARA Takashi wrote:
> Hi! all,
> 
> 
> Our bebox have internal SCSI (siop).  I noticed there were two problems
> in siop on bebox.
> 
> First, the interrupt of siop is established before the initialization of
> softc.  However parity error had already happened in my bebox when boot
> time.  Therefore, because initialization is not done, the following
> messages are seen though siop_intr() is called.
> 
>     :
>   pci0 at mainbus0 bus 0: indirect configuration space access
>   pchb0 at pci0 dev 0 function 0
>   pchb0: Motorola MPC105 "Eagle" Host Bridge (rev. 0x24)
>   pchb0: L2 cache: 256K, multiprocessor mode
>   pcib0 at pci0 dev 11 function 0: Intel 82378ZB System I/O (rev. 0x43)
>   siop0 at pci0 dev 12 function 0: Symbios Logic 53c810 (fast scsi)
>   siop0:parity error
>   siop0: scsi bus reset
>   DMA IRQ: Illegal instruction DMA fifo empty, DSP=0x1e8 DSA=0x8480d05c: 
> siop0: current DSA invalid
>   siop0: scsi bus reset
>   DMA IRQ: Illegal instruction DMA fifo empty, DSP=0x1e8 DSA=0x8480d05c: 
> siop0: current DSA invalid
>     :
>     :
> 
> # I will confirm the jumper of SCSI HDD for parity is enabled.
> But I think this initialization have problem.  Please masking interrupt
> or initializing the softc before established interrupt routine.

At this point in autoconf, the kernel should be running at splhigh(),
or eventually with interrupts disabled at all. So the interrupt handler
should not be called there. It's probably an issue with port-bebox if
siop_intr() is called at this point of autoconf.

> 
> 
> Next, internal SCSI of bebox uses the clock of PCI.  There is SCLK in
> STEST1 (SCSI Test One:0x4d) of 53c810.
> 
> How do we tell SCLK=1 to internal SCSI?
> (For instance, device_properties()?)

device_properties() would be appropriate. But this case isn't handled by siop
yet, you'll have to add it to siop_common.c:siop_common_reset()
(along with the appropriate flag for sc->features). the PCI front-end
would read the device_properties() and set the flag when needed.

-- 
Manuel Bouyer, LIP6, Universite Paris VI.           
Manuel.Bouyer%lip6.fr@localhost
     NetBSD: 26 ans d'experience feront toujours la difference
--


Home | Main Index | Thread Index | Old Index