From: <gri...@ps...> - 2000-10-19 11:18:00
|
> When I disable PCI support, I cannot use CVPPC and therefore open the console > on my CV64/3D. There I get the following lines: > > Non-serviced A3000 SCSI-Interrupt? ISTR xxxx Whooo.. That's an *old* problem. Write-reordering to the WD33C93 chip. Check out drivers/scsi/a3000.c. Are there any [rw]mb() calls in there? If not then the original fix for APUS is missing.. Add these lines (sorry, no line numbers.. Just quick cut'n'paste): /* start DMA */ + mb(); /* make sure setup is completed */ DMA(a3000_host)->ST_DMA = 1; + mb(); /* make sure DMA has started before next IO */ And: DMA(instance)->CNTR = cntr; + mb(); /* make sure CNTR is updated before next IO */ /* flush if we were reading */ if (HDATA(instance)->dma_dir) { DMA(instance)->FLUSH = 1; + mb(); /* don't allow prefetch */ while (!(DMA(instance)->ISTR & ISTR_FE_FLG)) - ; + barrier(); + mb(); /* no IO until FLUSH is done */ } Also: /* stop DMA */ DMA(instance)->SP_DMA = 1; + mb(); /* make sure DMA is stopped before next IO */ /* restore the CONTROL bits (minus the direction flag) */ DMA(instance)->CNTR = CNTR_PDMD | CNTR_INTEN; + mb(); /* make sure CNTR is updated before next IO */ /* copy from a bounce buffer, if necessary */ That should fix it.. Bye, Arno. -- PSINetworks Europe Fax: +31-23-5699841 | One disk to rule them all, Siriusdreef 34 Tel: +31-23-5699840 | One disk to bind them, 2132WT Hoofddorp+--------------------------------+ One disk to hold the files The Netherlands | * Musical Interlude * | And in the darkness grind 'em ----------------+--------------------------------+------------------------------ We say Retribution, We say Vengeance is bliss, We say Revolution, With a Cast-Iron fist! (Megadeth, 'The Disintegrators') -------------------------------------------------------------------------------- |