diff -ruN v45a3\driver\atapi.h v45a7\driver\atapi.h
--- v45a3\driver\atapi.h	Wed Mar 20 06:44:36 2013
+++ v45a7\driver\atapi.h	Tue Aug 12 01:13:18 2014
@@ -938,6 +938,7 @@
             USHORT v30:1;
             USHORT Reserved:10;
         } SATA;
+        USHORT Flags;
     } TransportMajor;
     USHORT TransportMinor;                   //     223
 
diff -ruN v45a3\driver\bm_devs.h v45a7\driver\bm_devs.h
--- v45a3\driver\bm_devs.h	Tue Mar 11 10:40:30 2014
+++ v45a7\driver\bm_devs.h	Tue Aug 12 00:59:48 2014
@@ -319,12 +319,13 @@
 #define ATA_M88SX6042           0x604211ab
 #define ATA_M88SX6081           0x608111ab
 #define ATA_M88SX7042           0x704211ab
-#define ATA_M88SX6101           0x610111ab
-#define ATA_M88SX6102           0x610211ab
-#define ATA_M88SX6111           0x611111ab
-#define ATA_M88SX6121           0x612111ab
-#define ATA_M88SX6141           0x614111ab
-#define ATA_M88SX6145           0x614511ab
+#define ATA_M88SE6101           0x610111ab
+#define ATA_M88SE6102           0x610211ab
+#define ATA_M88SE6111           0x611111ab
+#define ATA_M88SE6121           0x612111ab
+#define ATA_M88SE6141           0x614111ab
+#define ATA_M88SE6145           0x614511ab
+#define ATA_M88SE9123           0x91231b4b
 #define ATA_MARVELL2_ID         0x1b4b
 
 #define ATA_MICRON_ID           0x1042
@@ -934,6 +935,7 @@
     PCI_DEV_HW_SPEC_BM( 6121, 11ab, 0x00, ATA_UDMA6, "Marvell 88SX6121" , UNIATA_SATA | UNIATA_AHCI       ),
     PCI_DEV_HW_SPEC_BM( 6141, 11ab, 0x00, ATA_UDMA6, "Marvell 88SX6141" , UNIATA_SATA | UNIATA_AHCI       ),
     PCI_DEV_HW_SPEC_BM( 6145, 11ab, 0x00, ATA_UDMA6, "Marvell 88SX6145" , UNIATA_SATA | UNIATA_AHCI       ),
+    PCI_DEV_HW_SPEC_BM( 9123, 1b4b, 0x00, ATA_UDMA6, "Marvell 88SX9123" , UNIATA_SATA | UNIATA_AHCI       ),
 /*    PCI_DEV_HW_SPEC_BM( 91a4, 1b4b, 0x00, ATA_UDMA6, "Marvell 88SE912x" , 0                                       ),*/
 
     PCI_DEV_HW_SPEC_BM( 01bc, 10de, 0x00, ATA_UDMA5, "nVidia nForce"    , 0                               ),
@@ -1139,6 +1141,7 @@
 */
     PCI_DEV_HW_SPEC_BM( 5513, 1039, 0xc2, ATA_UDMA2, "SiS ATA-xxx"      , 0                                       ),
     PCI_DEV_HW_SPEC_BM( 5513, 1039, 0x00, ATA_WDMA2, "SiS ATA-xxx"      , 0                                       ),
+    PCI_DEV_HW_SPEC_BM( 5518, 1039, 0x00, ATA_UDMA6, "SiS 962/3"        , SIS133NEW | SIS_BASE                            ),
     PCI_DEV_HW_SPEC_BM( 0601, 1039, 0x00, ATA_WDMA2, "SiS ATA-xxx"      , 0                                       ),
 
     PCI_DEV_HW_SPEC_BM( 1183, 1039, 0x00, ATA_SA150, "SiS 1183 SATA" , SISSATA),
diff -ruN v45a3\driver\Dist\2K\uata_2k.inf v45a7\driver\Dist\2K\uata_2k.inf
--- v45a3\driver\Dist\2K\uata_2k.inf	Tue Mar 11 12:25:28 2014
+++ v45a7\driver\Dist\2K\uata_2k.inf	Tue Aug 12 01:32:14 2014
@@ -6,7 +6,7 @@
 ClassGUID={4D36E97B-E325-11CE-BFC1-08002BE10318}
 Class=SCSIAdapter
 CatalogFile=uniata.cat
