Return to BSD News archive
Path: sserve!newshost.anu.edu.au!harbinger.cc.monash.edu.au!msuinfo!agate!howland.reston.ans.net!pipex!starlight.datlog.co.uk!root From: root@datlog.co.uk (Charlie Root) Newsgroups: comp.os.386bsd.questions Subject: Re: AHA1542 hanging with FreeBSD 1.1beta Date: 17 Apr 1994 21:06:40 GMT Organization: Data Logic Limited (A Raytheon Company). Lines: 83 Message-ID: <2os8de$q35@starlight.datlog.co.uk> References: <Co3MBA.s3@pegasus.com> <CoAsut.8K@pegasus.com> NNTP-Posting-Host: gomi.datlog.co.uk X-Newsreader: TIN [version 1.2 PL2] Ok then, Now I've got the time to do something about it: [I'm mailing this to FreeBSD-FAQ@freefall.cdrom.com] Richard Foulk (richard@pegasus.com) wrote: >>I have a 486/66 with an AHA1542CF SCSI card that locks up about >>once a day with the disk activity light on. >> >>Does this sound familiar to anyone? >> >>The system sees a lot of disk activity and the lockups don't seem >>to be caused by any one particular program. I've tried various >>speed settings, etc., too no avail. >> >>Do I need to buy some other type of card? A new motherboard? > >I got a helpful email response explaining that this controller >allocates a buffer at the top of 16Megs which gets in the way if >you have 16Megs of RAM, and consequently causes lockups. You're welcome. [FAQ ON] Problem: Machine hangs erratically - Adaptec 1542 SCSI controller and 16Mb RAM Why: The Adaptec is holding a substantial buffer in the top 16th Mb of RAM [16Mb being the limit for ISA DMA transfers, the Adaptec being an ISA bus mastering controller] Basically this means that any RAM over 15Mb is in the same address space as disk operations for the SCSI controller. Solution 1: Use your machine BIOS to map all RAM over 15Mb as unusable I did this with two DELL machines (1993 Pheonix BIOS), it kills the problem. For the case in question the machine has a recent AMI BIOS, which does not appear to offer this facility. Solution 2: Cause the 386bsd kernel to map out the offending Mb itself. PLEASE NOTE THE FOLLOWING IS FOR 1.1BETA: (it should be same for other variants though) /usr/src/sys/i386/i386/machdep.c line 1116 in function init386 There is a quick fix already in place here commented on the basis that it will be replaced by proper bounce buffers: as given: if ((pagesinext > 3840) && (pagesinext < 4096)) I have done away with the second part of the conditional expression, so as to force the machine to allways report 15Mb or less of memory. becomes: if (pagesinext > 3840) This results in a working system. [FAQ OFF] My appologies for not bringing this up earlier (last June), as I thought from comp.os.386bsd.* traffic that it was specific to myself. If there is sufficient demand I may be able to make a kernel or two available by ftp. Kevin. Kevin Graham. Data Logic Limited Systems Engineer CI Tower, St Georges Square, High Street, kgraham@datlog.co.uk New Malden, Surrey, England KT3 4HH Tel: +44 (0)81 715 9696 x414 Fax: +44 (0)81 715 1771 Systems, network and internet support for the Makurokurosuke...