Re: RocketPoint 1520 [hpt366] fails clock stabilization

From: Loren M. Lang
Date: Fri Sep 30 2005 - 04:38:07 EST


On Fri, Sep 30, 2005 at 12:30:11AM +0100, Alan Cox wrote:
> On Iau, 2005-09-29 at 03:33 -0700, Loren M. Lang wrote:
> > Please CC me as I'm not on the list.
> >
> > I just purchased a HighPoint Rocket 1520 SATA controller. There seems
> > to be no libata driver (yet), but there is an ide driver, hpt366. When
>
> Is this 302 or 302N based (what does lspci -vxx say about it ?)

$ lspci -vxx
0000:02:0c.0 RAID bus controller: Triones Technologies, Inc. HPT372A
(rev 02)
Subsystem: Triones Technologies, Inc.: Unknown device 0001
Flags: bus master, 66Mhz, medium devsel, latency 64, IRQ 10
I/O ports at dfe0 [size=feaa0000]
I/O ports at dfac [size=4]
I/O ports at dfa0 [size=8]
I/O ports at dfa8 [size=4]
I/O ports at d400 [size=256]
Expansion ROM at 00020000 [disabled]
Capabilities: <available only to root>
00: 03 11 05 00 05 01 30 02 02 00 04 01 04 40 00 00
10: e1 df 00 00 ad df 00 00 a1 df 00 00 a9 df 00 00
20: 01 d4 00 00 00 00 00 00 00 00 00 00 03 11 01 00
30: 00 00 aa fe 60 00 00 00 00 00 00 00 0a 01 08 08

I booted FreeBSD 6.0 and it seemed to reconize the card and attached
hard drive ok. In the dmesg for freebsd, it mentioned 372N, if that
means anything. There is a patch, I discovered, which disables the
driver from marking a 372A chipset from being detected as a 372N chip.
When I applied the patch, it finally detected the sata driver ok and my
new sata drive as well. So my current hpt366 driver is as patched
below. I added a check for a NULL drvdata to prevent the driver from
seg faulting when it failed to detect my chip, and I disabled a check
for the 372N chipset.

--- drivers/ide/pci/hpt366.c.orig 2005-09-29 01:00:12.000000000
-0700
+++ drivers/ide/pci/hpt366.c 2005-09-30 02:28:47.000000000 -0700
@@ -1168,8 +1168,10 @@ static int __devinit init_hpt37x(struct
did = inb(dmabase + 0x22);
rid = inb(dmabase + 0x28);

+#if 0
if((did == 4 && rid == 6) || (did == 5 && rid > 1))
is_372n = 1;
+#endif
}

/*
@@ -1310,6 +1312,10 @@ static int __devinit init_hpt37x(struct
goto init_hpt37X_done;
}
}
+ if (!pci_get_drvdata(dev)) {
+ printk("No Clock Stabilization!!!");
+ return -1;
+ }
pll_recal:
if (adjust & 1)
pll -= (adjust >> 1);


--
I sense much NT in you.
NT leads to Bluescreen.
Bluescreen leads to downtime.
Downtime leads to suffering.
NT is the path to the darkside.
Powerful Unix is.

Public Key: ftp://ftp.tallye.com/pub/lorenl_pubkey.asc
Fingerprint: CEE1 AAE2 F66C 59B5 34CA C415 6D35 E847 0118 A3D2

Attachment: pgp00000.pgp
Description: PGP signature