ATA RAID -- Promise SATA150 vanished /dev/ar0
Søren Schmidt
sos at DeepCore.dk
Sat Apr 30 11:18:41 PDT 2005
Jon Door wrote:
> Using the BIOS. The Fasttrak reports the array as functional during
> boot, and returning to a 5.4 kernel allows me to mount the volume
> without incident.
> Thanks!
>
> It looks like its not getting any metadata persiod, cut from the dmesg:
>
> ata0-master: pio=PIO4 wdma=WDMA2 udma=UDMA133 cable=40 wire
> ad4: 114440MB <Maxtor 6Y120M0 YAR51EW0> at ata2-master SATA150
> ad4: 234375000 sectors [232514C/16H/63S] 16 sectors/interrupt 1 depth queue
> ad4: Promise check1 failed
> ad4: Adaptec check1 failed
> ad4: LSI (v3) check1 failed
> ad4: LSI (v2) check1 failed
> ad4: FreeBSD check1 failed
> ata1-master: pio=PIO4 wdma=WDMA2 udma=UDMA133 cable=40 wire
> ad6: 114440MB <Maxtor 6Y120M0 YAR51EW0> at ata3-master SATA150
> ad6: 234375000 sectors [232514C/16H/63S] 16 sectors/interrupt 1 depth queue
> ad6: Promise check1 failed
> ad6: Adaptec check1 failed
> ad6: LSI (v3) check1 failed
> ad6: LSI (v2) check1 failed
> ad6: FreeBSD check1 failed
OK, I think we are looking at the wrong place for the metadata, I think
I messed up and made the calculation too simple :)
Try this patch:
--
-Søren
-------------- next part --------------
Index: ata-raid.h
===================================================================
RCS file: /home/ncvs/src/sys/dev/ata/ata-raid.h,v
retrieving revision 1.32
diff -u -r1.32 ata-raid.h
--- ata-raid.h 30 Apr 2005 16:22:07 -0000 1.32
+++ ata-raid.h 30 Apr 2005 18:16:22 -0000
@@ -521,8 +521,13 @@
/* Promise FastTrak Metadata */
+#if 0
#define PR_LBA(dev) \
(((struct ad_softc *)device_get_ivars(dev))->total_secs - 63)
+#else
+#define PR_LBA(dev) \
+ (((((struct ad_softc *)device_get_ivars(dev))->total_secs / (((struct ad_softc *)device_get_ivars(dev))->heads * ((struct ad_softc *)device_get_ivars(dev))->sectors)) * ((struct ad_softc *)device_get_ivars(dev))->heads * ((struct ad_softc *)device_get_ivars(dev))->sectors) - ((struct ad_softc *)device_get_ivars(dev))->sectors)
+#endif
struct promise_raid_conf {
char promise_id[24];
More information about the freebsd-current
mailing list