diff options
author | raywu <raywu0301@gmail.com> | 2018-06-15 00:00:50 +0800 |
---|---|---|
committer | raywu <raywu0301@gmail.com> | 2018-06-15 00:00:50 +0800 |
commit | b7c51c9cf4864df6aabb99a1ae843becd577237c (patch) | |
tree | eebe9b0d0ca03062955223097e57da84dd618b9a /Chipset/SB/SATA.ASL | |
download | zprj-b7c51c9cf4864df6aabb99a1ae843becd577237c.tar.xz |
Diffstat (limited to 'Chipset/SB/SATA.ASL')
-rw-r--r-- | Chipset/SB/SATA.ASL | 297 |
1 files changed, 297 insertions, 0 deletions
diff --git a/Chipset/SB/SATA.ASL b/Chipset/SB/SATA.ASL new file mode 100644 index 0000000..2a3e318 --- /dev/null +++ b/Chipset/SB/SATA.ASL @@ -0,0 +1,297 @@ +// Set of generic ACPI Control Methods to configure SATA Controller and SATA Drives settings +// File is included under SATA controller PCI device scope +//************************************************************************* +//************************************************************************* +//** ** +//** (C)Copyright 1985-2011, American Megatrends, Inc. ** +//** ** +//** All Rights Reserved. ** +//** ** +//** 5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093 ** +//** ** +//** Phone: (770)-246-8600 ** +//** ** +//************************************************************************* +//************************************************************************* + +//************************************************************************* +// $Header: /Alaska/Projects/Intel/Haswell/LynxPoint_SharkBay-DT_Crb_1AQQW/Chipset/SB/SATA.ASL 1 6/17/16 4:05a Chienhsieh $ +// +// $Revision: 1 $ +// +// $Date: 6/17/16 4:05a $ +//************************************************************************* +// Revision History +// ---------------- +// $Log: /Alaska/Projects/Intel/Haswell/LynxPoint_SharkBay-DT_Crb_1AQQW/Chipset/SB/SATA.ASL $ +// +// 1 6/17/16 4:05a Chienhsieh +// [TAG] EIP255383 +// [Category] Improvement +// [Description] when the FORCE_HDD_PASSWORD_PROMPT sdl token enabled , +// even though use select s4 option, on resume system booted like S5. +// set HDD password and enter Win8 S4(Hibernate) sleep, behaviour of S4 +// resume would be like restart. +// [Files] SATA.ASL +// +// 2 10/23/12 3:19a Scottyang +// [TAG] EIP84560 +// [Category] Bug Fix +// [Symptom] Can't enter Win8 after Win8 AHCI driver version:11.5.0.1122 +// install. +// [Solution] fixed in EIP84560 +// [Files] sb.sdl, sb.mak, sata.asl +// +// 1 2/08/12 8:25a Yurenlai +// Intel Lynx Point/SB eChipset initially releases. +// +//************************************************************************* + +DefinitionBlock ( + "Sata.aml", + "SSDT", + 1, + "SataRef", + "SataTabl", + 0x1000 + ) +{ + +External(DSSP, IntObj) +External(\_SB.PCI0.SAT0, DeviceObj) + +Scope(\) +{ + // SATA Command Set + //---------------------------------------------------------------// + // Reg1 Reg2 Reg3 Reg4 Reg5 Reg6 Reg7 + //---------------------------------------------------------------// + Name(STFE, Buffer(){0x10, 0x06, 0x00, 0x00, 0x00, 0x00, 0xEF,}) // Set Features - Enable USE of SATA Feature + Name(STFD, Buffer(){0x90, 0x06, 0x00, 0x00, 0x00, 0x00, 0xEF,}) // Set Features - Disable USE of SATA Feature + Name(FZTF, Buffer(){0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF5 }) // Freeze Lock Command + Name(DCFL, Buffer(){0xC1, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB1 }) // Device Configuration Freeze Lock Command + + Name(SCBF, Buffer(21){}) // SATA Command Buffer to be returned + + // The number of SATA command + Name (CMDC, 0) // SATA Commands counter + + // Build the return buffer for GTF() control method + Method (GTFB, 2, Serialized) + // Arg0 - Command to write + // Arg1 - Subcommand value for "Set Feature command" + { + Multiply(CMDC, 56, Local0) + CreateField(SCBF, Local0, 56, CMDx) // Command field + Multiply(CMDC, 7, Local0) + CreateByteField(SCBF, Add(Local0, 1), A001) // Subcommand of "Set Feature" command + Store(Arg0, CMDx) // Store command into return buffer + Store(Arg1, A001) // Set Subcommand code + Increment(CMDC) + } +} + +Scope(\_SB.PCI0.SAT0) +{ + Name(REGF, 1) // PCI Bus access Flag + + Method(_REG, 2) // is PCI Config space accessible as OpRegion? + // _REG to update REGF status + { + If(LEqual(Arg0, 0x2)) + { + Store(Arg1, REGF) + } + } + // Buffer to be returned by _GTM + Name(TMD0, Buffer(20){}) // 5 DWORD length + CreateDWordField(TMD0, 00, PIO0) + CreateDWordField(TMD0, 04, DMA0) + CreateDWordField(TMD0, 8, PIO1) // do not use "08" + CreateDWordField(TMD0, 12, DMA1) + CreateDWordField(TMD0, 16, CHNF) + + // Get Timing PIO/DMA Mode + Method(_GTM,0 ) { // Return Buffer + // PIO 0 Speed DWORD + // DMA 0 Speed DWORD + // PIO 1 Speed DWORD + // DMA 1 Speed DWORD + // Flags DWORD + + Store(120, PIO0) // Forced to PIO Mode 4 + Store(20, DMA0) // Forced to UDMA Mode 5 + Store(120, PIO1) // Forced to PIO Mode 4 + Store(20, DMA1) // Forced to UDMA Mode 5 + + Or(CHNF, 0x05, CHNF) + + Return (TMD0) + } // end Method _GTM +//////////////////////////////////////////////////////////////////////////////// + // Set Timing PIO/DMA Mode + Method(_STM, 3) // Arg 0 = Channel Timing Info (Package) + // Arg 1 = ATA Command set Master(Buffer) + // Arg 2 = ATA Command set Slave (Buffer) + {} // end Method _STM +//////////////////////////////////////////////////////////////////////////////// +#if defined(ASL_ZPODD_SATA_PORT) && (ASL_ZPODD_SATA_PORT==0) +#else + // SATA PORT0 // + Device(SPT0) + { + Name(_ADR,0x0000FFFF) + + // GET TASK FILE METHOD + Method(_GTF, 0, NotSerialized) { + Store(0, CMDC) // SATA Commands counter + + If(LEqual(DSSP, 0x1)) { // Check DISABLE_SOFT_SET_PREV SDL Token Enabled + GTFB(STFD, 0x06) // Disable SW Preservation Settings + } else { + GTFB(STFE, 0x06) // Enable SW Preservation Settings + } + + GTFB(FZTF, 0x00) // Issue Freeze Lock Command + GTFB(DCFL, 0x00) // Issue Device Configuration Freeze Lock Command + Return(SCBF) + } + } + +#endif + // SATA PORT1 // +#if defined(ASL_ZPODD_SATA_PORT) && (ASL_ZPODD_SATA_PORT==1) +#else + Device(SPT1) + { + Name(_ADR,0x0001FFFF) + + // GET TASK FILE METHOD + Method(_GTF, 0, NotSerialized) { + Store(0, CMDC) // SATA Commands counter + + If(LEqual(DSSP, 0x1)) { // Check DISABLE_SOFT_SET_PREV SDL Token Enabled + GTFB(STFD, 0x06) // Disable SW Preservation Settings + } else { + GTFB(STFE, 0x06) // Enable SW Preservation Settings + } + + GTFB(FZTF, 0x00) // Issue Freeze Lock Command + GTFB(DCFL, 0x00) // Issue Device Configuration Freeze Lock Command + Return(SCBF) + } + } + +#endif + // SATA PORT2 // +#if defined(ASL_ZPODD_SATA_PORT) && (ASL_ZPODD_SATA_PORT==2) +#else + Device(SPT2) + { + Name(_ADR,0x0002FFFF) + + // GET TASK FILE METHOD + Method(_GTF, 0, NotSerialized) { + Store(0, CMDC) // SATA Commands counter + + If(LEqual(DSSP, 0x1)) { // Check DISABLE_SOFT_SET_PREV SDL Token Enabled + GTFB(STFD, 0x06) // Disable SW Preservation Settings + } else { + GTFB(STFE, 0x06) // Enable SW Preservation Settings + } + + GTFB(FZTF, 0x00) // Issue Freeze Lock Command + GTFB(DCFL, 0x00) // Issue Device Configuration Freeze Lock Command + Return(SCBF) + } + } + +#endif + // SATA PORT3 // +#if defined(ASL_ZPODD_SATA_PORT) && (ASL_ZPODD_SATA_PORT==3) +#else + Device(SPT3) + { + Name(_ADR,0x0003FFFF) + + // GET TASK FILE METHOD + Method(_GTF, 0, NotSerialized) { + Store(0, CMDC) // SATA Commands counter + + If(LEqual(DSSP, 0x1)) { // Check DISABLE_SOFT_SET_PREV SDL Token Enabled + GTFB(STFD, 0x06) // Disable SW Preservation Settings + } else { + GTFB(STFE, 0x06) // Enable SW Preservation Settings + } + + GTFB(FZTF, 0x00) // Issue Freeze Lock Command + GTFB(DCFL, 0x00) // Issue Device Configuration Freeze Lock Command + Return(SCBF) + } + } + +#endif + // SATA PORT4 // +#if defined(ASL_ZPODD_SATA_PORT) && (ASL_ZPODD_SATA_PORT==4) +#else + Device(SPT4) + { + Name(_ADR,0x0004FFFF) + + // GET TASK FILE METHOD + Method(_GTF, 0, NotSerialized) { + Store(0, CMDC) // SATA Commands counter + + If(LEqual(DSSP, 0x1)) { // Check DISABLE_SOFT_SET_PREV SDL Token Enabled + GTFB(STFD, 0x06) // Disable SW Preservation Settings + } else { + GTFB(STFE, 0x06) // Enable SW Preservation Settings + } + + GTFB(FZTF, 0x00) // Issue Freeze Lock Command + GTFB(DCFL, 0x00) // Issue Device Configuration Freeze Lock Command + Return(SCBF) + } + } + +#endif + // SATA PORT5 // +#if defined(ASL_ZPODD_SATA_PORT) && (ASL_ZPODD_SATA_PORT==5) +#else + Device(SPT5) + { + Name(_ADR,0x0005FFFF) + + // GET TASK FILE METHOD + Method(_GTF, 0, NotSerialized) { + Store(0, CMDC) // SATA Commands counter + + If(LEqual(DSSP, 0x1)) { // Check DISABLE_SOFT_SET_PREV SDL Token Enabled + GTFB(STFD, 0x06) // Disable SW Preservation Settings + } else { + GTFB(STFE, 0x06) // Enable SW Preservation Settings + } + + GTFB(FZTF, 0x00) // Issue Freeze Lock Command + GTFB(DCFL, 0x00) // Issue Device Configuration Freeze Lock Command + Return(SCBF) + } + } +#endif +} +}//end of SSDT + + +//************************************************************************* +//************************************************************************* +//** ** +//** (C)Copyright 1985-2011, American Megatrends, Inc. ** +//** ** +//** All Rights Reserved. ** +//** ** +//** 5555 Oakbrook Parkway, Suite 200, Norcross, GA 30093 ** +//** ** +//** Phone: (770)-246-8600 ** +//** ** +//************************************************************************* +//*************************************************************************
\ No newline at end of file |