Hello,
i recently bought a Tyan Trinity KT400 S2495 mainboard. It has an
onboard Highpoint RAID controller labelled "Highpoint HPT372N
0236K41N". To my surprise, Kernel 2.4.21-pre5 does not support this
chip. The relevant driver, linux/drivers/ide/pci/hpt366.c, does
support the HPT372, though.
Looking through the Highpoint Web Site, I found a downloadable
opensource driver (at http://www.highpoint-tech.com/372drivers_down.htm).
The revision history said that starting with v1.31 (21Dec2002), the
HPT372N IC is supported. Great.
I downloaded, compiled and insmod'ed the driver, which failed. I then
checked the PCI IDS and to my very surprise, the PCI ID from my chip
(1103:0009) does not match the one required by the Highpoint driver.
Doing further research, nobody seems to know anything about the
1103:0009. I finally submitted the description myself to the Linux PCI
ID Repository at sourcefourge.
So i changed the highpoint driver to detect the HPT372N on my
motherboard (see diff below) and it finally works.
I don't like that solution very much, though, because the highpoint
driver uses the scsi subsystem. Looking through highpoints hpt.c file
I could not find very much differences in the way the HPT372N is
accessed from the HPT372-way. Maybe somebody (Andre Hedrick?) could
look through the code and integrate the HPT372N into
drivers/ide/pci/hpt366.c? This feat is regrettably way beyound
my own programming capability.
I still wonder whether the HPT372N really is so new that it is not yet
listed anywhere. (It is even hard to find on the Highpoint Website).
And I wonder what the difference between HPT372N and HPT372 is.
I would love to hear about the current status of that chip. I do not
need the RAID capability, just the extra IDE ports.
Thank you for your time.
Henning
~~~ lspci output (cropped) ~~~~~~~~~~~~~~~~~~~
00:0e.0 RAID bus controller: Triones Technologies, Inc.: Unknown device 0009 (rev 01)
Subsystem: Triones Technologies, Inc.: Unknown device 0001
Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66Mhz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 64 (2000ns min, 2000ns max), cache line size 08
Interrupt: pin A routed to IRQ 11
Region 0: I/O ports at c400 [size=8]
Region 1: I/O ports at c800 [size=4]
Region 2: I/O ports at cc00 [size=8]
Region 3: I/O ports at d000 [size=4]
Region 4: I/O ports at d400 [size=256]
Expansion ROM at <unassigned> [disabled] [size=128K]
Capabilities: [60] Power Management version 2
Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
~~~ cat /proc/pci output (cropped) ~~~~~~~~~~~~~~~~~~~
Bus 0, device 14, function 0:
RAID bus controller: PCI device 1103:0009 (Triones Technologies, Inc.) (rev 1).
IRQ 11.
Master Capable. Latency=64. Min Gnt=8.Max Lat=8.
I/O at 0xc400 [0xc407].
I/O at 0xc800 [0xc803].
I/O at 0xcc00 [0xcc07].
I/O at 0xd000 [0xd003].
I/O at 0xd400 [0xd4ff].
~~~ highpoint driver diff ~~~~~~~~~~~~~~~~~~~
diff -u hpt3xx-opensource-v131/hpt.c hpt3xx-opensource-v131-new/hpt.c
--- hpt3xx-opensource-v131/hpt.c Tue Dec 24 02:45:16 2002
+++ hpt3xx-opensource-v131-new/hpt.c Mon Mar 17 01:07:53 2003
@@ -4571,6 +4571,20 @@
if (hpt3xx_init(pAdap, pPciDev)==0)
hpt_adapters[NumAdapters++] = pAdap;
}
+ /*
+ * search for HPT372N chip
+ */
+ pPciDev = NULL;
+ while ((pPciDev=pci_find_device(HPT372N_VENDORID, HPT372N_DEVICEID, pPciDev))){
+ if (NumAdapters>=MAX_ADAPTERS) break;
+ pAdap = (PHPT_ADAPTER)GLOBAL_DATA_ALLOC(sizeof(HPT_ADAPTER));
+ pci_read_config_byte(pPciDev, REG_RID, &rev);
+ pAdap->chip_type = CHIP_TYPE_HPT372N;
+ pAdap->name = CONTROLLER_NAME_HPT372N;
+ pAdap->num_buses = 2;
+ if (hpt3xx_init(pAdap, pPciDev)==0)
+ hpt_adapters[NumAdapters++] = pAdap;
+ }
if (NumAdapters) {
/*
diff -u hpt3xx-opensource-v131/hptglb.h hpt3xx-opensource-v131-new/hptglb.h
--- hpt3xx-opensource-v131/hptglb.h Mon Dec 9 04:18:42 2002
+++ hpt3xx-opensource-v131-new/hptglb.h Mon Mar 17 01:08:35 2003
@@ -676,6 +676,8 @@
#define HPT370_DEVICEID 0x0004
#define HPT372A_VENDORID 0x1103
#define HPT372A_DEVICEID 0x0005
+#define HPT372N_VENDORID 0x1103
+#define HPT372N_DEVICEID 0x0009
/*
* 370-370A timing
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- Henning Schroeder, Dipl.-Psych.- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
This archive was generated by hypermail 2b29 : Sun Mar 23 2003 - 22:00:20 EST