-DriverVer=03/11/2014,0.45.1.3
+DriverVer=08/12/2014,0.45.1.7
 
 ;
 ; Source file information
@@ -228,6 +228,7 @@
 %PCI\VEN_11ab&DEV_6121.DeviceDesc%=uniata_Inst, PCI\VEN_11ab&DEV_6121
 %PCI\VEN_11ab&DEV_6141.DeviceDesc%=uniata_Inst, PCI\VEN_11ab&DEV_6141
 %PCI\VEN_11ab&DEV_6145.DeviceDesc%=uniata_Inst, PCI\VEN_11ab&DEV_6145
+%PCI\VEN_1b4b&DEV_9123.DeviceDesc%=uniata_Inst, PCI\VEN_1b4b&DEV_9123
 %PCI\VEN_10de&DEV_01bc.DeviceDesc%=uniata_Inst, PCI\VEN_10de&DEV_01bc
 %PCI\VEN_10de&DEV_0065.DeviceDesc%=uniata_Inst, PCI\VEN_10de&DEV_0065
 %PCI\VEN_10de&DEV_0085.DeviceDesc%=uniata_Inst, PCI\VEN_10de&DEV_0085
@@ -386,6 +387,7 @@
 %PCI\VEN_1095&DEV_0640.DeviceDesc%=uniata_Inst, PCI\VEN_1095&DEV_0640
 %PCI\VEN_1039&DEV_5513&REV_c2.DeviceDesc%=uniata_Inst, PCI\VEN_1039&DEV_5513&REV_c2
 %PCI\VEN_1039&DEV_5513.DeviceDesc%=uniata_Inst, PCI\VEN_1039&DEV_5513
+%PCI\VEN_1039&DEV_5518.DeviceDesc%=uniata_Inst, PCI\VEN_1039&DEV_5518
 %PCI\VEN_1039&DEV_0601.DeviceDesc%=uniata_Inst, PCI\VEN_1039&DEV_0601
 %PCI\VEN_1039&DEV_1183.DeviceDesc%=uniata_Inst, PCI\VEN_1039&DEV_1183
 %PCI\VEN_1039&DEV_1182.DeviceDesc%=uniata_Inst, PCI\VEN_1039&DEV_1182
@@ -666,6 +668,7 @@
 PCI\VEN_11ab&DEV_6121.DeviceDesc="Marvell 88SX6121 ATA-133 controller (SCSI)"
 PCI\VEN_11ab&DEV_6141.DeviceDesc="Marvell 88SX6141 ATA-133 controller (SCSI)"
 PCI\VEN_11ab&DEV_6145.DeviceDesc="Marvell 88SX6145 ATA-133 controller (SCSI)"
+PCI\VEN_1b4b&DEV_9123.DeviceDesc="Marvell 88SX9123 ATA-133 controller (SCSI)"
 PCI\VEN_10de&DEV_01bc.DeviceDesc="nVidia nForce ATA-100 controller (SCSI)"
 PCI\VEN_10de&DEV_0065.DeviceDesc="nVidia nForce2 ATA-133 controller (SCSI)"
 PCI\VEN_10de&DEV_0085.DeviceDesc="nVidia nForce2 Pro ATA-133 controller (SCSI)"
@@ -824,6 +827,7 @@
 PCI\VEN_1095&DEV_0640.DeviceDesc="CMD 640 IDE controller (SCSI)"
 PCI\VEN_1039&DEV_5513&REV_c2.DeviceDesc="SiS ATA-xxx  controller (SCSI)"
 PCI\VEN_1039&DEV_5513.DeviceDesc="SiS ATA-xxx  controller (SCSI)"
+PCI\VEN_1039&DEV_5518.DeviceDesc="SiS 962/3  controller (SCSI)"
 PCI\VEN_1039&DEV_0601.DeviceDesc="SiS ATA-xxx  controller (SCSI)"
 PCI\VEN_1039&DEV_1183.DeviceDesc="SiS 1183 SATA  controller (SCSI)"
 PCI\VEN_1039&DEV_1182.DeviceDesc="SiS 1182  controller (SCSI)"
diff -ruN v45a3\driver\Dist\2K\uata_2kh.inf v45a7\driver\Dist\2K\uata_2kh.inf
--- v45a3\driver\Dist\2K\uata_2kh.inf	Tue Mar 11 12:25:28 2014
+++ v45a7\driver\Dist\2K\uata_2kh.inf	Tue Aug 12 01:32:14 2014
@@ -6,7 +6,7 @@
 ClassGUID={4D36E97B-E325-11CE-BFC1-08002BE10318}
 Class=hdc
 CatalogFile=uniata.cat
-DriverVer=03/11/2014,0.45.1.3
+DriverVer=08/12/2014,0.45.1.7
 
 ;
 ; Source file information
@@ -228,6 +228,7 @@
 %PCI\VEN_11ab&DEV_6121.DeviceDesc%=uniata_Inst, PCI\VEN_11ab&DEV_6121
 %PCI\VEN_11ab&DEV_6141.DeviceDesc%=uniata_Inst, PCI\VEN_11ab&DEV_6141
 %PCI\VEN_11ab&DEV_6145.DeviceDesc%=uniata_Inst, PCI\VEN_11ab&DEV_6145
+%PCI\VEN_1b4b&DEV_9123.DeviceDesc%=uniata_Inst, PCI\VEN_1b4b&DEV_9123
 %PCI\VEN_10de&DEV_01bc.DeviceDesc%=uniata_Inst, PCI\VEN_10de&DEV_01bc
 %PCI\VEN_10de&DEV_0065.DeviceDesc%=uniata_Inst, PCI\VEN_10de&DEV_0065
 %PCI\VEN_10de&DEV_0085.DeviceDesc%=uniata_Inst, PCI\VEN_10de&DEV_0085
@@ -386,6 +387,7 @@
 %PCI\VEN_1095&DEV_0640.DeviceDesc%=uniata_Inst, PCI\VEN_1095&DEV_0640
 %PCI\VEN_1039&DEV_5513&REV_c2.DeviceDesc%=uniata_Inst, PCI\VEN_1039&DEV_5513&REV_c2
 %PCI\VEN_1039&DEV_5513.DeviceDesc%=uniata_Inst, PCI\VEN_1039&DEV_5513
+%PCI\VEN_1039&DEV_5518.DeviceDesc%=uniata_Inst, PCI\VEN_1039&DEV_5518
 %PCI\VEN_1039&DEV_0601.DeviceDesc%=uniata_Inst, PCI\VEN_1039&DEV_0601
 %PCI\VEN_1039&DEV_1183.DeviceDesc%=uniata_Inst, PCI\VEN_1039&DEV_1183
 %PCI\VEN_1039&DEV_1182.DeviceDesc%=uniata_Inst, PCI\VEN_1039&DEV_1182
@@ -666,6 +668,7 @@
 PCI\VEN_11ab&DEV_6121.DeviceDesc="Marvell 88SX6121 ATA-133 controller"
 PCI\VEN_11ab&DEV_6141.DeviceDesc="Marvell 88SX6141 ATA-133 controller"
 PCI\VEN_11ab&DEV_6145.DeviceDesc="Marvell 88SX6145 ATA-133 controller"
+PCI\VEN_1b4b&DEV_9123.DeviceDesc="Marvell 88SX9123 ATA-133 controller"
 PCI\VEN_10de&DEV_01bc.DeviceDesc="nVidia nForce ATA-100 controller"
 PCI\VEN_10de&DEV_0065.DeviceDesc="nVidia nForce2 ATA-133 controller"
 PCI\VEN_10de&DEV_0085.DeviceDesc="nVidia nForce2 Pro ATA-133 controller"
@@ -824,6 +827,7 @@
 PCI\VEN_1095&DEV_0640.DeviceDesc="CMD 640 IDE controller"
 PCI\VEN_1039&DEV_5513&REV_c2.DeviceDesc="SiS ATA-xxx  controller"
 PCI\VEN_1039&DEV_5513.DeviceDesc="SiS ATA-xxx  controller"
+PCI\VEN_1039&DEV_5518.DeviceDesc="SiS 962/3  controller"
 PCI\VEN_1039&DEV_0601.DeviceDesc="SiS ATA-xxx  controller"
 PCI\VEN_1039&DEV_1183.DeviceDesc="SiS 1183 SATA  controller"
 PCI\VEN_1039&DEV_1182.DeviceDesc="SiS 1182  controller"
