• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/** @file
2  Differentiated System Description Table Fields (DSDT)
3
4  Copyright (c) 2014, ARM Ltd. All rights reserved.<BR>
5  Copyright (c) 2015, Hisilicon Limited. All rights reserved.<BR>
6  Copyright (c) 2015, Linaro Limited. All rights reserved.<BR>
7    This program and the accompanying materials
8  are licensed and made available under the terms and conditions of the BSD License
9  which accompanies this distribution.  The full text of the license may be found at
10  http://opensource.org/licenses/bsd-license.php
11
12  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
13  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
14
15**/
16
17Scope(_SB)
18{
19  Device(SAS0) {
20    Name(_HID, "HISI0162")
21    Name(_CCA, 1)
22    Name(_CRS, ResourceTemplate() {
23      Memory32Fixed(ReadWrite, 0xC3000000, 0x10000)
24      Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, 0, "\\_SB.MBI6")
25      {
26        64,65,66,67,68,
27        69,70,71,72,73,
28        74,75,76,77,78,
29        79,80,81,82,83,
30        84,85,86,87,88,
31        89,90,91,92,93,
32        94,95,96,97,98,
33        99,100,101,102,103,
34        104,105,106,107,108,
35        109,110,111,112,113,
36        114,115,116,117,118,
37        119,120,121,122,123,
38        124,125,126,127,128,
39        129,130,131,132,133,
40        134,135,136,137,138,
41        139,140,141,142,143,
42        144,145,146,147,148,
43        149,150,151,152,153,
44        154,155,156,157,158,
45        159,
46      }
47
48      Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, 0, "\\_SB.MBI6" )
49      {
50        601,602,603,604,
51        605,606,607,608,609,
52        610,611,612,613,614,
53        615,616,617,618,619,
54        620,621,622,623,624,
55        625,626,627,628,629,
56        630,631,632,
57      }
58    })
59
60    Name (_DSD, Package () {
61      ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
62      Package () {
63        Package () {"interrupt-parent",Package() {\_SB.MBI6}},
64        Package (2) {"sas-addr", Package() {50, 01, 88, 20, 16, 00, 00, 0x00}},
65        Package () {"queue-count", 16},
66        Package () {"phy-count", 8},
67      }
68    })
69
70    OperationRegion (CTL, SystemMemory, 0xC0000000, 0x10000)
71    Field (CTL, AnyAcc, NoLock, Preserve)
72    {
73      Offset (0x338),
74      CLK, 32,
75      CLKD, 32,
76      Offset (0xa60),
77      RST, 32,
78      DRST, 32,
79      Offset (0x5a30),
80      STS, 32,
81    }
82
83    OperationRegion (PHYS, SystemMemory, 0xC3002000, 0x2000)
84    Field (PHYS, DWordAcc, NoLock, Preserve) {
85      Offset (0x0014),
86      PHY0, 32,
87      Offset (0x0414),
88      PHY1, 32,
89      Offset (0x0814),
90      PHY2, 32,
91      Offset (0x0c14),
92      PHY3, 32,
93      Offset (0x1014),
94      PHY4, 32,
95      Offset (0x1414),
96      PHY5, 32,
97      Offset (0x1814),
98      PHY6, 32,
99      Offset (0x1c14),
100      PHY7, 32,
101    }
102
103    OperationRegion (SYSR, SystemMemory, 0xD0000000, 0x10000)
104    Field (SYSR, DWordAcc, NoLock, Preserve) {
105      Offset (0xe014),
106      DIE4, 32,
107    }
108
109    Method (_RST, 0x0, Serialized)
110    {
111      Store(0x7ffff, RST)
112      Store(0x7ffff, CLKD)
113      Sleep(1)
114      Store(0x7ffff, DRST)
115      Store(0x7ffff, CLK)
116      Sleep(1)
117      Store(DIE4, local0)
118      If (LEqual (local0, 0)) {
119        /* 66MHZ */
120        Store(0x0199B694, Local1)
121        Store(Local1, PHY0)
122        Store(Local1, PHY1)
123        Store(Local1, PHY2)
124        Store(Local1, PHY3)
125        Store(Local1, PHY4)
126        Store(Local1, PHY5)
127        Store(Local1, PHY6)
128        Store(Local1, PHY7)
129      }
130    }
131  }
132
133  Device(SAS1) {
134    Name(_HID, "HISI0162")
135    Name(_CCA, 1)
136    Name(_CRS, ResourceTemplate() {
137      Memory32Fixed(ReadWrite, 0xA2000000, 0x10000)
138
139      Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, 0, "\\_SB.MBI1")
140      {
141        64,65,66,67,68,
142        69,70,71,72,73,
143        74,75,76,77,78,
144        79,80,81,82,83,
145        84,85,86,87,88,
146        89,90,91,92,93,
147        94,95,96,97,98,
148        99,100,101,102,103,
149        104,105,106,107,108,
150        109,110,111,112,113,
151        114,115,116,117,118,
152        119,120,121,122,123,
153        124,125,126,127,128,
154        129,130,131,132,133,
155        134,135,136,137,138,
156        139,140,141,142,143,
157        144,145,146,147,148,
158        149,150,151,152,153,
159        154,155,156,157,158,
160        159,
161      }
162
163      Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, 0, "\\_SB.MBI1")
164      {
165        576,577,578,579,580,
166        581,582,583,584,585,
167        586,587,588,589,590,
168        591,592,593,594,595,
169        596,597,598,599,600,
170        601,602,603,604,605,
171        606,607,
172      }
173    })
174
175    Name (_DSD, Package () {
176      ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
177      Package () {
178        Package () {"interrupt-parent",Package() {\_SB.MBI1}},
179        Package (2) {"sas-addr", Package() {50, 01, 88, 20, 16, 00, 00, 00}},
180        Package () {"queue-count", 16},
181        Package () {"phy-count", 8},
182        Package () {"hip06-sas-v2-quirk-amt", 1},
183      }
184    })
185
186    OperationRegion (CTL, SystemMemory, 0xA0000000, 0x10000)
187    Field (CTL, AnyAcc, NoLock, Preserve)
188    {
189      Offset (0x318),
190      CLK, 32,
191      CLKD, 32,
192      Offset (0xa18),
193      RST, 32,
194      DRST, 32,
195      Offset (0x5a0c),
196      STS, 32,
197    }
198
199    OperationRegion (PHYS, SystemMemory, 0xA2002000, 0x2000)
200    Field (PHYS, DWordAcc, NoLock, Preserve) {
201      Offset (0x0014),
202      PHY0, 32,
203      Offset (0x0414),
204      PHY1, 32,
205      Offset (0x0814),
206      PHY2, 32,
207      Offset (0x0c14),
208      PHY3, 32,
209      Offset (0x1014),
210      PHY4, 32,
211      Offset (0x1414),
212      PHY5, 32,
213      Offset (0x1814),
214      PHY6, 32,
215      Offset (0x1c14),
216      PHY7, 32,
217    }
218
219    OperationRegion (SYSR, SystemMemory, 0xD0000000, 0x10000)
220    Field (SYSR, DWordAcc, NoLock, Preserve) {
221      Offset (0xe014),
222      DIE4, 32,
223    }
224
225    Method (_RST, 0x0, Serialized)
226    {
227      Store(0x7ffff, RST)
228      Store(0x7ffff, CLKD)
229      Sleep(1)
230      Store(0x7ffff, DRST)
231      Store(0x7ffff, CLK)
232      Sleep(1)
233      Store(DIE4, local0)
234      If (LEqual (local0, 0)) {
235        /* 66MHZ */
236        Store(0x0199B694, Local1)
237        Store(Local1, PHY0)
238        Store(Local1, PHY1)
239        Store(Local1, PHY2)
240        Store(Local1, PHY3)
241        Store(Local1, PHY4)
242        Store(Local1, PHY5)
243        Store(Local1, PHY6)
244        Store(Local1, PHY7)
245      }
246    }
247  }
248
249  Device(SAS2) {
250    Name(_HID, "HISI0162")
251    Name(_CCA, 1)
252    Name(_CRS, ResourceTemplate() {
253      Memory32Fixed(ReadWrite, 0xA3000000, 0x10000)
254
255      Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, 0, "\\_SB.MBI2")
256      {
257        192,193,194,195,196,
258        197,198,199,200,201,
259        202,203,204,205,206,
260        207,208,209,210,211,
261        212,213,214,215,216,
262        217,218,219,220,221,
263        222,223,224,225,226,
264        227,228,229,230,231,
265        232,233,234,235,236,
266        237,238,239,240,241,
267        242,243,244,245,246,
268        247,248,249,250,251,
269        252,253,254,255,256,
270        257,258,259,260,261,
271        262,263,264,265,266,
272        267,268,269,270,271,
273        272,273,274,275,276,
274        277,278,279,280,281,
275        282,283,284,285,286,
276        287,
277      }
278
279      Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, 0, "\\_SB.MBI2")
280      {
281        608,609,610,611,
282        612,613,614,615,616,
283        617,618,619,620,621,
284        622,623,624,625,626,
285        627,628,629,630,631,
286        632,633,634,635,636,
287        637,638,639,
288      }
289    })
290
291    Name (_DSD, Package () {
292      ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
293      Package () {
294        Package () {"interrupt-parent",Package() {\_SB.MBI2}},
295        Package (2) {"sas-addr", Package() {50, 01, 88, 20, 16, 00, 00, 00}},
296        Package () {"queue-count", 16},
297        Package () {"phy-count", 9},
298      }
299    })
300
301    OperationRegion (CTL, SystemMemory, 0xA0000000, 0x10000)
302    Field (CTL, AnyAcc, NoLock, Preserve)
303    {
304      Offset (0x3a8),
305      CLK, 32,
306      CLKD, 32,
307      Offset (0xae0),
308      RST, 32,
309      DRST, 32,
310      Offset (0x5a70),
311      STS, 32,
312    }
313
314    OperationRegion (PHYS, SystemMemory, 0xA3002000, 0x2400)
315    Field (PHYS, DWordAcc, NoLock, Preserve) {
316      Offset (0x0014),
317      PHY0, 32,
318      Offset (0x0414),
319      PHY1, 32,
320      Offset (0x0814),
321      PHY2, 32,
322      Offset (0x0c14),
323      PHY3, 32,
324      Offset (0x1014),
325      PHY4, 32,
326      Offset (0x1414),
327      PHY5, 32,
328      Offset (0x1814),
329      PHY6, 32,
330      Offset (0x1c14),
331      PHY7, 32,
332      offset (0x2014),
333      PHY8, 32,
334    }
335
336    OperationRegion (SYSR, SystemMemory, 0xD0000000, 0x10000)
337    Field (SYSR, DWordAcc, NoLock, Preserve) {
338      Offset (0xe014),
339      DIE4, 32,
340    }
341
342    Method (_RST, 0x0, Serialized)
343    {
344      Store(0x7ffff, RST)
345      Store(0x7ffff, CLKD)
346      Sleep(1)
347      Store(0x7ffff, DRST)
348      Store(0x7ffff, CLK)
349      Sleep(1)
350      Store(DIE4, local0)
351      If (LEqual (local0, 0)) {
352        /* 66MHZ */
353        Store(0x0199B694, Local1)
354        Store(Local1, PHY0)
355        Store(Local1, PHY1)
356        Store(Local1, PHY2)
357        Store(Local1, PHY3)
358        Store(Local1, PHY4)
359        Store(Local1, PHY5)
360        Store(Local1, PHY6)
361        Store(Local1, PHY7)
362        Store(Local1, PHY8)
363      }
364    }
365  }
366
367}
368