/* SPDX-License-Identifier: GPL-2.0-only */ // Note: Some BIOSes put the S-ATA code into an SSDT to make it easily // pluggable // Intel SATA Controller 0:1f.2 Device (AHC1) { Name (_ADR, 0x001f0002) Device (PRID) { Name (_ADR, 0) // Get Timing Mode Method (_GTM, 0, Serialized) { Name(PBUF, Buffer(20) { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00 }) CreateDwordField (PBUF, 0, PIO0) CreateDwordField (PBUF, 4, DMA0) CreateDwordField (PBUF, 8, PIO1) CreateDwordField (PBUF, 12, DMA1) CreateDwordField (PBUF, 16, FLAG) // TODO fill return structure Return (PBUF) } // Set Timing Mode Method (_STM, 3) { CreateDwordField (Arg0, 0, PIO0) CreateDwordField (Arg0, 4, DMA0) CreateDwordField (Arg0, 8, PIO1) CreateDwordField (Arg0, 12, DMA1) CreateDwordField (Arg0, 16, FLAG) // TODO: Do the deed } Device (DSK0) { Name (_ADR, 0) // TODO: _RMV ? // TODO: _GTF ? } Device (DSK1) { Name (_ADR, 1) // TODO: _RMV ? // TODO: _GTF ? } } } // Intel SATA Controller 0:1f.5 Device (AHC2) { Name (_ADR, 0x001f0005) Device (PRID) { Name (_ADR, 0) // Get Timing Mode Method (_GTM, 0, Serialized) { Name(PBUF, Buffer(20) { 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00 }) CreateDwordField (PBUF, 0, PIO0) CreateDwordField (PBUF, 4, DMA0) CreateDwordField (PBUF, 8, PIO1) CreateDwordField (PBUF, 12, DMA1) CreateDwordField (PBUF, 16, FLAG) // TODO fill return structure Return (PBUF) } // Set Timing Mode Method (_STM, 3) { CreateDwordField (Arg0, 0, PIO0) CreateDwordField (Arg0, 4, DMA0) CreateDwordField (Arg0, 8, PIO1) CreateDwordField (Arg0, 12, DMA1) CreateDwordField (Arg0, 16, FLAG) // TODO: Do the deed } Device (DSK0) { Name (_ADR, 0) // TODO: _RMV ? // TODO: _GTF ? } Device (DSK1) { Name (_ADR, 1) // TODO: _RMV ? // TODO: _GTF ? } } }