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

Re: Root raid with dac960 -- Solution



Hi,

Finally solved my little problem.
It seems that the linux kernel does not have root device support for DAC960.
The following patch against 2.4.20 adds that functionality
You also need to patch the DAC960 driver to support Firmware 2.70 on the alpha

Cheers
Rick


diff -ur linux-2.4.20/init/do_mounts.c linux/init/do_mounts.c
--- linux-2.4.20/init/do_mounts.c       Fri Nov 29 10:53:15 2002
+++ linux/init/do_mounts.c      Sat Jan  4 23:59:06 2003
@@ -164,6 +164,24 @@
        { "dasdg", (DASD_MAJOR << MINORBITS) + (6 << 2) },
        { "dasdh", (DASD_MAJOR << MINORBITS) + (7 << 2) },
 #endif
+#if defined(CONFIG_BLK_DEV_DAC960) || defined(CONFIG_BLK_DEV_DAC960_MODULE)
+       { "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 }


--- linux-2.4.20/drivers/block/DAC960.c Fri Nov 29 10:53:12 2002
+++ linux/drivers/block/DAC960.c        Sun Jan  5 01:41:40 2003
@@ -22,6 +22,11 @@
 #define DAC960_DriverVersion                   "2.4.11"
 #define DAC960_DriverDate                      "11 October 2001"

+#if defined(__alpha__)
+#define DAC960_FIRMWARE_27X    "2.70"
+#else
+#define DAC960_FIRMWARE_27X    "2.73"
+#endif

 #include <linux/version.h>
 #include <linux/module.h>
@@ -1152,7 +1157,7 @@
        (Controller->FirmwareVersion[0] == '3' &&
         strcmp(Controller->FirmwareVersion, "3.51") >= 0) ||
        (Controller->FirmwareVersion[0] == '2' &&
-        strcmp(Controller->FirmwareVersion, "2.73") >= 0)))
+        strcmp(Controller->FirmwareVersion, DAC960_FIRMWARE_27X) >= 0)))
     {
       DAC960_Failure(Controller, "FIRMWARE VERSION VERIFICATION");
       DAC960_Error("Firmware Version = '%s'\n", Controller,




Reply to: