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

Re: Hardware not detected (9000/801/D200)



Hi James,

On Fri, Feb 07, 2003 at 09:44:13AM -0600, James Bottomley wrote:
> On Fri, 2003-02-07 at 09:35, Matthew Wilcox wrote:
> > That makes a certain amount of sense.  It's a little bit of a shame not
> > to use the features of the 710 chip, but maintaining fewer drivers is
> > clearly a Good Thing.
> 
> Actually, the 710 is useless in it's true 710 mode (i.e. continuously
> operating scripts engine)---and we got the OS data to prove it back at

But there are other good features in 710 mode; IIRC the 710 can generate
just one interrupt for a reselection, once it has accepted the first
msgin - whereas the 700 requires multiple interrupts (2 or 3?) to
accomplish the same thing.

53c7xx.c goes further and tries to have the 710 handle
disconnect/reselect with no interrupts at all - it uses memory-memory
moves to reload its registers, etc, once it identifies a reselecting
target, and only interrupts when the whole command is complete.  Doesn't
necessarily work that well, phase mismatch can't be handled in the
script for example, and it requires h/w that lets 710 initiated cycles
access 710 mapped register space.

Hard for me to imagine a 710 implementation where the chip was
continuously running scripts though; I'd expect it to be mostly waiting
for a reselection from the bus, or a SIGP prod from the driver.  That's
just one WAIT RESELSECT instruction, and I don't belive it loops
refetching it continuously.

Anyway, I believe dumping the guts of sim710 in favour of 53c700 is the
right thing to do.  Maybe one day someone could get it to run
710-specific script fragments where appropriate to reduce the interrupt
count.

Richard



Reply to: