Ok thanks to Sergei I can now post what I think is the complete table of
HPT chip versions:
Chip PCI ID Rev
* HPT366 4 (HPT366) 0
* HPT366 4 (HPT366) 1
* HPT368 4 (HPT366) 2
* HPT370 4 (HPT366) 3
* HPT370A 4 (HPT366) 4
* HPT372 4 (HPT366) 5
* HPT372N 4 (HPT366) 6
* HPT372 5 (HPT372) 0
* HPT372N 5 (HPT372) > 0
* HPT302 6 (HPT302) *
* HPT302N 6 (HPT302) > 1
* HPT371 7 (HPT371) *
* HPT371N 7 (HPT371) > 1
* HPT374 8 (HPT374) *
* HPT372N 9 (HPT372N) *
The base clocks for the devices are as follows (note this means most of
the drivers/ide/pci detection code for frequency is wrong). Also for PLL
mode the 3x2N PLL stabilization code is subtly different.
371N/372N/302N 77
302/371/372A 66
372 55
370/374 48
The DPLLs are
48, 50, 66, 75Mhz
75 is only available on the later chips and used with PATA/SATA bridge
chips for UDMA7.
On Tue, 08 Nov 2005 17:38:02 +0000, Alan Cox wrote:
> Ok thanks to Sergei I can now post what I think is the complete table of
> HPT chip versions:
>
> Chip PCI ID Rev
> * HPT366 4 (HPT366) 0
> * HPT366 4 (HPT366) 1
> * HPT368 4 (HPT366) 2
> * HPT370 4 (HPT366) 3
> * HPT370A 4 (HPT366) 4
> * HPT372 4 (HPT366) 5
> * HPT372N 4 (HPT366) 6
> * HPT372 5 (HPT372) 0
^^^^^^
This one is called HPT372A by Highpoint's BIOS/Win drivers.
Also I'm not sure if it's relevant but PCI ID 5 chips use a different
BIOS image than PCI ID 4 chips.
> * HPT372N 5 (HPT372) > 0
> * HPT302 6 (HPT302) *
> * HPT302N 6 (HPT302) > 1
> * HPT371 7 (HPT371) *
> * HPT371N 7 (HPT371) > 1
> * HPT374 8 (HPT374) *
> * HPT372N 9 (HPT372N) *
This last one is not listed in the Win drivers at all. Strange.
--
Ville Syrj?l?
[email protected]
http://www.sci.fi/~syrjala/
On Maw, 2005-11-08 at 21:02 +0200, Ville Syrjälä wrote:
> > * HPT372 4 (HPT366) 5
> > * HPT372N 4 (HPT366) 6
> > * HPT372 5 (HPT372) 0
> ^^^^^^
>
> This one is called HPT372A by Highpoint's BIOS/Win drivers.
>
> Also I'm not sure if it's relevant but PCI ID 5 chips use a different
> BIOS image than PCI ID 4 chips.
I suspect it is relevant because the "372A" appears to have a different
base clock to the HPT372.
Added to the list.
Alan Cox wrote:
> On Maw, 2005-11-08 at 21:02 +0200, Ville Syrjälä wrote:
>
>>> * HPT372 4 (HPT366) 5
>>> * HPT372N 4 (HPT366) 6
>>> * HPT372 5 (HPT372) 0
>>
>> ^^^^^^
>>
>>This one is called HPT372A by Highpoint's BIOS/Win drivers.
>>
>>Also I'm not sure if it's relevant but PCI ID 5 chips use a different
>>BIOS image than PCI ID 4 chips.
>
>
> I suspect it is relevant because the "372A" appears to have a different
> base clock to the HPT372.
>
> Added to the list.
>
May we assume that this information was gathered in the interest of
something beyond pedantic curiousity? Will this simplify the driver
code, improve performance or reliability, etc?
--
-bill davidsen ([email protected])
"The secret to procrastination is to put things off until the
last possible moment - but no longer" -me
On Maw, 2005-11-08 at 17:35 -0500, Bill Davidsen wrote:
> May we assume that this information was gathered in the interest of
> something beyond pedantic curiousity? Will this simplify the driver
> code, improve performance or reliability, etc?
Something like that
I've been collecting the data to get the libata driver right, and in
doing so even with the partial data I had came across some chunks of
data that are wrong in the ide/pci driver.
Its not made easier by the fact hpt seem to have taken down their own
drivers for older (now "unsupported" I suspect) chips.
The frequency and chip id data is needed to correctly tune the PLLs and
to identify the right base frequency for timing.
* Alan Cox wrote:
> Ok thanks to Sergei I can now post what I think is the complete table of
> HPT chip versions:
>
> Chip PCI ID Rev
> * HPT374 8 (HPT374) *
>
> The base clocks for the devices are as follows (note this means most of
> the drivers/ide/pci detection code for frequency is wrong). Also for PLL
> mode the 3x2N PLL stabilization code is subtly different.
>
> 371N/372N/302N 77
> 302/371/372A 66
> 372 55
> 370/374 48
>
> The DPLLs are
> 48, 50, 66, 75Mhz
>
> 75 is only available on the later chips and used with PATA/SATA bridge
> chips for UDMA7.
I've got the following HPT374 controllers on my mainboard and the
default freq value never worked for me (OOPS during boot).
0000:00:0e.0 0104: 1103:0008 (rev 07)
Subsystem: 1103:0001
Flags: bus master, 66MHz, medium devsel, latency 120, IRQ 10
I/O ports at b000 [size=8]
I/O ports at b400 [size=4]
I/O ports at b800 [size=8]
I/O ports at bc00 [size=4]
I/O ports at c000 [size=256]
Expansion ROM at 30020000 [disabled] [size=128K]
Capabilities: [60] Power Management version 2
0000:00:0e.1 0104: 1103:0008 (rev 07)
Subsystem: 1103:0001
Flags: bus master, 66MHz, medium devsel, latency 120, IRQ 10
I/O ports at c400 [size=8]
I/O ports at c800 [size=4]
I/O ports at cc00 [size=8]
I/O ports at d000 [size=4]
I/O ports at d400 [size=256]
Capabilities: [60] Power Management version 2
[ 34.230429] HPT374: IDE controller at PCI slot 0000:00:0e.0
[ 34.230461] PCI: Enabling device 0000:00:0e.0 (0005 -> 0007)
[ 34.230491] PCI: Found IRQ 10 for device 0000:00:0e.0
[ 34.230525] PCI: Sharing IRQ 10 with 0000:00:0e.1
[ 34.230555] HPT374: chipset revision 7
[ 34.230584] HPT374: 100% native mode on irq 10
[ 34.230613] HPT37X: using 33MHz PCI clock
[ 34.230723] ide2: BM-DMA at 0xc000-0xc007, BIOS settings: hde:DMA, hdf:DMA
[ 34.230779] HPT37X: using 33MHz PCI clock
[ 34.230887] ide3: BM-DMA at 0xc008-0xc00f, BIOS settings: hdg:pio, hdh:pio
[ 34.230949] PCI: Found IRQ 10 for device 0000:00:0e.1
[ 34.230980] PCI: Sharing IRQ 10 with 0000:00:0e.0
[ 34.231023] HPT37X: using 33MHz PCI clock
[ 34.231131] ide4: BM-DMA at 0xd400-0xd407, BIOS settings: hdi:DMA, hdj:DMA
[ 34.231188] HPT37X: using 33MHz PCI clock
[ 34.231296] ide5: BM-DMA at 0xd408-0xd40f, BIOS settings: hdk:DMA, hdl:DMA
I have to use this patch. I'm not sure if it does the right thing,
but at least it works without OOPS and without data corruption.
--- linux/drivers/ide/pci/hpt366.c~ 2005-07-24 01:51:31.000000000 +0200
+++ linux/drivers/ide/pci/hpt366.c 2005-07-26 14:22:42.000000000 +0200
@@ -1188,7 +1188,7 @@
}
else
{
- if(freq < 0x9C)
+ if(freq < 0xA4)
pll = F_LOW_PCI_33;
else if(freq < 0xb0)
pll = F_LOW_PCI_40;
Here's a history of freq values:
/var/log/kern.log.1.gz:Oct 18 05:04:12 pikelot kernel: freq: 9c
/var/log/kern.log.1.gz:Oct 18 05:04:12 pikelot kernel: freq: 97
/var/log/kern.log.1.gz:Oct 18 09:59:54 pikelot kernel: freq: 9f
/var/log/kern.log.1.gz:Oct 18 09:59:54 pikelot kernel: freq: 9e
/var/log/kern.log.1.gz:Oct 20 10:29:40 pikelot kernel: freq: 92
/var/log/kern.log.1.gz:Oct 20 10:29:40 pikelot kernel: freq: 9e
/var/log/kern.log.3.gz:Oct 6 10:27:52 pikelot kernel: freq: 99
/var/log/kern.log.3.gz:Oct 6 10:27:52 pikelot kernel: freq: a1
/var/log/kern.log.3.gz:Oct 8 15:17:59 pikelot kernel: freq: 9c
/var/log/kern.log.3.gz:Oct 8 15:17:59 pikelot kernel: freq: a2
/var/log/kern.log.3.gz:Oct 8 16:08:26 pikelot kernel: freq: 9b
/var/log/kern.log.3.gz:Oct 8 16:08:26 pikelot kernel: freq: 9e
/var/log/kern.log.3.gz:Oct 9 06:02:15 pikelot kernel: freq: 9d
/var/log/kern.log.3.gz:Oct 9 06:02:15 pikelot kernel: freq: 98
The machine is not and never has been overclocked.
Best Regards,
Karsten Desler
I've put a new patch up which fixes the enablebits problems. It's not
really there for people to run off and test but because it now has a
full set of "first guess" hpt3xx driver code.
I've been through various drivers and tried to work out what we actually
should be doing with these chips. I'd appreciate review of that and
opinions from other folks hacking on hpt pata stuff.
Alan
http://zeniv.linux.org.uk/~alan/IDE
Hello.
Ville Syrj?l? wrote:
> On Tue, 08 Nov 2005 17:38:02 +0000, Alan Cox wrote:
>>Ok thanks to Sergei I can now post what I think is the complete table of
>>HPT chip versions:
Another correction coming in... :-)
>> Chip PCI ID Rev
>> * HPT366 4 (HPT366) 0
>> * HPT366 4 (HPT366) 1
>> * HPT368 4 (HPT366) 2
>> * HPT370 4 (HPT366) 3
>> * HPT370A 4 (HPT366) 4
>> * HPT372 4 (HPT366) 5
>> * HPT372N 4 (HPT366) 6
>> * HPT372 5 (HPT372) 0
>
> ^^^^^^
>
> This one is called HPT372A by Highpoint's BIOS/Win drivers.
According to Highpoint's driver code 372A has rev. ID 1...
> Also I'm not sure if it's relevant but PCI ID 5 chips use a different
> BIOS image than PCI ID 4 chips.
>
>
>> * HPT372N 5 (HPT372) > 0
And 372N has rev. ID 2...
WBR, Sergei
On Fri, 11 Nov 2005 22:51:15 +0300, Sergei Shtylylov wrote:
> Hello.
>
> Ville Syrj?l? wrote:
>> On Tue, 08 Nov 2005 17:38:02 +0000, Alan Cox wrote:
>
>>>Ok thanks to Sergei I can now post what I think is the complete table of
>>>HPT chip versions:
>
> Another correction coming in... :-)
>
>>> Chip PCI ID Rev
>>> * HPT366 4 (HPT366) 0
>>> * HPT366 4 (HPT366) 1
>>> * HPT368 4 (HPT366) 2
>>> * HPT370 4 (HPT366) 3
>>> * HPT370A 4 (HPT366) 4
>>> * HPT372 4 (HPT366) 5
>>> * HPT372N 4 (HPT366) 6
>>> * HPT372 5 (HPT372) 0
>>
>> ^^^^^^
>>
>> This one is called HPT372A by Highpoint's BIOS/Win drivers.
>
> According to Highpoint's driver code 372A has rev. ID 1...
>
>> Also I'm not sure if it's relevant but PCI ID 5 chips use a different
>> BIOS image than PCI ID 4 chips.
>>
>>
>>> * HPT372N 5 (HPT372) > 0
>
> And 372N has rev. ID 2...
Right you are. Their opensource driver doesn't list any PCI ID 5,6 or 7
chips with revision 0. All rev 1 chips are apparently non-N models and all
rev 2 chips are N models.
--
Ville Syrj?l?
[email protected]
http://www.sci.fi/~syrjala/