Date: Sat, 4 Aug 2001 05:18:57 -0700 (PDT) From: Rob Manchester <rmanches@vmware.com> To: FreeBSD-gnats-submit@freebsd.org Subject: kern/29454: buslogic driver checks wrong bit for extended translation Message-ID: <200108041218.f74CIvY00585@slipper.vmware.com>
next in thread | raw e-mail | index | archive | help
>Number: 29454 >Category: kern >Synopsis: buslogic driver checks wrong bit for extended translation >Confidential: no >Severity: critical >Priority: high >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sat Aug 04 05:20:02 PDT 2001 >Closed-Date: >Last-Modified: >Originator: Rob Manchester >Release: FreeBSD 4.3-RELEASE i386 >Organization: VMware, inc >Environment: vmware virtual machine System: FreeBSD slipper.vmware.com 4.3-RELEASE FreeBSD 4.3-RELEASE #0: Sat Apr 21 10:54:49 GMT 2001 jkh@narf.osd.bsdi.com:/usr/src/sys/compile/GENERIC i386 >Description: The buslogic driver checks the wrong bit in the "undocumented" geometry register. When a disk larger than 2G is used, the geometry returned by the bios is inconsistent with the geometry used to install the boot loader, so you can't boot. To: rmanches@vmware.com (Robert Manchester) Subject: Re: buslogic undocumented geometry register Date: Wed, 01 Aug 2001 14:54:38 -0600 From: "Justin T. Gibbs" <gibbs@scsiguy.com> >How-To-Repeat: Try an install on with on buslogic cards this driver supports with a disk greater than 2G and watch freebsd not boot. >Fix: this is an exciting one. diff -Naur dev/buslogic-4.3-RELEASE/btreg.h dev/buslogic/btreg.h --- dev/buslogic-4.3-RELEASE/btreg.h Sat Aug 4 04:56:29 2001 +++ dev/buslogic/btreg.h Sat Aug 4 04:58:21 2001 @@ -112,7 +112,7 @@ #define GEOMETRY_REG 0x03 #define DISK0_GEOMETRY 0x03 #define DISK1_GEOMETRY 0x0c -#define EXTENDED_TRANSLATION 0x10 +#define EXTENDED_TRANSLATION 0x80 #define GEOMETRY_DISK0(g_reg) (greg & DISK0_GEOMETRY) #define GEOMETRY_DISK1(g_reg) ((greg & DISK1_GEOMETRY) >> 2) >Release-Note: >Audit-Trail: >Unformatted: >Dear Justin, > >I've been looking at some of the code you wrote for the buslogic scsi >host adapters (btreg.h & bt.c in freebsd) , specificaly the Extended >translation field in the geometry register. It seems that the code >expects bit 4 to be set in the geometry register before you go and >calculate the disk geometry. I had thought that bit 7 was used to check >to see if the extended translation was availible. I was wondering if >you remembered why you checked bit 4 instead of 7. If you have >documentation on an the "undocumented" geometry register I would be >grateful. Looks like a bug to me. I used the Linux driver as a guide for "undocumented" behavior. Leonard Z. had an in with the developers at Buslogic, so the information in his driver should be accurate. The Linux driver uses bit 7. -- Justin To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200108041218.f74CIvY00585>