Re: patch for review: ATI SB600 SATA AHCI

2008-01-20 Thread Jakub Siroky
Hello,

I've been using these patches for some time with success. Although
slight correction to patches is needed - code placement changed a bit
(in case of line wrapping, see the attachments). 

--- ata-chipset.c.orig  Mon Oct  9 23:01:35 2006
+++ ata-chipset.c   Wed Sep  5 22:08:02 2007
@@ -1239,12 +1239,16 @@
 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_IXP600,0x00, 0,ATISINGLE, ATA_UDMA6,
IXP600 },
+ { ATA_ATI_IXP700,0x00, 0,ATISINGLE, ATA_UDMA6,
IXP700 },
+ { 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_IXP600_S1, 0x00, 0,AHCI,  ATA_SA300,
IXP600 },
+ { ATA_ATI_IXP700_S1, 0x00, 0,AHCI,  ATA_SA300,
IXP700 }, { 0, 0, 0, 0, 0, 0}};
 char buffer[64];
 
@@ -1271,6 +1275,18 @@
 
 if (ata_setup_interrupt(dev))
return ENXIO;
+
+if (ctlr-chip-cfg2  AHCI) {
+   ctlr-r_rid2 = PCIR_BAR(5);
+   ctlr-r_type2 = SYS_RES_MEMORY;
+   if ((ctlr-r_res2 = bus_alloc_resource_any(dev, ctlr-r_type2,
+   ctlr-r_rid2,
+   RF_ACTIVE)))
+  return ata_ahci_chipinit(dev);
+}
+
+if (ctlr-chip-cfg2  ATISINGLE)
+   ctlr-channels = 1;
 
 ctlr-setmode = ata_ati_setmode;
 return 0;

-- ata-pci.h.orig   Sat Sep 30 21:51:49 2006
+++ ata-pci.h   Wed Sep  5 22:00:21 2007
@@ -102,6 +102,10 @@
 #define ATA_ATI_IXP300_S1   0x436e1002
 #define ATA_ATI_IXP400_S1   0x43791002
 #define ATA_ATI_IXP400_S2   0x437a1002
+#define ATA_ATI_IXP600_S1   0x43801002
+#define ATA_ATI_IXP600  0x438c1002
+#define ATA_ATI_IXP700_S1   0x43901002
+#define ATA_ATI_IXP700  0x439c1002
 
 #define ATA_CENATEK_ID  0x16ca
 #define ATA_CENATEK_ROCKET  0x000116ca
@@ -415,6 +419,7 @@
 #define VIABUG  0x0200
 #define VIABAR  0x0400
 #define VIAAHCI 0x0800
+#define ATISINGLE   0x1000


On Sun, 20 Jan 2008 04:13:34 +0100
Volker [EMAIL PROTECTED] wrote:

 Hi!
 
 I've done the following local changes to get the ATA controller being
 correctly detected and initialized as an AHCI controller on an HP
 6715b notebook using ATI SB-600 chipset. With stock kernel, the ATA
 controller is being recognized as a generic ATA controller and devices
 being driven in UDMA-33 mode.
 
 With the following patch, the controller is being initialized in AHCI
 mode and devices being set to SATA-150/300 mode.
 
 atapci0: ATI IXP600 SATA300 controller port
 0x9000-0x9007,0x9008-0x900b,0x9010-0x9017,0x5018-0x501b,0x5020-0x502f
 mem 0xd0609000-0xd06093ff irq 16 at device 18.0 on pci0
 atapci0: Reserved 0x10 bytes for rid 0x20 type 4 at 0x5020
 atapci0: Reserved 0x400 bytes for rid 0x24 type 3 at 0xd0609000
 atapci0: [MPSAFE]
 atapci0: [ITHREAD]
 atapci0: AHCI Version 01.10 controller with 4 ports detected
 
 %atacontrol mode ad4
 current mode = SATA150
 
 
 My patch has been tested on RELENG_7 as of 2008-01-19. Please review,
 check and test if possible. Should work on 8-CURRENT, too.
 
 If nobody complains until tuesday (2008-01-22), I'll file a PR for
 that patch.
 
 Volker
 
 --- sys/dev/ata/ata-chipset.c.orig  2008-01-20 03:22:37.0
 +0100
 +++ sys/dev/ata/ata-chipset.c   2008-01-20 03:30:03.0 +0100
 @@ -1348,6 +1348,7 @@
   { ATA_ATI_IXP400_S1, 0x00, SIIMEMIO, 0, ATA_SA150, IXP400 },
   { ATA_ATI_IXP400_S2, 0x00, SIIMEMIO, 0, ATA_SA150, IXP400 },
   { ATA_ATI_IXP600,0x00, 0,0, ATA_UDMA6, IXP600 },
 + { ATA_ATI_IXP600_S1, 0x00, 0, AHCI, ATA_SA300, IXP600 },
   { ATA_ATI_IXP700,0x00, 0,0, ATA_UDMA6, IXP700 },
   { 0, 0, 0, 0, 0, 0}};
 
 @@ -1360,7 +1361,10 @@
  if (ctlr-chip-cfg1  SIIMEMIO)
 ctlr-chipinit = ata_sii_chipinit;
  else
 -   ctlr-chipinit = ata_ati_chipinit;
 +   if (ctlr-chip-cfg2  AHCI)
 +   ctlr-chipinit = ata_ahci_chipinit;
 +   else
 +   ctlr-chipinit = ata_ati_chipinit;
  return 0;
  }
 
 --- sys/dev/ata/ata-pci.h.orig  2008-01-20 03:22:28.0 +0100
 

Re: Re: patch for review: ATI SB600 SATA AHCI

2008-01-20 Thread Volker
On 12/23/-58 20:59, Jakub Siroky wrote:
 Hello,
 
 I've been using these patches for some time with success. Although
 slight correction to patches is needed - code placement changed a bit
 (in case of line wrapping, see the attachments). 
 
 --- ata-chipset.c.orig  Mon Oct  9 23:01:35 2006
 +++ ata-chipset.c   Wed Sep  5 22:08:02 2007
 @@ -1239,12 +1239,16 @@
  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_IXP600,0x00, 0,ATISINGLE, ATA_UDMA6,
 IXP600 },
 + { ATA_ATI_IXP700,0x00, 0,ATISINGLE, ATA_UDMA6,
 IXP700 },
 + { 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_IXP600_S1, 0x00, 0,AHCI,  ATA_SA300,
 IXP600 },
 + { ATA_ATI_IXP700_S1, 0x00, 0,AHCI,  ATA_SA300,
 IXP700 }, { 0, 0, 0, 0, 0, 0}};
  char buffer[64];
  
 @@ -1271,6 +1275,18 @@
  
  if (ata_setup_interrupt(dev))
 return ENXIO;
 +
 +if (ctlr-chip-cfg2  AHCI) {
 +   ctlr-r_rid2 = PCIR_BAR(5);
 +   ctlr-r_type2 = SYS_RES_MEMORY;
 +   if ((ctlr-r_res2 = bus_alloc_resource_any(dev, ctlr-r_type2,
 +   ctlr-r_rid2,
 +   RF_ACTIVE)))
 +  return ata_ahci_chipinit(dev);
 +}
 +
 +if (ctlr-chip-cfg2  ATISINGLE)
 +   ctlr-channels = 1;
  
  ctlr-setmode = ata_ati_setmode;
  return 0;
 
 -- ata-pci.h.orig   Sat Sep 30 21:51:49 2006
 +++ ata-pci.h   Wed Sep  5 22:00:21 2007
 @@ -102,6 +102,10 @@
  #define ATA_ATI_IXP300_S1   0x436e1002
  #define ATA_ATI_IXP400_S1   0x43791002
  #define ATA_ATI_IXP400_S2   0x437a1002
 +#define ATA_ATI_IXP600_S1   0x43801002
 +#define ATA_ATI_IXP600  0x438c1002
 +#define ATA_ATI_IXP700_S1   0x43901002
 +#define ATA_ATI_IXP700  0x439c1002
  
  #define ATA_CENATEK_ID  0x16ca
  #define ATA_CENATEK_ROCKET  0x000116ca
 @@ -415,6 +419,7 @@
  #define VIABUG  0x0200
  #define VIABAR  0x0400
  #define VIAAHCI 0x0800
 +#define ATISINGLE   0x1000

Jakub,

I think your patch is against old code before the ATA code has been
restructured. I've tried a similar patch (provided by Coleman Kane)
against recent RELENG_7 but applying the patch failed.