diff -ruN v45a3\driver\Dist\2K\uniata_w2k.reg v45a7\driver\Dist\2K\uniata_w2k.reg
--- v45a3\driver\Dist\2K\uniata_w2k.reg	Tue Mar 11 12:25:28 2014
+++ v45a7\driver\Dist\2K\uniata_w2k.reg	Tue Aug 12 01:32:14 2014
@@ -6,7 +6,7 @@
 "Start"=dword:00000000
 "Tag"=dword:00000019
 "Type"=dword:00000001
-"DisplayName"="Universal BusMaster SATA/ATA/ATAPI Driver v0.45.1.3"
+"DisplayName"="Universal BusMaster SATA/ATA/ATAPI Driver v0.45.1.7"
 "ImagePath"=hex(2):53,79,73,74,65,6d,33,32,5c,44,52,49,56,45,52,53,5c,75,6e,69,\
   61,74,61,2e,73,79,73,00
 
diff -ruN v45a3\driver\Dist\NT4\uata_nt4.inf v45a7\driver\Dist\NT4\uata_nt4.inf
--- v45a3\driver\Dist\NT4\uata_nt4.inf	Tue Mar 11 12:25:28 2014
+++ v45a7\driver\Dist\NT4\uata_nt4.inf	Tue Aug 12 01:32:14 2014
@@ -6,7 +6,7 @@
 ClassGUID={4D36E97B-E325-11CE-BFC1-08002BE10318}
 Class=SCSIAdapter
 CatalogFile=uniata.cat
-DriverVer=03/11/2014,0.45.1.3
+DriverVer=08/12/2014,0.45.1.7
 
 ;
 ; Source file information
Binary files v45a3\driver\Dist\tools\build_inf.exe and v45a7\driver\Dist\tools\build_inf.exe differ
diff -ruN v45a3\driver\Dist\XP\uata_xp.inf v45a7\driver\Dist\XP\uata_xp.inf
--- v45a3\driver\Dist\XP\uata_xp.inf	Tue Mar 11 12:25:28 2014
+++ v45a7\driver\Dist\XP\uata_xp.inf	Tue Aug 12 01:32:14 2014
@@ -6,7 +6,7 @@
 ClassGUID={4D36E97B-E325-11CE-BFC1-08002BE10318}
 Class=SCSIAdapter
 CatalogFile=uniata.cat
-DriverVer=03/11/2014,0.45.1.3
+DriverVer=08/12/2014,0.45.1.7
 
 ;
 ; Source file information
@@ -220,6 +220,7 @@
 %PCI\VEN_11ab&DEV_6121.DeviceDesc%=uniata_Inst, PCI\VEN_11ab&DEV_6121
 %PCI\VEN_11ab&DEV_6141.DeviceDesc%=uniata_Inst, PCI\VEN_11ab&DEV_6141
 %PCI\VEN_11ab&DEV_6145.DeviceDesc%=uniata_Inst, PCI\VEN_11ab&DEV_6145
+%PCI\VEN_1b4b&DEV_9123.DeviceDesc%=uniata_Inst, PCI\VEN_1b4b&DEV_9123
 %PCI\VEN_10de&DEV_01bc.DeviceDesc%=uniata_Inst, PCI\VEN_10de&DEV_01bc
 %PCI\VEN_10de&DEV_0065.DeviceDesc%=uniata_Inst, PCI\VEN_10de&DEV_0065
 %PCI\VEN_10de&DEV_0085.DeviceDesc%=uniata_Inst, PCI\VEN_10de&DEV_0085
@@ -378,6 +379,7 @@
 %PCI\VEN_1095&DEV_0640.DeviceDesc%=uniata_Inst, PCI\VEN_1095&DEV_0640
 %PCI\VEN_1039&DEV_5513&REV_c2.DeviceDesc%=uniata_Inst, PCI\VEN_1039&DEV_5513&REV_c2
 %PCI\VEN_1039&DEV_5513.DeviceDesc%=uniata_Inst, PCI\VEN_1039&DEV_5513
