From owner-freebsd-stable Sat Jul 27 05:38:51 1996 Return-Path: owner-stable Received: (from root@localhost) by freefall.freebsd.org (8.7.5/8.7.3) id FAA05502 for stable-outgoing; Sat, 27 Jul 1996 05:38:51 -0700 (PDT) Received: from Sisyphos (Sisyphos.MI.Uni-Koeln.DE [134.95.212.10]) by freefall.freebsd.org (8.7.5/8.7.3) with SMTP id FAA05497; Sat, 27 Jul 1996 05:38:47 -0700 (PDT) Received: by Sisyphos id AA14447 (5.67b/IDA-1.5); Sat, 27 Jul 1996 14:36:45 +0200 Message-Id: <199607271236.AA14447@Sisyphos> From: se@zpr.uni-koeln.de (Stefan Esser) Date: Sat, 27 Jul 1996 14:36:44 +0200 In-Reply-To: Bruce Evans "Re: ncr53c810 driver in stable/current" (Jul 27, 20:49) X-Mailer: Mail User's Shell (7.2.6 alpha(2) 7/9/95) To: Bruce Evans Subject: Re: ncr53c810 driver in stable/current Cc: current@freebsd.org, stable@freebsd.org, scrappy@ki.net Sender: owner-stable@freebsd.org X-Loop: FreeBSD.org Precedence: bulk On Jul 27, 20:49, Bruce Evans wrote: } Subject: Re: ncr53c810 driver in stable/current } >The dump writes out the first few MB within less than a } >second, and then the SCSI LED stays on and the system } >hangs, always after accessing the same virtual address. } } >It took me some time to think about checking which physical } >address that corresponds to that page, and to my surprise I } >found that the BIOS region at e8000 is the last thing touched } >by the NCR chip. I have no idea why the page at 0e8000 is } >mapped into the kernel, and I do not think that I got some } >device at that address. But it still causes the hang :( } } 0xe8000 is in the first MB so it's surprising that the first } few MB got written. Yes, sure, you are of course right! I wrote the message whiledoing the tests, and in fact had estimated that 2MB had been written at the time of the hand, when it in fact was a little less than 1MB ... } sddump() and wddump() write all pages from page #0 to page } #MaxMem-1, so they always write the entire BIOS area. Perhaps } they should write only RAM. phys_avail[] almost says where } RAM is. Unfortunately, it is truncated at the start to skip } the BIOS page and at the end to skip the message buffer. I'm not sure about the right way to deal with that region. There might be interesting data in some devices buffer (e.g. of an ISA ethernet card) that should go into the dump. PCI is different from ISA in that each transfer has to be acknowledged. But the ISA memory hole is subtractively decoded: If no PCI chip signals a "DEVSEL" (some device is selected) state within a few PCI bus clocks, then the PCI to ISA bridge will forward the request to the ISA bus. The NCR won't actually know whether the address was decoded on ISA, so I'm again not sure why the system hangs when the NCR tries to read from that address. I will add a few more micro-tests to find out what actually causes the hang. As a work around to those people in need to have kernel dumps written to disk on a NCR system: Is it worth the effort to detect the special situation and have the driver ignore the memory hole in the dump ? If all you want is to have the system come up automatically after crash, then you might as well just turn off the kernel dump feature (using the dumpon command or by not having a "sump on sd0" in the kernel config file ...) Regards, STefan -- Stefan Esser, Zentrum fuer Paralleles Rechnen Tel: +49 221 4706021 Universitaet zu Koeln, Weyertal 80, 50931 Koeln FAX: +49 221 4705160 ============================================================================== http://www.zpr.uni-koeln.de/~se