That has been the reason for me to write a new patch (at least for the
chipset my notebook is using, as I don't know much about other
chipsets). I've just been unsure whether or not calling ata_ahci_init
is everything what is required for proper chip initialization or not
but from what I was reading out of the current code, other functions
don't do much more.

I may include other chipset changes (from your patch) and send a new
patch if my patch does not miss anything for proper operation. At
least the codes changes work here for me (or I haven't noticed
anything bad). @sos: can you comment on this?

Volker
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: patch for review: ATI SB600 SATA AHCI

2008-01-20 Thread Jakub Siroky
Yes, maybe this is the same patch you've mentioned. In RELENG_7_0 I had
to manually update concerned files - look up the lines and add the
information at proper place. I don't understand the meaning of functions
besides chipset static definitions, but it has been working on
6.2-STABLE and RELENG_7_0 without problems.

On Sun, 20 Jan 2008 17:54:40 +0100
Volker [EMAIL PROTECTED] wrote:

 On 12/23/-58 20:59, Jakub Siroky wrote:
  Hello,
  
  I've been using these patches for some time with success. Although
  slight correction to patches is needed - code placement changed a
  bit (in case of line wrapping, see the attachments). 
  
  --- ata-chipset.c.orig  Mon Oct  9 23:01:35 2006
  +++ ata-chipset.c   Wed Sep  5 22:08:02 2007
  @@ -1239,12 +1239,16 @@
   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_IXP600,0x00, 0,ATISINGLE, ATA_UDMA6,
  IXP600 },
  + { ATA_ATI_IXP700,0x00, 0,ATISINGLE, ATA_UDMA6,
  IXP700 },
  + { 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_IXP600_S1, 0x00, 0,AHCI,  ATA_SA300,
  IXP600 },
  + { ATA_ATI_IXP700_S1, 0x00, 0,AHCI,  ATA_SA300,
  IXP700 }, { 0, 0, 0, 0, 0, 0}};
   char buffer[64];
   
  @@ -1271,6 +1275,18 @@
   
   if (ata_setup_interrupt(dev))
  return ENXIO;
  +
  +if (ctlr-chip-cfg2  AHCI) {
  +   ctlr-r_rid2 = PCIR_BAR(5);
  +   ctlr-r_type2 = SYS_RES_MEMORY;
  +   if ((ctlr-r_res2 = bus_alloc_resource_any(dev,
  ctlr-r_type2,
  +
  ctlr-r_rid2,
  +   RF_ACTIVE)))
  +  return ata_ahci_chipinit(dev);
  +}
  +
  +if (ctlr-chip-cfg2  ATISINGLE)
  +   ctlr-channels = 1;
   
   ctlr-setmode = ata_ati_setmode;
   return 0;
  
  -- ata-pci.h.orig   Sat Sep 30 21:51:49 2006
  +++ ata-pci.h   Wed Sep  5 22:00:21 2007
  @@ -102,6 +102,10 @@
   #define ATA_ATI_IXP300_S1   0x436e1002
   #define ATA_ATI_IXP400_S1   0x43791002
   #define ATA_ATI_IXP400_S2   0x437a1002
  +#define ATA_ATI_IXP600_S1   0x43801002
  +#define ATA_ATI_IXP600  0x438c1002
  +#define ATA_ATI_IXP700_S1   0x43901002
  +#define ATA_ATI_IXP700  0x439c1002
   
   #define ATA_CENATEK_ID  0x16ca
   #define ATA_CENATEK_ROCKET  0x000116ca
  @@ -415,6 +419,7 @@
   #define VIABUG  0x0200
   #define VIABAR  0x0400
   #define VIAAHCI 0x0800
  +#define ATISINGLE   0x1000
 
 Jakub,
 
 I think your patch is against old code before the ATA code has been
 restructured. I've tried a similar patch (provided by Coleman Kane)
 against recent RELENG_7 but applying the patch failed.
 
 That has been the reason for me to write a new patch (at least for the
 chipset my notebook is using, as I don't know much about other
 chipsets). I've just been unsure whether or not calling ata_ahci_init
 is everything what is required for proper chip initialization or not
 but from what I was reading out of the current code, other functions
 don't do much more.
 
 I may include other chipset changes (from your patch) and send a new
 patch if my patch does not miss anything for proper operation. At
 least the codes changes work here for me (or I haven't noticed
 anything bad). @sos: can you comment on this?
 
 Volker
 ___
 freebsd-stable@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/freebsd-stable
 To unsubscribe, send any mail to
 [EMAIL PROTECTED]
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: patch for review: ATI SB600 SATA AHCI

2008-01-20 Thread Jakub Siroky
Just my info:

dmesg| grep ata
atapci0: ATI AHCI controller port
0xff00-0xff07,0xfe00-0xfe03,0xfd00-0xfd07,0xfc00-0xfc03,0xfb00-0xfb0f
mem 0xfe02f000-0xfe02f3ff irq 22 at device 18.0 on pci0 atapci0:
[ITHREAD] atapci0: AHCI Version 01.10 controller with 4 ports detected
ata2: ATA channel 0 on atapci0 ata2: [ITHREAD]
ata3: ATA channel 1 on atapci0
ata3: [ITHREAD]
ata4: ATA channel 2 on atapci0
ata4: [ITHREAD]
ata5: ATA channel 3 on atapci0
ata5: [ITHREAD]
atapci1: ATI IXP600 UDMA133 controller port
0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xf900-0xf90f at device 20.1 on
pci0 ata0: ATA channel 0 on atapci1 ata0: [ITHREAD]
acd0: DVDR LITE-ON DVDRW LH-18A1H/HL03 at ata0-master UDMA33
acd1: DVDROM TOSHIBA DVD-ROM SDM2012C/TU01 at ata0-slave UDMA33
ad4: 381553MB WDC WD4000YS-01MPB1 09.02E09 at ata2-master SATA300
ad8: 476940MB WDC WD5000YS-01MPB1 09.02E09 at ata4-master SATA300

atacontrol mode ad4:
current mode = SATA300

uname -a:
FreeBSD dev.citybikes.cz 7.0-RC1 FreeBSD 7.0-RC1 #4: Sun Jan 20
01:33:16 CET 2008
[EMAIL PROTECTED]:/usr/build/obj/usr/build/src_releng_7_0/sys/TWINSF
amd64

lshal:
system.product = 'GA-MA69G-S3H'
system.vendor = 'Gigabyte Technology Co., Ltd.'



On Sun, 20 Jan 2008 21:27:32 +0100
Torfinn Ingolfsen [EMAIL PROTECTED] wrote:

 Hello,
 
 On Sun, 20 Jan 2008 04:13:34 +0100
 Volker [EMAIL PROTECTED] wrote:
 
  6715b notebook using ATI SB-600 chipset. With stock kernel, the ATA
 
 I have a machine with an Asus M2A-VM HDMI motherboard[1], which also
 have this chipset.
 
  My patch has been tested on RELENG_7 as of 2008-01-19. Please
  review, check and test if possible. Should work on 8-CURRENT, too.
 
 I had to hand apply part of the patch (probably a whitespace problem
 when I copied it from the mail), but it built fine.
 
 From dmesg, before the patch:
 atapci0: ATI ATA controller port
 0xfc00-0xfc07,0xf800-0xf803,0xf400-0xf407,0xf000-0xf003,0xec00-0xec0f
 mem 0xfe02f000-0xfe02f3ff irq 22 at device 18.0 on pci0 atapci0:
 [ITHREAD] ata2: ATA channel 0 on atapci0 ata2: [ITHREAD]
 ata3: ATA channel 1 on atapci0
 ata3: [ITHREAD]
 atapci1: ATI IXP600 UDMA133 controller port
 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xe400-0xe40f at device 20.1 on
 pci0 ata0: ATA channel 0 on atapci1 ata0: [ITHREAD]
 acd0: DVDR Optiarc DVD RW AD-5170A/1.12 at ata0-master UDMA66
 ad4: 476940MB SAMSUNG HD501LJ CR100-12 at ata2-master UDMA33
 
 From dmesg, after the patch:
 tapci0: ATI IXP600 SATA300 controller port
 0xfc00-0xfc07,0xf800-0xf803,0xf400-0xf407,0xf000-0xf003,0xec00-0xec0f
 mem 0xfe02f000-0xfe02f3ff irq 22 at device 18.0 on pci0 atapci0:
 [ITHREAD] atapci0: AHCI Version 01.10 controller with 4 ports
 detected ata2: ATA channel 0 on atapci0 ata2: [ITHREAD]
 ata3: ATA channel 1 on atapci0
 ata3: [ITHREAD]
 ata4: ATA channel 2 on atapci0
 ata4: [ITHREAD]
 ata5: ATA channel 3 on atapci0
 ata5: [ITHREAD]
 atapci1: ATI IXP600 UDMA133 controller port
 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xe400-0xe40f at device 20.1 on
 pci0 ata0: ATA channel 0 on atapci1 ata0: [ITHREAD]
 acd0: DVDR Optiarc DVD RW AD-5170A/1.12 at ata0-master UDMA66
 ad4: 476940MB SAMSUNG HD501LJ CR100-12 at ata2-master SATA300
 
 I haven't done any tests to see if it changes performance in any way,
 at least it reports SATA 300: [EMAIL PROTECTED] atacontrol mode ad4
 current mode = SATA300
 
 This is on:
 [EMAIL PROTECTED] uname -a
 FreeBSD kg-vm.kg4.no 7.0-PRERELEASE FreeBSD 7.0-PRERELEASE #4: Sun
 Jan 20 19:27:36 CET 2008
 [EMAIL PROTECTED]:/usr/obj/usr/src/sys/GENERIC  amd64
 
 
 References:
 1) info about my machine
 http://tingox.googlepages.com/asus_m2a-vm_hdmi
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: patch for review: ATI SB600 SATA AHCI

