*BSD News Article 53094


Return to BSD News archive

Path: euryale.cc.adfa.oz.au!newshost.anu.edu.au!harbinger.cc.monash.edu.au!yarrina.connect.com.au!classic.iinet.com.au!swing.iinet.net.au!news.uoregon.edu!chi-news.cic.net!simtel!news.sprintlink.net!in1.uu.net!zib-berlin.de!fub!hal!not-for-mail
From: dirk@hal.in-berlin.de (Dirk Froemberg)
Newsgroups: comp.unix.bsd.freebsd.misc
Subject: Re: FreeBSD/Adaptec 1452CP Boot failure..
Date: 22 Oct 1995 13:00:06 +0100
Organization: Public access UN*X system, Berlin, Germany.
Lines: 191
Message-ID: <46dbo6$28j@hal.in-berlin.de>
References: <46c0le$me3@eplet.mira.net.au>
NNTP-Posting-Host: hal.in-berlin.de
X-Newsreader: NN version 6.5.0 #1 (NOV)

In <46c0le$me3@eplet.mira.net.au> jbh@werple.mira.net.au (John Hartley) writes:


>I have been trying to get FreeBSD 2.0.5 running (from Walnut Creek CD)
>and am having problems on bootup (after successful installation).

>My platform is:
>AMD 368/40 MHZ, 8MB RAM, 128KB Cache, AMIBios.
>Adaptec 1452CP SCSI Controller (@11/330/5) SCSI ID=7,
> Fujitsu 1.04 GB SCSI-2 HD SCSI ID=0,
> Matshita CR-5XX SCSI CD-ROM SCSI ID=1
> 1.4 MB Floppy (@6/3F2-3F5/5)
>3COM Etherlink III (@10/300-30F),
>COM1 (@4/3F8-03FF), COM2 (@3/2F8-2FF), LPT1 (@7/378-37A)
>CIRRUS-LOGIC VGA (3B0-3BB,3C0-3DF/A0000-AFFFF,B8000-BFFFF,C0000-C7FFF)

>I have tried to set this machine up to be as simple as possible and so
>it matches the configuration of the installation kernel.
>I have setup up my SCSI controller as per info in FAQ:
> "Plug & Play" IRQ 9 & DMA 0 Support - Disabled
> Extended BIOS Translation for disks > 1G - Disabled
> Dynamically scan SCSI Bus for BIOS devices - Enabled
> BIOS support for more the 2 drives - Enabled
> BIOS suppprt of int 13 Extensions - Enabled
> BIOS support of bootable CD-ROMs - Disabled

> [...]

>>> (aha0:2:0): timed out
>>> adaptor not taking commands..frozen?!
>>> Debugger("aha1542") called
>>>   AGAIN
>>> aha0:MBO 02 & not 00 (free)

This problem was discussed on the FreeBSD-questions mailing list
a month ago.

	Best regards Dirk

[CC: poster]

From dufault@hda.comSun Oct 22 12:52:51 1995
Date: Thu, 31 Aug 1995 15:59:15 -0400 (EDT)
From: Peter Dufault <dufault@hda.com>
To: John Lengeling <johnl@microware.com>
Cc: freebsd-questions@freebsd.org
Subject: Re: Problems with Adaptec 1542CP and 2.0.5

> 
> I am trying to get 2.0.5 working on an Adaptec 1542CP SCSI controler and
> a Seagate ST1480N drive.
> 
> I was able to load 2.0.5 on the SCSI hard drive, but when I boot FreeBSD, 
> I get the following errors when probing the 1542CP controller:
> 
> aha0: Unknown board-VD.0
> aha0: reading board settings, dma=5 int=11 (bus speed defaulted)
> aha0: aha_cmd, cmd/data port full
> aha0 at 0x330-0x333 irq 11 drq 5 on isa
> aha0 waiting for scsi drvices to settle
> (aha0:0:0): timed out
> adapter not taking commands.. frozen?!
> Debugger("aha1542") called.
> 
> (aha0:0:0): timed out
> adapter not taking commands.. frozen?!
> Debugger("aha1542") called.
>  AGAIN
> aha0: MBO 02 and not 00 (free)

It could be because it is not unlocking the mailbox because it
doesn't recognise the board revision of the apparently new 1542CP.
(What is a CP anyway?)

The following patch makes the possibly rash assumption that any board rev
greater than 0x42 requires this operation.  That seems to be the
pattern with all new Adaptec boards.

NOTE: A fix for this is probably
needed for 2.1 since any new Adaptec 1542C is likely to be common.
Please test this and report back if you can.

