From owner-freebsd-current@FreeBSD.ORG Tue Nov 6 23:34:46 2007 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5400816A417 for ; Tue, 6 Nov 2007 23:34:46 +0000 (UTC) (envelope-from delphij@delphij.net) Received: from tarsier.geekcn.org (tarsier.geekcn.org [210.51.165.229]) by mx1.freebsd.org (Postfix) with ESMTP id C81F213C494 for ; Tue, 6 Nov 2007 23:34:45 +0000 (UTC) (envelope-from delphij@delphij.net) Received: from localhost (tarsier.geekcn.org [210.51.165.229]) by tarsier.geekcn.org (Postfix) with ESMTP id 63D8BEB4D10; Wed, 7 Nov 2007 07:34:57 +0800 (CST) X-Virus-Scanned: amavisd-new at geekcn.org Received: from tarsier.geekcn.org ([210.51.165.229]) by localhost (mail.geekcn.org [210.51.165.229]) (amavisd-new, port 10024) with ESMTP id xGK9MHDNj+fu; Wed, 7 Nov 2007 07:34:52 +0800 (CST) Received: from charlie.delphij.net (71.5.7.139.ptr.us.xo.net [71.5.7.139]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by tarsier.geekcn.org (Postfix) with ESMTP id 6453AEB4C4F; Wed, 7 Nov 2007 07:34:49 +0800 (CST) DomainKey-Signature: a=rsa-sha1; s=default; d=delphij.net; c=nofws; q=dns; h=message-id:date:from:reply-to:organization:user-agent: mime-version:to:subject:x-enigmail-version:content-type; b=O0Tlby0fCq05RSW9HgjvRlrZTgjHADj3gWmsFmHktbMGuZ+ml1PmvmmSHpFW0ZPEx PbOUSEhilFBEE8xaSRCUw== Message-ID: <4730FA0A.8020601@delphij.net> Date: Tue, 06 Nov 2007 15:34:34 -0800 From: Xin LI Organization: The FreeBSD Project User-Agent: Thunderbird 2.0.0.6 (X11/20071031) MIME-Version: 1.0 To: freebsd-current@freebsd.org X-Enigmail-Version: 0.95.5 Content-Type: multipart/mixed; boundary="------------020302030509000806090307" Subject: ATI SB600/700/800 tester wanted X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: d@delphij.net List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Nov 2007 23:34:46 -0000 This is a multi-part message in MIME format. --------------020302030509000806090307 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi, Here is a patch that adds ATI SB600/SB700/SB800 (except RAID5, I don't have taken a look at the support material yet) support to ata(4). After this patch the driver is supposed to support the following mode: ATA_ATI_SB600 (IDE mode) ATA_ATI_SB600 (non-RAID5 mode) ATA_ATI_SB700 (All mode except RAID-5) ATA_ATI_SB800 Please let me know if you have the hardware and whether the patch works or not (be sure to include your pciconf -l | grep atapci output and dmesg.boot). Thanks! Cheers, - -- Xin LI http://www.delphij.net/ FreeBSD - The Power to Serve! -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (FreeBSD) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFHMPoKhcUczkLqiksRAjtwAJ42o00gszaewJVqsQAYHFZmp5D9GQCg4hS6 hew855Gt9NSIH/71jkmUXWs= =/R75 -----END PGP SIGNATURE----- --------------020302030509000806090307 Content-Type: text/x-patch; name="ati.diff" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="ati.diff" Index: ata-chipset.c =================================================================== RCS file: /home/ncvs/src/sys/dev/ata/ata-chipset.c,v retrieving revision 1.203 diff -u -p -r1.203 ata-chipset.c --- ata-chipset.c 26 Oct 2007 09:01:06 -0000 1.203 +++ ata-chipset.c 6 Nov 2007 23:24:56 -0000 @@ -1290,12 +1290,20 @@ ata_ati_ident(device_t dev) struct ata_pci_controller *ctlr = device_get_softc(dev); struct ata_chip_id *idx; static struct ata_chip_id ids[] = - {{ ATA_ATI_IXP200, 0x00, 0, 0, ATA_UDMA5, "IXP200" }, - { ATA_ATI_IXP300, 0x00, 0, 0, ATA_UDMA6, "IXP300" }, - { ATA_ATI_IXP400, 0x00, 0, 0, ATA_UDMA6, "IXP400" }, - { ATA_ATI_IXP300_S1, 0x00, SIIMEMIO, 0, ATA_SA150, "IXP300" }, - { ATA_ATI_IXP400_S1, 0x00, SIIMEMIO, 0, ATA_SA150, "IXP400" }, - { ATA_ATI_IXP400_S2, 0x00, SIIMEMIO, 0, ATA_SA150, "IXP400" }, + {{ ATA_ATI_IXP200, 0x00, 0, 0, ATA_UDMA5, "IXP200" }, + { ATA_ATI_IXP300, 0x00, 0, 0, ATA_UDMA6, "IXP300" }, + { ATA_ATI_IXP400, 0x00, 0, 0, ATA_UDMA6, "IXP400" }, + { ATA_ATI_SB600, 0x00, 0, 0, ATA_UDMA6, "SB600 (IDE MODE)" }, + { ATA_ATI_SB700, 0x00, 0, 0, ATA_UDMA6, "SB700 (IDE)" }, + { ATA_ATI_IXP300_S1, 0x00, SIIMEMIO, 0, ATA_SA150, "IXP300" }, + { ATA_ATI_IXP400_S1, 0x00, SIIMEMIO, 0, ATA_SA150, "IXP400" }, + { ATA_ATI_IXP400_S2, 0x00, SIIMEMIO, 0, ATA_SA150, "IXP400" }, + { ATA_ATI_SB600_S1, 0x00, 0, ATIAHCI, ATA_SA300, "SB600 (Non RAID5 SATA)" }, + { ATA_ATI_SB700_S1, 0x00, 0, ATIAHCI, ATA_SA300, "SB700 (IDE MODE)" }, + { ATA_ATI_SB700_S2, 0x00, 0, ATIAHCI, ATA_SA300, "SB700 (IDE MODE)" }, + { ATA_ATI_SB700_AH, 0x00, 0, ATIAHCI, ATA_SA300, "SB700 (AHCI MODE)" }, + { ATA_ATI_SB700_NR, 0x00, 0, ATIAHCI, ATA_SA300, "SB700 (Non RAID5 SATA)" }, + { ATA_ATI_SB800_AH, 0x00, 0, ATIAHCI, ATA_SA300, "SB800 (AHCI MODE)" }, { 0, 0, 0, 0, 0, 0}}; char buffer[64]; @@ -1323,6 +1331,17 @@ ata_ati_chipinit(device_t dev) if (ata_setup_interrupt(dev)) return ENXIO; + if (ctlr->chip->cfg2 & ATIAHCI) { + ctlr->r_rid2 = PCIR_BAR(5); + ctlr->r_type2 = SYS_RES_MEMORY; + ctlr->r_res2 = bus_alloc_resource_any(dev, + ctlr->r_type2, &ctlr->r_rid2, RF_ACTIVE); + if (ctlr->r_res2 != NULL) + return ata_ahci_chipinit(dev); + else + return ENXIO; + } + ctlr->setmode = ata_ati_setmode; return 0; } Index: ata-pci.h =================================================================== RCS file: /home/ncvs/src/sys/dev/ata/ata-pci.h,v retrieving revision 1.81 diff -u -p -r1.81 ata-pci.h --- ata-pci.h 9 Oct 2007 20:15:09 -0000 1.81 +++ ata-pci.h 6 Nov 2007 23:25:00 -0000 @@ -103,6 +103,14 @@ struct ata_connect_task { #define ATA_ATI_IXP300_S1 0x436e1002 #define ATA_ATI_IXP400_S1 0x43791002 #define ATA_ATI_IXP400_S2 0x437a1002 +#define ATA_ATI_SB600_S1 0x43801002 +#define ATA_ATI_SB600 0x438c1002 +#define ATA_ATI_SB700_S1 0x43901002 +#define ATA_ATI_SB700_AH 0x43911002 +#define ATA_ATI_SB700_NR 0x43921002 +#define ATA_ATI_SB700_S2 0x43941002 +#define ATA_ATI_SB800_AH 0x43951002 +#define ATA_ATI_SB700 0x439c1002 #define ATA_CENATEK_ID 0x16ca #define ATA_CENATEK_ROCKET 0x000116ca @@ -436,6 +444,7 @@ struct ata_connect_task { #define VIABUG 0x0200 #define VIABAR 0x0400 #define VIAAHCI 0x0800 +#define ATIAHCI 0x1000 /* global prototypes ata-pci.c */ --------------020302030509000806090307--