2008-01-20 Thread Torfinn Ingolfsen
Hello,

On Sun, 20 Jan 2008 04:13:34 +0100
Volker [EMAIL PROTECTED] wrote:

 6715b notebook using ATI SB-600 chipset. With stock kernel, the ATA

I have a machine with an Asus M2A-VM HDMI motherboard[1], which also
have this chipset.

 My patch has been tested on RELENG_7 as of 2008-01-19. Please review,
 check and test if possible. Should work on 8-CURRENT, too.

I had to hand apply part of the patch (probably a whitespace problem
when I copied it from the mail), but it built fine.

From dmesg, before the patch:
atapci0: ATI ATA controller port 
0xfc00-0xfc07,0xf800-0xf803,0xf400-0xf407,0xf000-0xf003,0xec00-0xec0f mem 
0xfe02f000-0xfe02f3ff irq 22 at device 18.0 on pci0
atapci0: [ITHREAD]
ata2: ATA channel 0 on atapci0
ata2: [ITHREAD]
ata3: ATA channel 1 on atapci0
ata3: [ITHREAD]
atapci1: ATI IXP600 UDMA133 controller port 
0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xe400-0xe40f at device 20.1 on pci0
ata0: ATA channel 0 on atapci1
ata0: [ITHREAD]
acd0: DVDR Optiarc DVD RW AD-5170A/1.12 at ata0-master UDMA66
ad4: 476940MB SAMSUNG HD501LJ CR100-12 at ata2-master UDMA33

From dmesg, after the patch:
tapci0: ATI IXP600 SATA300 controller port 
0xfc00-0xfc07,0xf800-0xf803,0xf400-0xf407,0xf000-0xf003,0xec00-0xec0f mem 
0xfe02f000-0xfe02f3ff irq 22 at device 18.0 on pci0
atapci0: [ITHREAD]
atapci0: AHCI Version 01.10 controller with 4 ports detected
ata2: ATA channel 0 on atapci0
ata2: [ITHREAD]
ata3: ATA channel 1 on atapci0
ata3: [ITHREAD]
ata4: ATA channel 2 on atapci0
ata4: [ITHREAD]
ata5: ATA channel 3 on atapci0
ata5: [ITHREAD]
atapci1: ATI IXP600 UDMA133 controller port 
0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xe400-0xe40f at device 20.1 on pci0
ata0: ATA channel 0 on atapci1
ata0: [ITHREAD]
acd0: DVDR Optiarc DVD RW AD-5170A/1.12 at ata0-master UDMA66
ad4: 476940MB SAMSUNG HD501LJ CR100-12 at ata2-master SATA300

I haven't done any tests to see if it changes performance in any way, at least 
it reports SATA 300:
[EMAIL PROTECTED] atacontrol mode ad4
current mode = SATA300

This is on:
[EMAIL PROTECTED] uname -a
FreeBSD kg-vm.kg4.no 7.0-PRERELEASE FreeBSD 7.0-PRERELEASE #4: Sun Jan 20 
19:27:36 CET 2008 [EMAIL PROTECTED]:/usr/obj/usr/src/sys/GENERIC  amd64


