PATCH: Add support for IT8212 IDE controllers
A message that is not in the archive (sent off-list or not yet received): [email protected]
Quoted 3 lines · Alan Cox
There is a messy scsi faking vendor driver for this card but this instead is a standard Linux IDE layer driver.
I try to answer to this post. As I newly subscribed to this list, I probably won't catch the original thread.
After application of this patch I get the following error during compilation. This are my first steps with kernel patching. Probably the fault is on my side.
Regards Elmar
CC drivers/ide/pci/it8212.odrivers/ide/pci/it8212.c:643: error: `PCI_DEVICE_ID_ITE_8212' undeclared here (not in a function) drivers/ide/pci/it8212.c:643: error: Initialisierungselement ist nicht konstant drivers/ide/pci/it8212.c:643: error: (near initialization for it8212_pci_tbl[0].device') drivers/ide/pci/it8212.c:643: error: Initialisierungselement ist nicht konstant drivers/ide/pci/it8212.c:643: error: (near initialization for it8212_pci_tbl[0]') drivers/ide/pci/it8212.c:644: error: Initialisierungselement ist nicht konstant drivers/ide/pci/it8212.c:644: error: (near initialization for `it8212_pci_tbl[1]') make[4]: *** [drivers/ide/pci/it8212.o] Fehler 1
make[3]: *** [drivers/ide/pci] Fehler 2
make[2]: *** [drivers/ide] Fehler 2
make[1]: *** [drivers] Fehler 2
make[1]: Verlasse Verzeichnis »/usr/src/linux-2.6.8-rc2«
make: *** [stamp-build] Fehler 2
Quoted 7 lines · Elmar Hinz
Quoted 3 lines · Alan Cox
There is a messy scsi faking vendor driver for this card but this instead is a standard Linux IDE layer driver.
I try to answer to this post. As I newly subscribed to this list, I probably won't catch the original thread.
Not your fault - I missed out an include file update when I posted it - PCI_DEVICE_ID_ITE_8212 is 0x8212..
Quoted 6 lines
Not your fault - I missed out an include file update when I posted it -
PCI_DEVICE_ID_ITE_8212is0x8212..
Oops. I only understand "trainstation". I guess you will put the fixed patch on the list. Do you? :-)
In drivers/ide/pci/ some other drivers have a *.h file. Maybe you mean that?
Then I discover on http://lkml.org/lkml/2004/8/1/121 a double linebreak, wich causes an error. It is not there in the newsgroup. Strange.
#define DECLARE_ITE_DEV(name_str) \
{ \
.name = name_str, \
.init_chipset = init_chipset_it8212, \
.init_hwif = init_hwif_it8212, \
.channels = 2, \
.autodma = AUTODMA, \
.bootable = ON_BOARD, \
}Regards
Elmar
Quoted 3 lines
Quoted 3 lines
Not your fault - I missed out an include file update when I posted it -
PCI_DEVICE_ID_ITE_8212is0x8212..
This seems to mean:
put this
#define PCI_DEVICE_ID_ITE_8212 0x8212
into that
/usr/src/kernel-source-2.x.x/include/linux/pci_ids.h
Regards
Elmar
Hello,
here some personel observations. Maybe they are result of little experience of mine. Maybe they are of use for others.
I use rev11 of it/ite8212 Dual Channel ATA RAID controller. On each master there is a 80GB harddisk.
When I set in the bios RAID 1 there comes an message similar INVALID GEOMETRY: 0 PHYSICAL HEADS?
and booting stops.
When I set NORMAL, I get IRQ-timeouts for both disks. (IRQ 10)
but booting continous and I can use the disks.
hdparm => 15.70 MB/sec
Elmar
Quoted 3 lines · Elmar Hinz
When I set in the bios RAID 1 there comes an message similar INVALID GEOMETRY: 0 PHYSICAL HEADS?
and booting stops.
At which point
Quoted 2 lines
but booting continous and I can use the disks.
hdparm => 15.70 MB/sec
A bit slow.. thanks
Quoted 7 lines · Alan Cox
Quoted 3 lines · Elmar Hinz
When I set in the bios RAID 1 there comes an message similar INVALID GEOMETRY: 0 PHYSICAL HEADS?
and booting stops.
Quoted 10 lines
At which point
Quoted 2 lines
but booting continous and I can use the disks.
hdparm => 15.70 MB/secA bit slow.. thanks
I am sorry. I can't test the card in the RAID mode anymore, because it is in use meanwhile with NORMAL mode an a software raid. Maybe the output of dmesg in NORMAL mode is usefull for you.
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
IT8212: IDE controller at PCI slot 0000:00:09.0
PCI: Found IRQ 10 for device 0000:00:09.0
PCI: Sharing IRQ 10 with 0000:00:01.2
(Changing the slots IRQ by bios alters both devices 0000:00:01.2 and 0000:00:09.0, so they seem to belong both to the card/disks)
IT8212: chipset revision 17
IT8212: 100% native mode on irq 10
ide2: BM-DMA at 0xb000-0xb007, BIOS settings: hde:DMA, hdf:pio
it8212: controller in smart mode.
it8212: BIOS seleted a 66MHz clock.
ide3: BM-DMA at 0xb008-0xb00f, BIOS settings: hdg:DMA, hdh:pioit8212: BIOS seleted a 66MHz clock.
hde: WDC WD800JB-00FMA0, ATA DISK drive
ide2 at 0xd400-0xd407,0xd002 on irq 10
hdg: WDC WD800JB-00FMA0, ATA DISK drive
ide3 at 0xb800-0xb807,0xb402 on irq 10
hdc: ATAPI CDROM, ATAPI CD/DVD-ROM drive
ide1 at 0x170-0x177,0x376 on irq 15
hde: max request size: 128KiB
hde: recal_intr: status=0x51 { DriveReady SeekComplete Error }
hde: recal_intr: error=0x04 { DriveStatusError }
hde: 156301488 sectors (80026 MB) w/8192KiB Cache, CHS=65535/16/63, UDMA(33)
hde: irq timeout: status=0xd0 { Busy }
/dev/ide/host2/bus0/target0/lun0: p1 < p5 p6 p7 p8 >
hdg: max request size: 128KiB
hdg: recal_intr: status=0x51 { DriveReady SeekComplete Error }
hdg: recal_intr: error=0x04 { DriveStatusError }
hdg: 156301488 sectors (80026 MB) w/8192KiB Cache, CHS=65535/16/63, UDMA(33)
hdg: irq timeout: status=0xd0 { Busy }
/dev/ide/host2/bus1/target0/lun0: p1 < p5 p6 p7 p8 >
Quoted 3 lines · Elmar Hinz
When I set in the bios RAID 1 there comes an message similar INVALID GEOMETRY: 0 PHYSICAL HEADS?
and booting stops.
Should be fixed now. I'm running a bios raid1 and it seems to be doing the right thing. Turns out we had a locking bug on that error path and the identify block from the raid volumes was wrong
I've added some quirk code to fix up the fields in the identify data to indicate LBA28/48 is supported, report that the UDMA data provided is valid (so we turn DMA on and get cable CRCs).
I've also added code to the it8212 driver to filter the 48bit flush cache command (seems to kill my card), only queue 128K per I/O (LBA48 full sized I/O's also seem to kill my card) and to skip the 0x27 (native size) query the firmware doesn't seem to know.
Alan