+%PCI\VEN_1039&DEV_5518.DeviceDesc%=uniata_Inst, PCI\VEN_1039&DEV_5518
 %PCI\VEN_1039&DEV_0601.DeviceDesc%=uniata_Inst, PCI\VEN_1039&DEV_0601
 %PCI\VEN_1039&DEV_1183.DeviceDesc%=uniata_Inst, PCI\VEN_1039&DEV_1183
 %PCI\VEN_1039&DEV_1182.DeviceDesc%=uniata_Inst, PCI\VEN_1039&DEV_1182
@@ -666,6 +668,7 @@
 PCI\VEN_11ab&DEV_6121.DeviceDesc="Marvell 88SX6121 ATA-133 controller (SCSI)"
 PCI\VEN_11ab&DEV_6141.DeviceDesc="Marvell 88SX6141 ATA-133 controller (SCSI)"
 PCI\VEN_11ab&DEV_6145.DeviceDesc="Marvell 88SX6145 ATA-133 controller (SCSI)"
+PCI\VEN_1b4b&DEV_9123.DeviceDesc="Marvell 88SX9123 ATA-133 controller (SCSI)"
 PCI\VEN_10de&DEV_01bc.DeviceDesc="nVidia nForce ATA-100 controller (SCSI)"
 PCI\VEN_10de&DEV_0065.DeviceDesc="nVidia nForce2 ATA-133 controller (SCSI)"
 PCI\VEN_10de&DEV_0085.DeviceDesc="nVidia nForce2 Pro ATA-133 controller (SCSI)"
@@ -824,6 +827,7 @@
 PCI\VEN_1095&DEV_0640.DeviceDesc="CMD 640 IDE controller (SCSI)"
 PCI\VEN_1039&DEV_5513&REV_c2.DeviceDesc="SiS ATA-xxx  controller (SCSI)"
 PCI\VEN_1039&DEV_5513.DeviceDesc="SiS ATA-xxx  controller (SCSI)"
+PCI\VEN_1039&DEV_5518.DeviceDesc="SiS 962/3  controller (SCSI)"
 PCI\VEN_1039&DEV_0601.DeviceDesc="SiS ATA-xxx  controller (SCSI)"
 PCI\VEN_1039&DEV_1183.DeviceDesc="SiS 1183 SATA  controller (SCSI)"
 PCI\VEN_1039&DEV_1182.DeviceDesc="SiS 1182  controller (SCSI)"
diff -ruN v45a3\driver\Dist\XP\uata_xph.inf v45a7\driver\Dist\XP\uata_xph.inf
--- v45a3\driver\Dist\XP\uata_xph.inf	Tue Mar 11 12:25:28 2014
+++ v45a7\driver\Dist\XP\uata_xph.inf	Tue Aug 12 01:32:14 2014
@@ -6,7 +6,7 @@
 ClassGUID={4D36E97B-E325-11CE-BFC1-08002BE10318}
 Class=hdc
 CatalogFile=uniata.cat
-DriverVer=03/11/2014,0.45.1.3
+DriverVer=08/12/2014,0.45.1.7
 
 ;
 ; Source file information
@@ -220,6 +220,7 @@
 %PCI\VEN_11ab&DEV_6121.DeviceDesc%=uniata_Inst, PCI\VEN_11ab&DEV_6121
 %PCI\VEN_11ab&DEV_6141.DeviceDesc%=uniata_Inst, PCI\VEN_11ab&DEV_6141
 %PCI\VEN_11ab&DEV_6145.DeviceDesc%=uniata_Inst, PCI\VEN_11ab&DEV_6145
+%PCI\VEN_1b4b&DEV_9123.DeviceDesc%=uniata_Inst, PCI\VEN_1b4b&DEV_9123
 %PCI\VEN_10de&DEV_01bc.DeviceDesc%=uniata_Inst, PCI\VEN_10de&DEV_01bc
 %PCI\VEN_10de&DEV_0065.DeviceDesc%=uniata_Inst, PCI\VEN_10de&DEV_0065
 %PCI\VEN_10de&DEV_0085.DeviceDesc%=uniata_Inst, PCI\VEN_10de&DEV_0085