References:
1) info about my machine http://tingox.googlepages.com/asus_m2a-vm_hdmi
-- 
Regards,
Torfinn Ingolfsen

___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: patch for review: ATI SB600 SATA AHCI

2008-01-20 Thread Andrey V. Elsukov

Volker wrote:

If nobody complains until tuesday (2008-01-22), I'll file a PR for
that patch.


Hi,

there was several PR's and patches for ATI.
http://lists.freebsd.org/pipermail/freebsd-current/2008-January/081982.html
http://lists.freebsd.org/pipermail/freebsd-current/2007-November/079466.html
http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/113195
http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/118193
http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/116125

I think Soren and Xin are busy and don't have time for do it.

--
WBR, Andrey V. Elsukov
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to [EMAIL PROTECTED]


patch for review: ATI SB600 SATA AHCI

2008-01-19 Thread Volker
Hi!

I've done the following local changes to get the ATA controller being
correctly detected and initialized as an AHCI controller on an HP
6715b notebook using ATI SB-600 chipset. With stock kernel, the ATA
controller is being recognized as a generic ATA controller and devices
being driven in UDMA-33 mode.

With the following patch, the controller is being initialized in AHCI
mode and devices being set to SATA-150/300 mode.

atapci0: ATI IXP600 SATA300 controller port
0x9000-0x9007,0x9008-0x900b,0x9010-0x9017,0x5018-0x501b,0x5020-0x502f
mem 0xd0609000-0xd06093ff irq 16 at device 18.0 on pci0
atapci0: Reserved 0x10 bytes for rid 0x20 type 4 at 0x5020
atapci0: Reserved 0x400 bytes for rid 0x24 type 3 at 0xd0609000
atapci0: [MPSAFE]
atapci0: [ITHREAD]
atapci0: AHCI Version 01.10 controller with 4 ports detected

%atacontrol mode ad4
current mode = SATA150


My patch has been tested on RELENG_7 as of 2008-01-19. Please review,
check and test if possible. Should work on 8-CURRENT, too.

If nobody complains until tuesday (2008-01-22), I'll file a PR for
that patch.

Volker

--- sys/dev/ata/ata-chipset.c.orig  2008-01-20 03:22:37.0
+0100
+++ sys/dev/ata/ata-chipset.c   2008-01-20 03:30:03.0 +0100
@@ -1348,6 +1348,7 @@
  { ATA_ATI_IXP400_S1, 0x00, SIIMEMIO, 0, ATA_SA150, IXP400 },
  { ATA_ATI_IXP400_S2, 0x00, SIIMEMIO, 0, ATA_SA150, IXP400 },
  { ATA_ATI_IXP600,0x00, 0,0, ATA_UDMA6, IXP600 },
+ { ATA_ATI_IXP600_S1, 0x00, 0, AHCI, ATA_SA300, IXP600 },
  { ATA_ATI_IXP700,0x00, 0,0, ATA_UDMA6, IXP700 },
  { 0, 0, 0, 0, 0, 0}};

@@ -1360,7 +1361,10 @@
 if (ctlr-chip-cfg1  SIIMEMIO)
ctlr-chipinit = ata_sii_chipinit;
 else
-   ctlr-chipinit = ata_ati_chipinit;
+   if (ctlr-chip-cfg2  AHCI)
+   ctlr-chipinit = ata_ahci_chipinit;
+   else
+   ctlr-chipinit = ata_ati_chipinit;
 return 0;
 }

--- sys/dev/ata/ata-pci.h.orig  2008-01-20 03:22:28.0 +0100
+++ sys/dev/ata/ata-pci.h   2008-01-20 03:23:56.0 +0100
@@ -104,6 +104,7 @@
 #define ATA_ATI_IXP400_S1   0x43791002
 #define ATA_ATI_IXP400_S2   0x437a1002
 #define ATA_ATI_IXP600  0x438c1002
+#define ATA_ATI_IXP600_S1   0x43801002
 #define ATA_ATI_IXP700  0x439c1002

 #define ATA_CENATEK_ID  0x16ca
___
freebsd-stable@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-stable
To unsubscribe, send any mail to [EMAIL PROTECTED]