[MOD] Intel SATA AHCI device 8086:22A3 added to 15.2.0.1020 64bit

Hi everybody,

I have an Acer Aspire E1-131 laptop which has a SATA controller (AFAIK!!!) currently not recognized by any of the Intel AHCI drivers. It works with the standard SATA controller, but in order to enable SATA Link Power Management (LPM) on Windows 7, you need the Intel AHCI driver (or fiddle around in the registry/on the command line to manually enable it).

The device has the following ID: PCI\VEN_8086&DEV_22A3&CC_0106 and is called “Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Series SATA Controller” according to this source. I took the liberty of adding the device to the drivers attached, which should enable LPM.



; Copyright (C), Intel Corporation. All rights reserved.
; **********************************************************************************************
; ** Filename: iaAHCIC.inf
; ** Revision: 09/13/2016,15.2.0.1020
; ** Abstract: Windows* INF File for AHCI Intel(R) Rapid Storage Technology Driver
; ** Installs: RST AHCI Controller Miniport
; **********************************************************************************************
[Version]
Signature="$Windows NT$"
Provider=%INTEL%
ClassGUID={4D36E96A-E325-11CE-BFC1-08002BE10318}
Class=HDC
CatalogFile=iaAHCIC.cat
DriverVer=09/13/2016,15.2.0.1020
;
[PackageInfo]
Name=AHCI64
;
[SourceDisksNames]
1 = %DiskId1%,""
[DestinationDirs]
DefaultDestDir = 12
;
[ControlFlags]
ExcludeFromSelect = *
;
[Manufacturer]
%INTEL% = INTEL, NTamd64.6.1, NTamd64.6.2
;
[iaStorA_Service_Inst]
ServiceType = %SERVICE_KERNEL_DRIVER%
StartType = %SERVICE_BOOT_START%
ErrorControl = %SERVICE_ERROR_NORMAL%
ServiceBinary = %12%\iaStorA.sys
LoadOrderGroup = SCSI miniport
AddReg = pnpsafe_pci_addreg
;
[iaStorA_EventLog_Inst]
AddReg = iaStorA_EventLog_AddReg
;
[iaStorA_EventLog_AddReg]
HKR,EventMessageFile,%REG_EXPAND_SZ%,"%%SystemRoot%%\System32\IoLogMsg.dll;%%SystemRoot%%\System32\drivers\iaStorA.sys"
HKR,TypesSupported,%REG_TYPE_DWORD%,7
;
[iaStorF_Service_Inst]
ServiceType = %SERVICE_KERNEL_DRIVER%
StartType = %SERVICE_BOOT_START%
ErrorControl = %SERVICE_ERROR_NORMAL%
ServiceBinary = %12%\iaStorF.sys
;
[iaStorF_EventLog_Inst]
AddReg = iaStorF_EventLog_AddReg
;
[iaStorF_EventLog_AddReg]
HKR,EventMessageFile,%REG_EXPAND_SZ%,"%%SystemRoot%%\System32\IoLogMsg.dll"
HKR,TypesSupported,%REG_TYPE_DWORD%,7
;

;
;
;
64-BIT X86 ARCHITECTURE
;
;
This section specifies the 64-bit architecture specific INF file entries
;* required to install a driver as a 64-bit compatible driver.
;
;
*********************
[SourceDisksFiles.amd64]
iaStorA.sys = 1,
iaStorF.sys = 1,
;
;Win7
[INTEL.NTamd64.6.1]
%PCI\VEN_8086&DEV_9D03&CC_0106.DeviceDesc% = iaStorA_inst, PCI\VEN_8086&DEV_9D03&CC_0106
%PCI\VEN_8086&DEV_A102&CC_0106.DeviceDesc% = iaStorA_inst, PCI\VEN_8086&DEV_A102&CC_0106
%PCI\VEN_8086&DEV_A103&CC_0106.DeviceDesc% = iaStorA_inst, PCI\VEN_8086&DEV_A103&CC_0106
%PCI\VEN_8086&DEV_A282&CC_0106.DeviceDesc% = iaStorA_inst, PCI\VEN_8086&DEV_A282&CC_0106
%PCI\VEN_8086&DEV_22A3&CC_0106.DeviceDesc% = iaStorA_inst, PCI\VEN_8086&DEV_22A3&CC_0106
;
;Win8 and above
[INTEL.NTamd64.6.2]
%PCI\VEN_8086&DEV_9D03&CC_0106.DeviceDesc% = iaStorA_inst_8, PCI\VEN_8086&DEV_9D03&CC_0106
%PCI\VEN_8086&DEV_A102&CC_0106.DeviceDesc% = iaStorA_inst_8, PCI\VEN_8086&DEV_A102&CC_0106
%PCI\VEN_8086&DEV_A103&CC_0106.DeviceDesc% = iaStorA_inst_8, PCI\VEN_8086&DEV_A103&CC_0106
%PCI\VEN_8086&DEV_A282&CC_0106.DeviceDesc% = iaStorA_inst_8, PCI\VEN_8086&DEV_A282&CC_0106
%PCI\VEN_8086&DEV_22A3&CC_0106.DeviceDesc% = iaStorA_inst_8, PCI\VEN_8086&DEV_22A3&CC_0106
;
[iaStorA_inst.NTamd64]
CopyFiles=@iaStorA.sys
CopyFiles=@iaStorF.sys
FeatureScore=0x80
;
[iaStorA_inst_8.NTamd64]
CopyFiles=@iaStorA.sys
FeatureScore=0x80
;
[iaStorA_inst.NTamd64.HW]
AddReg = iaStorF_addreg
AddReg = msi_addreg
AddReg = storport_addreg
;
[iaStorA_inst_8.NTamd64.HW]
AddReg = msi_addreg
AddReg = storport_addreg
;
[iaStorA_inst.ntamd64.Services]
AddService = iaStorA, %SPSVCINST_ASSOCSERVICE%, iaStorA_Service_Inst, iaStorA_EventLog_Inst
AddService = iaStorF, , iaStorF_Service_Inst, iaStorF_EventLog_Inst
;
[iaStorA_inst_8.ntamd64.Services]
AddService = iaStorA, %SPSVCINST_ASSOCSERVICE%, iaStorA_Service_Inst, iaStorA_EventLog_Inst