@@ -378,6 +379,7 @@
 %PCI\VEN_1095&DEV_0640.DeviceDesc%=uniata_Inst, PCI\VEN_1095&DEV_0640
 %PCI\VEN_1039&DEV_5513&REV_c2.DeviceDesc%=uniata_Inst, PCI\VEN_1039&DEV_5513&REV_c2
 %PCI\VEN_1039&DEV_5513.DeviceDesc%=uniata_Inst, PCI\VEN_1039&DEV_5513
+%PCI\VEN_1039&DEV_5518.DeviceDesc%=uniata_Inst, PCI\VEN_1039&DEV_5518
 %PCI\VEN_1039&DEV_0601.DeviceDesc%=uniata_Inst, PCI\VEN_1039&DEV_0601
 %PCI\VEN_1039&DEV_1183.DeviceDesc%=uniata_Inst, PCI\VEN_1039&DEV_1183
 %PCI\VEN_1039&DEV_1182.DeviceDesc%=uniata_Inst, PCI\VEN_1039&DEV_1182
@@ -666,6 +668,7 @@
 PCI\VEN_11ab&DEV_6121.DeviceDesc="Marvell 88SX6121 ATA-133 controller"
 PCI\VEN_11ab&DEV_6141.DeviceDesc="Marvell 88SX6141 ATA-133 controller"
 PCI\VEN_11ab&DEV_6145.DeviceDesc="Marvell 88SX6145 ATA-133 controller"
+PCI\VEN_1b4b&DEV_9123.DeviceDesc="Marvell 88SX9123 ATA-133 controller"
 PCI\VEN_10de&DEV_01bc.DeviceDesc="nVidia nForce ATA-100 controller"
 PCI\VEN_10de&DEV_0065.DeviceDesc="nVidia nForce2 ATA-133 controller"
 PCI\VEN_10de&DEV_0085.DeviceDesc="nVidia nForce2 Pro ATA-133 controller"
@@ -824,6 +827,7 @@
 PCI\VEN_1095&DEV_0640.DeviceDesc="CMD 640 IDE controller"
 PCI\VEN_1039&DEV_5513&REV_c2.DeviceDesc="SiS ATA-xxx  controller"
 PCI\VEN_1039&DEV_5513.DeviceDesc="SiS ATA-xxx  controller"
+PCI\VEN_1039&DEV_5518.DeviceDesc="SiS 962/3  controller"
 PCI\VEN_1039&DEV_0601.DeviceDesc="SiS ATA-xxx  controller"
 PCI\VEN_1039&DEV_1183.DeviceDesc="SiS 1183 SATA  controller"
 PCI\VEN_1039&DEV_1182.DeviceDesc="SiS 1182  controller"
diff -ruN v45a3\driver\id_ata.cpp v45a7\driver\id_ata.cpp
--- v45a3\driver\id_ata.cpp	Sun Mar 09 21:40:36 2014
+++ v45a7\driver\id_ata.cpp	Tue Aug 12 01:13:20 2014
@@ -1677,6 +1677,25 @@
         ULONGLONG NativeNumOfSectors=0;
         ULONGLONG cylinders=0;
         ULONGLONG tmp_cylinders=0;
