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: