Hi, I've got an ASUS P5GD1 [1] Motherboard, with a 915P chipset and a ICH6R [2] southbridge. Since the UDMA controller was recognized as an "GENERIC ATA controller", I was stuck in UDMA33 mode for my Seagate Ultra ATA/100 IDE hard drive, and I wasn't able to change the settings using "atacontrol mode". Since there is already a great list of Intel supported chipsets in src/sys/dev/ata/ata-chipset.c, I've added the references of the chip in ata-chipset.c and ata-pci.h, on a fresh cvsuped 6.0-CURRENT. Please, someone could review it ? My first patch :/ pciconf -lv give the following output for this chip : atapci0_at_pci0:31:1: class=0x01018a card=0x26408086 chip=0x266f8086 rev=0x03 hdr=0x00 vendor = 'Intel Corporation' device = '82801FB ICH6 Ultra ATA Storage Controller' class = mass storage subclass = ATA The Intel's datasheet is speaking of this chip as : Integrated IDE Controller -- Independent timing of up to two drives -- Ultra ATA/100/66/33, BMIDE and PIO modes -- Tri-state modes to enable swap bay So, it doesn't seem to be really different from other Intel IDE controllers. My two-lines patch : ble# pwd /usr/src/sys/dev/ata ble# diff -u ata-pci.h~ ata-pci.h --- ata-pci.h~ Wed Oct 6 23:27:39 2004 +++ ata-pci.h Sat Oct 9 11:31:10 2004 _at__at_ -118,6 +118,7 _at__at_ #define ATA_I82801EB 0x24db8086 #define ATA_I82801EB_S1 0x24d18086 #define ATA_I82801EB_R1 0x24df8086 +#define ATA_I82801FB 0x266f8086 #define ATA_I6300ESB 0x25a28086 #define ATA_I6300ESB_S1 0x25a38086 #define ATA_I6300ESB_R1 0x25b08086 ble# diff -u ata-chipset.c~ ata-chipset.c --- ata-chipset.c~ Wed Oct 6 23:27:39 2004 +++ ata-chipset.c Sat Oct 9 11:16:54 2004 _at__at_ -830,6 +830,7 _at__at_ { ATA_I82801EB, 0, 0, 0x00, ATA_UDMA5, "Intel ICH5" }, { ATA_I82801EB_S1,0, 0, 0x00, ATA_SA150, "Intel ICH5" }, { ATA_I82801EB_R1,0, 0, 0x00, ATA_SA150, "Intel ICH5" }, + { ATA_I82801FB, 0, 0, 0x00, ATA_UDMA5, "Intel ICH6" }, { ATA_I6300ESB, 0, 0, 0x00, ATA_UDMA5, "Intel 6300ESB" }, { ATA_I6300ESB_S1,0, 0, 0x00, ATA_SA150, "Intel 6300ESB" }, { ATA_I6300ESB_R1,0, 0, 0x00, ATA_SA150, "Intel 6300ESB" }, Now, when the kernel is loading, the controller is recognized (output of dmesg) : atapci0: <Intel ICH6 UDMA100 controller> port 0xffa0-0xffaf,0x376,0x170-0x177,0x3f 6,0x1f0-0x1f7 at device 31.1 on pci0 ata0: channel #0 on atapci0 ata1: channel #1 on atapci0 And my hard drive works like a charm : ad0: 38166MB <ST340014A/3.04> [77545/16/63] at ata0-master UDMA100 Note that there is always, on that board, another driver spotted as "GENERIC", for this chip : atapci1_at_pci0:31:2: class=0x01018f card=0x26011043 chip=0x26528086 rev=0x03 hdr=0x00 vendor = 'Intel Corporation' device = '82801FR/FRW ICH6R/ICH6RW SATA Controller' class = mass storage subclass = ATA I'll try to add it, as soon I will have a SATA-compliant drive to test it :-) [1] : http://www.asus.com/products/mb/socket775/p5gd1/overview.htm [2] : http://www.intel.com/design/chipsets/datashts/301473.htm -- Florian "madflo" Le Goff - madflo_at_beertech.orgReceived on Sat Oct 09 2004 - 09:48:45 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:16 UTC