[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

DAC960 Alpha support (was: Re: Redhat 7.2 on a DEC ALPHA 2100)



On Wed, Feb 26, 2003 at 01:43:28PM +1100, Ryder, Craig M. wrote:
> 
> Am trying to get Redhat 7.2 running on a DEC ALPHA 2100 (A500MP)
> machine.  The machine is fitted with 8 EISA slots and 3 PCI slots.
> All interface cards (ADPTEC1740 and DAC960 etc) are installed in the
> EISA slots.  I can boot from the installed CDROM drive and every
> thing progresses nicely to the disk partioning stage, at which point
> I receive a 'no devices detected' alert and installation terminates.
> 
> I am reasonably certain the problem lies with the RAID controller
> cards which are MYLEX DAC960LB (P/No D040315-4 and firmware Ver
> 2.16).

Unfortunately, I believe that that particular DAC960 may not be
supported on Alpha by the Linux driver even with updated ROM(S), or
even if it can be updated with newer ROM(S). I have had trouble with
later PCI DAC960s with P/No D040340, even when updated to DEC custom
firmware 2.70 (see below); the driver just doesn't seem to work
correctly. Unfortunately, I've not had time to look more closely at
the problem.

One can download from the following HP site firmware upgrades (to DEC
custom version 2.70, ie single EEPROM) for some of the older DAC960
cards (see table below), along with documentation and the RAID
Configuration Utility (RCU) that can be run from ARC/AlphaBIOS
consoles on our Alphas.

  http://h18002.www1.hp.com/alphaserver/products/storage/ra230/index.html

Several small tweaks must be made to current Linux sources to allow:

1. the Linux DAC960 driver to work with DEC custom version 2.70 firmware,
2. using DAC960-based RAID disks as root.

To this purpose, find attached at the end patches against 2.4.21-pre4,
based on some patches posted by Richard Muratti <rmurat@attglobal.net>
to the debian-alpha-list. These will most likely apply reasonably well
to other kernel 2.4.x versions, but are not intended for 2.5.x.

WARNING!!!

There may be, occasionally, "misleading" messages from the DAC960
driver when used with the DEC custom firmware version 2.70.  I've seen
some that claimed that existing drives were "DEAD", but they worked
just fine. There may be more, so - YOU ARE WARNED!!!

If a RAID volume is initialized using "fdisk" to BSD-style partition
table, leaving ~5MB unused space at the beginning (for the "aboot"
bootstrap to be installed, via "swriteboot"), our SRM consoles will be
able to boot from that volume.

The following DAC960 models have been successfully used with the
modified Linux driver and the updated custom firmware version 2.70:

	Part No		MYLEX name	DEC name
	-------		----------	--------

	D040347		DAC960PD-1	KZPSC 1 channel
	D040348		DAC960PD-2	KZPSC 2 channels
	D040349		DAC960PD-3	KZPSC 3 channels

	D040395		DAC960PU-1	KZPAC 1 channel
	D040396		DAC960PU-2	KZPAC 2 channels
	D040397		DAC960PU-3	KZPAC 3 channels

Note that KZPSC is Fast/Wide, while KZPAC will run Ultra/Wide, IIRC.

Good luck, and please let me know of any problems.

 --Jay++

-----------------------------------------------------------------------------
Jay A Estabrook                            HPTC - LINUX support
Hewlett-Packard Company - MRO1-2/K15       (508) 467-2080
200 Forest Street, Marlboro MA 01752       Jay.Estabrook@hp.com
-----------------------------------------------------------------------------
diff -urP old/drivers/block/DAC960.c new/drivers/block/DAC960.c
--- old/drivers/block/DAC960.c	Thu Nov 28 18:53:12 2002
+++ new/drivers/block/DAC960.c	Thu Feb 13 09:56:38 2003
@@ -1132,6 +1132,19 @@
     DAC960PTL/PRL/PJ/PG	    4.06 and above
     DAC960PU/PD/PL	    3.51 and above
     DAC960PU/PD/PL/P	    2.73 and above
+
+    DEC Alpha machines were often equipped with DAC960 cards that were
+    OEMed from Mylex, and had their own custom firmware. Version 2.70,
+    the last custom FW revision to be released by DEC for these older
+    controllers, appears to work quite well with this driver.
+
+    Cards tested successfully were several versions each of the PD and
+    PU, called by DEC the KZPSC and KZPAC, respectively, and having
+    the Manufacturer Numbers (from Mylex), usually on a sticker on the
+    back of the board, of:
+
+    KZPSC	D040347 (1ch) or D040348 (2ch) or D040349 (3ch)
+    KZPAC	D040395 (1ch) or D040396 (2ch) or D040397 (3ch)
   */
   if (Enquiry2.FirmwareID.MajorVersion == 0)
     {
@@ -1152,7 +1165,11 @@
 	(Controller->FirmwareVersion[0] == '3' &&
 	 strcmp(Controller->FirmwareVersion, "3.51") >= 0) ||
 	(Controller->FirmwareVersion[0] == '2' &&
+#if defined(__alpha__)
+	 strcmp(Controller->FirmwareVersion, "2.70") >= 0)))
+#else
 	 strcmp(Controller->FirmwareVersion, "2.73") >= 0)))
+#endif
     {
       DAC960_Failure(Controller, "FIRMWARE VERSION VERIFICATION");
       DAC960_Error("Firmware Version = '%s'\n", Controller,
diff -urP old/init/do_mounts.c new/init/do_mounts.c
--- old/init/do_mounts.c	Wed Jan 29 12:44:26 2003
+++ new/init/do_mounts.c	Thu Feb 13 09:59:11 2003
@@ -164,6 +164,26 @@
 	{ "dasdg", (DASD_MAJOR << MINORBITS) + (6 << 2) },
 	{ "dasdh", (DASD_MAJOR << MINORBITS) + (7 << 2) },
 #endif
+#if defined(CONFIG_ALPHA) && \
+    (defined(CONFIG_BLK_DEV_DAC960) || defined(CONFIG_BLK_DEV_DAC960_MODULE))
+	/* On Alpha machines, consoles support booting from DAC960s. */
+	{ "rd/c0d0p",0x3000 },
+	{ "rd/c0d1p",0x3008 },
+	{ "rd/c0d2p",0x3010 },
+	{ "rd/c0d3p",0x3018 },
+	{ "rd/c0d4p",0x3020 },
+	{ "rd/c0d5p",0x3028 },
+	{ "rd/c0d6p",0x3030 },
+	{ "rd/c0d7p",0x3038 },
+	{ "rd/c0d8p",0x3040 },
+	{ "rd/c0d9p",0x3048 },
+	{ "rd/c0d10p",0x3050 },
+	{ "rd/c0d11p",0x3058 },
+	{ "rd/c0d12p",0x3060 },
+	{ "rd/c0d13p",0x3068 },
+	{ "rd/c0d14p",0x3070 },
+	{ "rd/c0d15p",0x3078 },
+#endif
 #if defined(CONFIG_BLK_CPQ_DA) || defined(CONFIG_BLK_CPQ_DA_MODULE)
 	{ "ida/c0d0p",0x4800 },
 	{ "ida/c0d1p",0x4810 },

Reply to: