From owner-freebsd-bugs Mon Mar 13 05:40:42 1995 Return-Path: bugs-owner Received: (from majordom@localhost) by freefall.cdrom.com (8.6.10/8.6.6) id FAA09624 for bugs-outgoing; Mon, 13 Mar 1995 05:40:42 -0800 Received: from clinet.fi (root@clinet.fi [193.64.6.1]) by freefall.cdrom.com (8.6.10/8.6.6) with ESMTP id FAA09598 for ; Mon, 13 Mar 1995 05:40:08 -0800 Received: from katiska.clinet.fi (root@katiska.clinet.fi [193.64.6.3]) by clinet.fi (8.6.10/8.6.4) with ESMTP id PAA28707 for ; Mon, 13 Mar 1995 15:39:42 +0200 From: Heikki Suonsivu Received: (hsu@localhost) by katiska.clinet.fi (8.6.10/8.6.4) id PAA02603; Mon, 13 Mar 1995 15:39:42 +0200 Date: Mon, 13 Mar 1995 15:39:42 +0200 Message-Id: <199503131339.PAA02603@katiska.clinet.fi> To: freebsd-bugs@freefall.cdrom.com In-reply-to: Heikki Suonsivu's message of 12 Mar 1995 18:24:29 +0200 Subject: NCR SCSI fails Organization: Helsinki University of Technology, Otaniemi, Finland Sender: bugs-owner@FreeBSD.org Precedence: bulk This failed on our P60 motherboard with NCR SCSI, is this a broken motherboard, configuration problem or something else? More workout; This "cache test" fails even if both internal and external caches are disabled. I also went through all BIOS settings and disabled everything which even distantly hinted into any caching or buffering, to no avail. So, it seems that this cache test can't be quite correct? The only oddity I can see is that the code doesn't first check what is sees in the "read-only" address before it tries to write 0xffffffff into it? /*========================================================== ** ** ** Test the pci bus snoop logic :-( ** ** Has to be called with interrupts disabled. ** ** **========================================================== */ #ifndef NCR_IOMAPPED static int ncr_regtest (struct ncb* np) { register volatile u_long data, *addr; /* ** ncr registers may NOT be cached. ** write 0xffffffff to a read only register area, ** and try to read it back. */ addr = (u_long*) &np->reg->nc_dstat; data = 0xffffffff; *addr= data; data = *addr; #if 1 if (data == 0xffffffff) { #else if ((data & 0xe2f0fffd) != 0x02000080) { #endif printf ("CACHE TEST FAILED: reg dstat-sstat2 readback %x.\n", (unsigned) data); return (0x10); }; return (0); } #endif -- Heikki Suonsivu, T{ysikuu 10 C 83/02210 Espoo/FINLAND, hsu@cs.hut.fi home +358-0-8031121 work -4513377 fax -4555276 riippu SN