+
+        KdPrint2((PRINT_PREFIX "PhysLogSectorSize %#x, %#x, offset %#x\n", 
+                deviceExtension->FullIdentifyData.PhysLogSectorSize,
+                deviceExtension->FullIdentifyData.LargeSectorSize,
+                deviceExtension->FullIdentifyData.LogicalSectorOffset
+                ));
+
+        KdPrint2((PRINT_PREFIX "NV PM_Sup %d, PM_En %d, En %d, PM ver %#x ver %#x\n", 
+                deviceExtension->FullIdentifyData.NVCache_PM_Supported,
+                deviceExtension->FullIdentifyData.NVCache_PM_Enabled,
+                deviceExtension->FullIdentifyData.NVCache_Enabled,
+                deviceExtension->FullIdentifyData.NVCache_PM_Version,
+                deviceExtension->FullIdentifyData.NVCache_Version
+                ));
+
+        KdPrint2((PRINT_PREFIX "R-rate %#x\n",
+                deviceExtension->FullIdentifyData.NominalMediaRotationRate
+                ));
+
         // Read very-old-style drive geometry
         KdPrint2((PRINT_PREFIX "CHS %#x:%#x:%#x\n", 
                 deviceExtension->FullIdentifyData.NumberOfCylinders,
@@ -5181,6 +5200,7 @@
 
         } else {
 
+            KdPrint2((PRINT_PREFIX "AtapiInterrupt: !DRQ, !BUSY, WordsLeft %#x\n", AtaReq->WordsLeft));
             if (AtaReq->WordsLeft) {
 
                 // Funky behaviour seen with PCI IDE (not all, just one).
@@ -5568,7 +5588,7 @@
     } else if (interruptReason == (ATAPI_IR_IO_toHost | ATAPI_IR_COD_Cmd) && !(statusByte & IDE_STATUS_DRQ)) {
 
         KdPrint2((PRINT_PREFIX "AtapiInterrupt: interruptReason = CompleteRequest\n"));
-        // Command complete. We exactly know this because os IReason.
+        // Command complete. We exactly know this because of IReason.
 
         if(DmaTransfer) {
             KdPrint2((PRINT_PREFIX "AtapiInterrupt: CompleteRequest, was DmaTransfer\n"));
@@ -5582,6 +5602,9 @@
             AtaReq->DataBuffer += wordCount;
             AtaReq->WordsLeft -= wordCount;
             AtaReq->WordsTransfered += wordCount;
+
+            KdPrint2((PRINT_PREFIX "AtapiInterrupt: wordCount %#x, WordsTransfered %#x\n", wordCount, AtaReq->WordsTransfered));
+
         }
         //if (AtaReq->WordsLeft) {
         //    status = SRB_STATUS_DATA_OVERRUN;
@@ -6921,6 +6944,13 @@
         case SCSIOP_WRITE16:
             // all right
             break;
+        case SCSIOP_READ_CD:
+        case SCSIOP_READ_CD_MSF:
+            if(deviceExtension->opt_AtapiDmaRawRead) {
+                // all right
+                break;
+            }
+            /* FALL THROUGH */
         default:
             KdPrint2((PRINT_PREFIX "AtapiSendCommand: SRB_STATUS_BUSY\n"));
             return SRB_STATUS_BUSY;
@@ -7100,6 +7130,7 @@
                 }
                 break;
             case SCSIOP_READ_CD:
+            case SCSIOP_READ_CD_MSF:
                 if(deviceExtension->opt_AtapiDmaRawRead)
                     goto call_dma_setup;
                 break;
diff -ruN v45a3\driver\id_init.cpp v45a7\driver\id_init.cpp
--- v45a3\driver\id_init.cpp	Tue Mar 11 11:00:58 2014
+++ v45a7\driver\id_init.cpp	Wed May 21 11:07:50 2014
@@ -376,7 +376,7 @@
 /*        PCI_DEV_HW_SPEC_BM( 0640, 1039, 0x00, ATA_UDMA4, "SiS 640"  , SIS_SOUTH        ),*/
         PCI_DEV_HW_SPEC_BM( 0635, 1039, 0x00, ATA_UDMA5, "SiS 635"  , SIS100NEW        ),
         PCI_DEV_HW_SPEC_BM( 0633, 1039, 0x00, ATA_UDMA5, "SiS 633"  , SIS100NEW        ),
-        PCI_DEV_HW_SPEC_BM( 0630, 1039, 0x00, ATA_UDMA5, "SiS 630S" , SIS100OLD        ),
+        PCI_DEV_HW_SPEC_BM( 0630, 1039, 0x30, ATA_UDMA5, "SiS 630S" , SIS100OLD        ),
         PCI_DEV_HW_SPEC_BM( 0630, 1039, 0x00, ATA_UDMA4, "SiS 630"  , SIS66            ),
         PCI_DEV_HW_SPEC_BM( 0620, 1039, 0x00, ATA_UDMA4, "SiS 620"  , SIS66            ),
 
diff -ruN v45a3\driver\id_sata.cpp v45a7\driver\id_sata.cpp
--- v45a3\driver\id_sata.cpp	Sun Mar 09 22:39:54 2014
+++ v45a7\driver\id_sata.cpp	Tue Aug 12 00:37:10 2014
@@ -977,18 +977,22 @@
         max((CAP & AHCI_CAP_NOP_MASK)+1, n);
 
     KdPrint2((PRINT_PREFIX "  CommandSlots %d\n", (CAP & AHCI_CAP_NCS_MASK)>>8 ));
-    KdPrint2((PRINT_PREFIX "  Channels %d\n", n));
+    KdPrint2((PRINT_PREFIX "  Detected Channels %d / %d\n", NumberChannels, n));
 
     switch(deviceExtension->DevID) {
-    case ATA_M88SX6111:
+    case ATA_M88SE6111:
+        KdPrint2((PRINT_PREFIX "  Marvell M88SE6111 -> 1\n"));
         NumberChannels = 1;
         break;
-    case ATA_M88SX6121:
-        NumberChannels = 2;
+    case ATA_M88SE6121:
+        KdPrint2((PRINT_PREFIX "  Marvell M88SE6121 -> 2\n"));
+        NumberChannels = min(NumberChannels, 2);
         break;
-    case ATA_M88SX6141:
-    case ATA_M88SX6145:
-        NumberChannels = 4;
+    case ATA_M88SE6141:
+    case ATA_M88SE6145:
+    case ATA_M88SE9123:
+        KdPrint2((PRINT_PREFIX "  Marvell M88SE614x/9123 -> 4\n"));
+        NumberChannels = min(NumberChannels, 4);
         break;
     } // switch()
 
@@ -997,6 +1001,7 @@
         found = FALSE;
         goto exit_detect;
     }
+    KdPrint2((PRINT_PREFIX "  Adjusted Channels %d\n", NumberChannels));
 
 #ifdef DBG
     v_Mj = ((version >> 20) & 0xf0) + ((version >> 16) & 0x0f);
diff -ruN v45a3\driver\idedma.mak v45a7\driver\idedma.mak
--- v45a3\driver\idedma.mak	Tue Mar 11 11:52:18 2014
+++ v45a7\driver\idedma.mak	Tue Aug 12 01:31:30 2014
@@ -110,7 +110,6 @@
 	"$(INTDIR)\stdafx.obj" \
 	"$(INTDIR)\idedma.res"
 
-
 !IF  "$(CFG)" == "UniATA - Win32 Release"
 ALL : "$(OUTDIR)\IdeDma.sys" ".\copy.msg"
 !ELSEIF  "$(CFG)" == "UniATA - Win32 Debug"
@@ -143,14 +142,14 @@
 	copy ..\atactl\Release\atactl.exe .\Dist\atactl.exe
 !ENDIF 
 
-#ALL :
-#	nmake CFG="UniATA - Win32 Release"
-#	nmake CFG="UniATA - Win32 Debug"
-
 PKG : "build_inf.exe" "BusMaster_v$(VER).rar"
 !IF "$(VER)" == ""
-!ERROR  "EEROR: Version not specified !!!"
+!ERROR  "ERROR: Version not specified !!!"
 !ENDIF 
+
+#ALL :
+#	nmake CFG="UniATA - Win32 Release"
+#	nmake CFG="UniATA - Win32 Debug"
 
 "Release\idedma.sys" : "uniata_ver.h"
 	nmake /A CFG="UniATA - Win32 Release"
diff -ruN v45a3\driver\uniata_ver.h v45a7\driver\uniata_ver.h
--- v45a3\driver\uniata_ver.h	Tue Mar 11 12:25:10 2014
+++ v45a7\driver\uniata_ver.h	Tue Aug 12 01:32:04 2014
@@ -1,10 +1,10 @@
-#define UNIATA_VER_STR         "45a3"
-#define UNIATA_VER_DOT         0.45.1.3
+#define UNIATA_VER_STR         "45a7"
+#define UNIATA_VER_DOT         0.45.1.7
 #define UNIATA_VER_MJ          0
 #define UNIATA_VER_MN          45
 #define UNIATA_VER_SUB_MJ      1
-#define UNIATA_VER_SUB_MN      3
-#define UNIATA_VER_DOT_COMMA   0,45,1,3
-#define UNIATA_VER_DOT_STR     "0.45.1.3"
+#define UNIATA_VER_SUB_MN      7
+#define UNIATA_VER_DOT_COMMA   0,45,1,7
+#define UNIATA_VER_DOT_STR     "0.45.1.7"
 #define UNIATA_VER_YEAR        2014
 #define UNIATA_VER_YEAR_STR    "2014"
