From owner-freebsd-hackers Sat Nov 17 17:41:32 2001 Delivered-To: freebsd-hackers@freebsd.org Received: from peter3.wemm.org (c1315225-a.plstn1.sfba.home.com [24.14.150.180]) by hub.freebsd.org (Postfix) with ESMTP id 38A5E37B416 for ; Sat, 17 Nov 2001 17:41:26 -0800 (PST) Received: from overcee.netplex.com.au (overcee.wemm.org [10.0.0.3]) by peter3.wemm.org (8.11.0/8.11.0) with ESMTP id fAI1fPM35825 for ; Sat, 17 Nov 2001 17:41:25 -0800 (PST) (envelope-from peter@wemm.org) Received: from wemm.org (localhost [127.0.0.1]) by overcee.netplex.com.au (Postfix) with ESMTP id B5EDA38CC; Sat, 17 Nov 2001 17:41:25 -0800 (PST) (envelope-from peter@wemm.org) X-Mailer: exmh version 2.5 07/13/2001 with nmh-1.0.4 To: Doug White Cc: Sandeep Joshi , hackers@FreeBSD.ORG Subject: Re: Tracking down "BTX halted" In-Reply-To: Date: Sat, 17 Nov 2001 17:41:25 -0800 From: Peter Wemm Message-Id: <20011118014125.B5EDA38CC@overcee.netplex.com.au> Sender: owner-freebsd-hackers@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG Doug White wrote: > On Fri, 16 Nov 2001, Sandeep Joshi wrote: > > > I changed the disklabels on a few SCSI disks and now > > I keep getting these "BTX halted" messages every time > > I reboot. > > Lemme guess, you're running them in 'dangerously dedicated' mode. > > There is a bug in Adaptec BIOSen that they will not tolerate DD disks. > > Put proper partition tables on them and they should behave. It's not so much a BIOS bug but the fact that we specify an illegal geometry in the fake fdisk table. This can cause bios's that are about to use the fdisk table to emulate C/H/S geometry to do a divide by zero. This is usually what shows up in the BTX faults. Both of the posted BTX faults have "int=00000000" which is a divide-by-zero. see i386/i386/machdep.c for identifying the int values: setidt(0, &IDTVEC(div), SDT_SYS386TGT, SEL_KPL, GSEL(GCODE_SEL, SEL_KPL)); ^^^ int 0 => 'div' (divide by zero) The specific problem is that the fake fdisk table specifies 256 heads, which is not possible to represent in the int13 interface. The maximum allowed is 255 heads. (hint: 256 in an 8-bit register rounds to 0, hence the divide-by-zero). This is the cause of EFI (ia64) hangs, the infamous Thinkpad T20/A20 series system lockups, countless bios crashes, etc. The problem is that you cant *not* get dangerously-dedicated mode. Our boot1 has got a dangerously-dedicated fdisk table unconditionally compiled in. You can fix it so that it doesn't crash stuff, but we still shouldn't be forcing it on people like that. Cheers, -Peter -- Peter Wemm - peter@FreeBSD.org; peter@yahoo-inc.com; peter@netplex.com.au "All of this is for nothing if we don't go to the stars" - JMS/B5 To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message