• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/* SPDX-License-Identifier: GPL-2.0-only */
2
3// Note: Some BIOSes put the S-ATA code into an SSDT to make it easily
4// pluggable
5
6// Intel SATA Controller 0:1f.2
7
8Device (AHC1)
9{
10	Name (_ADR, 0x001f0002)
11
12	Device (PRID)
13	{
14		Name (_ADR, 0)
15
16		// Get Timing Mode
17		Method (_GTM, 0, Serialized)
18		{
19			Name(PBUF, Buffer(20) {
20				0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
21				0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
22				0x00,0x00,0x00,0x00 })
23
24			CreateDwordField (PBUF,  0, PIO0)
25			CreateDwordField (PBUF,  4, DMA0)
26			CreateDwordField (PBUF,  8, PIO1)
27			CreateDwordField (PBUF, 12, DMA1)
28			CreateDwordField (PBUF, 16, FLAG)
29
30			// TODO fill return structure
31
32			Return (PBUF)
33		}
34
35		// Set Timing Mode
36		Method (_STM, 3)
37		{
38			CreateDwordField (Arg0,  0, PIO0)
39			CreateDwordField (Arg0,  4, DMA0)
40			CreateDwordField (Arg0,  8, PIO1)
41			CreateDwordField (Arg0, 12, DMA1)
42			CreateDwordField (Arg0, 16, FLAG)
43
44			// TODO: Do the deed
45		}
46
47		Device (DSK0)
48		{
49			Name (_ADR, 0)
50			// TODO: _RMV ?
51			// TODO: _GTF ?
52		}
53
54		Device (DSK1)
55		{
56			Name (_ADR, 1)
57
58			// TODO: _RMV ?
59			// TODO: _GTF ?
60		}
61
62	}
63}
64
65// Intel SATA Controller 0:1f.5
66
67Device (AHC2)
68{
69	Name (_ADR, 0x001f0005)
70
71	Device (PRID)
72	{
73		Name (_ADR, 0)
74
75		// Get Timing Mode
76		Method (_GTM, 0, Serialized)
77		{
78			Name(PBUF, Buffer(20) {
79				0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
80				0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
81				0x00,0x00,0x00,0x00 })
82
83			CreateDwordField (PBUF,  0, PIO0)
84			CreateDwordField (PBUF,  4, DMA0)
85			CreateDwordField (PBUF,  8, PIO1)
86			CreateDwordField (PBUF, 12, DMA1)
87			CreateDwordField (PBUF, 16, FLAG)
88
89			// TODO fill return structure
90
91			Return (PBUF)
92		}
93
94		// Set Timing Mode
95		Method (_STM, 3)
96		{
97			CreateDwordField (Arg0,  0, PIO0)
98			CreateDwordField (Arg0,  4, DMA0)
99			CreateDwordField (Arg0,  8, PIO1)
100			CreateDwordField (Arg0, 12, DMA1)
101			CreateDwordField (Arg0, 16, FLAG)
102
103			// TODO: Do the deed
104		}
105
106		Device (DSK0)
107		{
108			Name (_ADR, 0)
109			// TODO: _RMV ?
110			// TODO: _GTF ?
111		}
112
113		Device (DSK1)
114		{
115			Name (_ADR, 1)
116
117			// TODO: _RMV ?
118			// TODO: _GTF ?
119		}
120
121	}
122}
123