Peter

*** aha1542.c.dist	Sun Jul 16 15:36:06 1995
--- aha1542.c	Thu Aug 31 15:55:18 1995
***************
*** 965,971 ****
  		case 0x43: return "AHA-1542C";
  		case 0x44: return "AHA-1542CF";
  		case 0x45: return "AHA-1542CF BIOS v2.01";
! 		default: return "Unknown board";
  	}
  }
  
--- 965,974 ----
  		case 0x43: return "AHA-1542C";
  		case 0x44: return "AHA-1542CF";
  		case 0x45: return "AHA-1542CF BIOS v2.01";
! 
! 		default:
! 		printf("(board rev %02x)", type);
! 		return "Unknown board revision";
  	}
  }
  
***************
*** 977,982 ****
--- 980,986 ----
  	int     unit;
  {
  	struct aha_data *aha = ahadata[unit];
+ 	char *rev;
  	unsigned char ad[3];
  	volatile int i, sts;
  	struct	aha_config conf;
***************
*** 1066,1077 ****
  	 * No need to check the extended bios flags as some of the
  	 * extensions that cause us problems are not flagged in that byte.
  	 */
! 	printf("aha%d: %s-V%c.%c",
! 	unit, board_rev(inquire.boardid), inquire.revision_1,
! 	inquire.revision_2);
  
! 	if ((inquire.boardid == 0x43) || (inquire.boardid == 0x44) ||
! 		(inquire.boardid == 0x45) || (inquire.boardid == 0x41
  		&& inquire.revision_1 == 0x31 && inquire.revision_2 == 0x34)) {
  		aha_cmd(unit, 0, sizeof(extbios), 0, &extbios, AHA_EXT_BIOS);
  #ifdef	AHADEBUG
--- 1070,1083 ----
  	 * No need to check the extended bios flags as some of the
  	 * extensions that cause us problems are not flagged in that byte.
  	 */
! 	printf("aha%d: ");
! 
! 	rev = board_rev(inquire.boardid);
  
! 	printf("%s-V%c.%c", unit, rev, inquire.revision_1, inquire.revision_2);
! 
! 	if ((inquire.boardid >= 0x43) || 
! 		(inquire.boardid == 0x41
  		&& inquire.revision_1 == 0x31 && inquire.revision_2 == 0x34)) {
  		aha_cmd(unit, 0, sizeof(extbios), 0, &extbios, AHA_EXT_BIOS);
  #ifdef	AHADEBUG
***************
*** 1082,1096 ****
  
  		aha_cmd(unit, 2, 0, 0, 0, AHA_MBX_ENABLE,
  			0, extbios.mailboxlock);
- 
  	}
  
  	/* Which boards support residuals?  Some early 1542A's apparently
  	 * don't.  The 1542B with V0.5 of the software does, so I've
  	 * arbitrarily set that as the earliest rev.
  	 */
! 	if ((inquire.boardid == 0x43) || (inquire.boardid == 0x44) ||
! 		(inquire.boardid == 0x45) || (inquire.boardid == 0x41
  		&& (inquire.revision_1 > '0' || inquire.revision_2 >= '5'))) {
  		printf(", enabling residuals");
  		aha->init_opcode = AHA_INIT_RESID_CCB;
--- 1088,1101 ----
  
  		aha_cmd(unit, 2, 0, 0, 0, AHA_MBX_ENABLE,
  			0, extbios.mailboxlock);
  	}
  
  	/* Which boards support residuals?  Some early 1542A's apparently
  	 * don't.  The 1542B with V0.5 of the software does, so I've
  	 * arbitrarily set that as the earliest rev.
  	 */
! 	if ((inquire.boardid >= 0x43) ||
! 		 (inquire.boardid == 0x41
  		&& (inquire.revision_1 > '0' || inquire.revision_2 >= '5'))) {
  		printf(", enabling residuals");
  		aha->init_opcode = AHA_INIT_RESID_CCB;


-- 
e-mail: dirk@hal.in-berlin.de		PGP-Public-Key available

"Trommelfeuer, Sperrfeuer, Gardinenfeuer, Minen, Gas, Tanks,
Machinengewehre, Handgranaten - Worte, Worte, aber sie umfassen
das Grauen der Welt."
		-- Erich Maria Remarque, "Im Westen nichts Neues"

Microsoft Network is prohibited from redistributing this work in
any form, in whole or in part. License to distribute this work is
available to Microsoft for $1000. Redistributing without permission
constitutes an agreement to these terms.