;
;
;
[iaStorF_addreg]
; Layer the RST Filter driver under all Disk class devices as a lower disk class filter
;
HKLM, System\CurrentControlSet\Control\Class{4d36e967-e325-11ce-bfc1-08002be10318}, LowerFilters, 0x00010008, iaStorF
HKLM, System\CurrentControlSet\Control\Class{4d36e965-e325-11ce-bfc1-08002be10318}, LowerFilters, 0x00010008, iaStorF
;
[pnpsafe_pci_addreg]
; Use raw values for BusType, not a DEFINE, ChkInf fails on hex alpha chars
; BusType_ATA == 0x3, BusTypeATA, BusType_RAID == 0x8, BusType_SATA == 0xb
HKR, Parameters\PnpInterface, 5, %REG_TYPE_DWORD%, 0x00000001
HKR, Parameters, BusType, %REG_TYPE_DWORD%, 0x0000000b
; Tell Storport in Win7/Srv08R2(KB982018) that driver can report 4K sector size (not needed in Win8)
HKR, Parameters\Device, EnableQueryAccessAlignment, %REG_TYPE_DWORD%, 0x00000001
;; Opt into StorPort’s I/O latency cap.
HKR, “Parameters”, “IoLatencyCap”, %REG_TYPE_DWORD%, 0x000001F4
;
[Strings]
;
; Localizable Strings
;
diskId1 = “RST AHCI Installation Disk”
;client
iaStorA.DeviceDesc = "Intel Chipset SATA RAID Controller"
PCI\VEN_8086&DEV_9D03&CC_0106.DeviceDesc = "Intel(R) 6th Generation Core Processor Family Platform I/O SATA AHCI Controller"
PCI\VEN_8086&DEV_A102&CC_0106.DeviceDesc = "Intel(R) 100 Series/C230 Chipset Family SATA AHCI Controller"
PCI\VEN_8086&DEV_A103&CC_0106.DeviceDesc = "Intel(R) 100 Series/C230 Chipset Family SATA AHCI Controller"
PCI\VEN_8086&DEV_A282&CC_0106.DeviceDesc = "Intel(R) 200 Series Chipset Family SATA AHCI Controller"
PCI\VEN_8086&DEV_22A3&CC_0106.DeviceDesc = “Atom/Celeron/Pentium Processor x5-E8000/J3xxx/N3xxx Series SATA Controller”
;
INTEL = “Intel Corporation”
;
; Non-Localizable Strings
;
SPSVCINST_ASSOCSERVICE = 0x00000002
REG_MULTI_SZ = 0x00010000
REG_EXPAND_SZ = 0x00020000
REG_TYPE_DWORD = 0x00010001
SERVICE_KERNEL_DRIVER = 1
SERVICE_BOOT_START = 0
SERVICE_ERROR_NORMAL = 1
;
; MSI enables.
;
[msi_addreg]
HKR, Interrupt Management, 0x00000010
HKR, Interrupt Management\MessageSignaledInterruptProperties, 0x00000010
HKR, Interrupt Management\MessageSignaledInterruptProperties, MSISupported, %REG_TYPE_DWORD%, 1
HKR, Interrupt Management\MessageSignaledInterruptProperties, MessageNumberLimit, %REG_TYPE_DWORD%, 80
HKR, Interrupt Management\Affinity Policy, 0x00000010
HKR, Interrupt Management\Affinity Policy, DevicePolicy, %REG_TYPE_DWORD%, 5 ;IrqPolicySpreadMessagesAcrossAllProcessors
;
[storport_addreg]
;;; Enables/Disables Idle Power Management for StorPort
HKR, StorPort, EnableIdlePowerManagement, %REG_TYPE_DWORD%, 0x00000001
;;; Force StorPort to keep all sense data in Pre-Win8 OSes (max value is 255)
HKR, StorPort, TotalSenseDataBytes, %REG_TYPE_DWORD%, 0x000000FF



Please note that this is work in progress. If I find the time, I will mod the RST-Software also (but no promises).
If you have any suggestions, please do so.

Regards,
just_passing_through

f6flpy-x64_v15.2.0.1020_modded.zip (436 KB)

01 msahci.png

02 intel ahci.png

@just_passing_throughj:
Welcome at Win-RAID Forum and thanks for your report!

Have you already done a look into >this< thread? Within post #4 I have already offered in May 2016 such mod+signed 64bit Intel RST AHCI driver v13.2.4.1000, whose INF file contains the requested DeviceID DEV_22A3 for the Intel BayTrail Chipset SATA AHCI Controller.
Furthermore all my mod+signed Intel RST drivers, which I am offering >here< and belong to the platforms v14 and v15, contain the related DeviceID. The related Intel RST Software is there available as well.
So there is no need to modify anything yourself.

Regards
Dieter (alias Fernando)