• 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) 2016, Hisilicon Limited. All rights reserved.
6
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 (MDIO)
20  {
21    OperationRegion(CLKR, SystemMemory, 0x60000550, 8)
22    Field(CLKR, DWordAcc, NoLock, Preserve) {
23      CLKE, 1,  // clock enable
24      , 31,
25      CLKD, 1,  // clode disable
26      , 31,
27    }
28    OperationRegion(RSTR, SystemMemory, 0x60000c40, 8)
29    Field(RSTR, DWordAcc, NoLock, Preserve) {
30      RSTE, 1,  // reset
31      , 31,
32      RSTD, 1,  // de-reset
33      , 31,
34    }
35
36    Name(_HID, "HISI0141")
37    Name(_CRS, ResourceTemplate() {
38      Memory32Fixed (ReadWrite, 0x603c0000 , 0x10000)
39    })
40
41    Method(_RST, 0, Serialized) {
42      Store (0x1, RSTE)
43      Sleep (10)
44      Store (0x1, CLKD)
45      Sleep (10)
46      Store (0x1, RSTD)
47      Sleep (10)
48      Store (0x1, CLKE)
49      Sleep (10)
50    }
51  }
52
53  Device (DSF0)
54  {
55    OperationRegion(H3SR, SystemMemory, 0xC0000184, 4)
56    Field(H3SR, DWordAcc, NoLock, Preserve) {
57      H3ST, 1,
58      , 31,  //RESERVED
59    }
60    OperationRegion(H4SR, SystemMemory, 0xC0000194, 4)
61    Field(H4SR, DWordAcc, NoLock, Preserve) {
62      H4ST, 1,
63      , 31,  //RESERVED
64    }
65    // DSAF RESET
66    OperationRegion(DRER, SystemMemory, 0xC0000A00, 8)
67    Field(DRER, DWordAcc, NoLock, Preserve) {
68      DRTE, 1,
69      , 31,  //RESERVED
70      DRTD, 1,
71      , 31,  //RESERVED
72    }
73    // NT RESET
74    OperationRegion(NRER, SystemMemory, 0xC0000A08, 8)
75    Field(NRER, DWordAcc, NoLock, Preserve) {
76      NRTE, 1,
77      , 31,  //RESERVED
78      NRTD, 1,
79      , 31,  //RESERVED
80    }
81    // XGE RESET
82    OperationRegion(XRER, SystemMemory, 0xC0000A10, 8)
83    Field(XRER, DWordAcc, NoLock, Preserve) {
84      XRTE, 31,
85      , 1,    //RESERVED
86      XRTD, 31,
87      , 1,    //RESERVED
88    }
89
90    // GE RESET
91    OperationRegion(GRTR, SystemMemory, 0xC0000A18, 16)
92    Field(GRTR, DWordAcc, NoLock, Preserve) {
93      GR0E, 30,
94      , 2,    //RESERVED
95      GR0D, 30,
96      , 2,    //RESERVED
97      GR1E, 18,
98      , 14,  //RESERVED
99      GR1D, 18,
100      , 14,  //RESERVED
101    }
102    // PPE RESET
103    OperationRegion(PRTR, SystemMemory, 0xC0000A48, 8)
104    Field(PRTR, DWordAcc, NoLock, Preserve) {
105      PRTE, 10,
106      , 22,  //RESERVED
107      PRTD, 10,
108      , 22,  //RESERVED
109    }
110
111    // RCB PPE COM RESET
112    OperationRegion(RRTR, SystemMemory, 0xC0000A88, 8)
113    Field(RRTR, DWordAcc, NoLock, Preserve) {
114      RRTE, 1,
115      , 31,  //RESERVED
116      RRTD, 1,
117      , 31,  //RESERVED
118    }
119
120    // DSAF Channel RESET
121    OperationRegion(DCRR, SystemMemory, 0xC0000AA8, 8)
122    Field(DCRR, DWordAcc, NoLock, Preserve) {
123      DCRE, 1,
124      , 31,  //RESERVED
125      DCRD, 1,
126      , 31,  //RESERVED
127    }
128
129    // RoCE RESET
130    OperationRegion(RKRR, SystemMemory, 0xC0000A50, 8)
131    Field(RKRR, DWordAcc, NoLock, Preserve) {
132      RKRE, 1,
133      , 31,  //RESERVED
134      RKRD, 1,
135      , 31,  //RESERVED
136    }
137
138    // RoCE Clock enable/disable
139    OperationRegion(RKCR, SystemMemory, 0xC0000328, 8)
140    Field(RKCR, DWordAcc, NoLock, Preserve) {
141      RCLE, 1,
142      , 31,  //RESERVED
143      RCLD, 1,
144      , 31,  //RESERVED
145    }
146
147    // Hilink access sel cfg reg
148    OperationRegion(HSER, SystemMemory, 0xC2240008, 0x4)
149    Field(HSER, DWordAcc, NoLock, Preserve) {
150      HSEL, 2,  // hilink_access_sel & hilink_access_wr_pul
151      , 30,    // RESERVED
152    }
153
154    // Serdes
155    OperationRegion(H4LR, SystemMemory, 0xC2208100, 0x1000)
156    Field(H4LR, DWordAcc, NoLock, Preserve) {
157      H4L0, 16,    // port0
158      , 16,    //RESERVED
159      Offset (0x400),
160      H4L1, 16,    // port1
161      , 16,    //RESERVED
162      Offset (0x800),
163      H4L2, 16,    // port2
164      , 16,    //RESERVED
165      Offset (0xc00),
166      H4L3, 16,    // port3
167      , 16,    //RESERVED
168    }
169    OperationRegion(H3LR, SystemMemory, 0xC2208900, 0x800)
170    Field(H3LR, DWordAcc, NoLock, Preserve) {
171      H3L2, 16,    // port4
172      , 16,    //RESERVED
173      Offset (0x400),
174      H3L3, 16,    // port5
175      , 16,    //RESERVED
176    }
177    OperationRegion(HSFP, SystemMemory, 0x78000010, 0x100)
178    Field(HSFP, ByteAcc, NoLock, Preserve) {
179      Offset (0x2),
180      HSF0, 1,  // port0
181      , 7,    //RESERVED
182      Offset (0x6),
183      HSF1, 1,    // port1
184      , 7,    //RESERVED
185    }
186    Name (_HID, "HISI00B2")
187    Name (_CCA, 1) // Cache-coherent controller
188    Name (_CRS, ResourceTemplate (){
189      Memory32Fixed (ReadWrite, 0xc5000000 , 0x890000)
190      Memory32Fixed (ReadWrite, 0xc7000000 , 0x60000)
191      Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, 0, "\\_SB.MBI1")
192      {
193        576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588,
194        589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600,
195      }
196      Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, 0, "\\_SB.MBI1")
197      {
198        960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975,
199        976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991,
200        992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007,
201        1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023,
202        1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039,
203        1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055,
204        1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071,
205        1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087,
206        1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103,
207        1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119,
208        1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135,
209        1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151,
210      }
211      Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, 0, "\\_SB.MBI1")
212      {
213        1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167,
214        1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183,
215        1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199,
216        1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215,
217        1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231,
218        1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247,
219        1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263,
220        1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279,
221        1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295,
222        1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311,
223        1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327,
224        1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343,
225      }
226    })
227    Name (_DSD, Package () {
228      ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
229      Package () {
230        Package () {"mode", "6port-16rss"},
231        Package () {"buf-size", 4096},
232        Package () {"desc-num", 1024},
233      }
234    })
235
236    //reset XGE port
237    //Arg0 : XGE port index in dsaf
238    //Arg1 : 0 reset, 1 cancle reset
239    Method(XRST, 2, Serialized) {
240      ShiftLeft (0x2082082, Arg0, Local0)
241      Or (Local0, 0x1, Local0)
242
243      If (LEqual (Arg1, 0)) {
244        Store(Local0, XRTE)
245      } Else  {
246        Store(Local0, XRTD)
247      }
248    }
249
250    //reset XGE core
251    //Arg0 : XGE port index in dsaf
252    //Arg1 : 0 reset, 1 cancle reset
253    Method(XCRT, 2, Serialized) {
254      ShiftLeft (0x2080, Arg0, Local0)
255
256      If (LEqual (Arg1, 0)) {
257        Store(Local0, XRTE)
258      } Else  {
259        Store(Local0, XRTD)
260      }
261    }
262
263    //reset GE port
264    //Arg0 : GE port index in dsaf
265    //Arg1 : 0 reset, 1 cancle reset
266    Method(GRST, 2, Serialized) {
267      If (LLessEqual (Arg0, 5)) {
268        //Service port
269        ShiftLeft (0x2082082, Arg0, Local0)
270        ShiftLeft (0x1, Arg0, Local1)
271
272        If (LEqual (Arg1, 0)) {
273          Store(Local1, GR1E)
274          Store(Local0, GR0E)
275        } Else  {
276          Store(Local0, GR0D)
277          Store(Local1, GR1D)
278        }
279      }
280    }
281
282    //reset PPE port
283    //Arg0 : PPE port index in dsaf
284    //Arg1 : 0 reset, 1 cancle reset
285    Method(PRST, 2, Serialized) {
286      ShiftLeft (0x1, Arg0, Local0)
287      If (LEqual (Arg1, 0)) {
288        Store(Local0, PRTE)
289      } Else  {
290        Store(Local0, PRTD)
291      }
292    }
293
294    //reset DSAF channels
295    //Arg0 : mask
296    //Arg1 : 0 reset, 1 de-reset
297    Method(DCRT, 2, Serialized) {
298      If (LEqual (Arg1, 0)) {
299        Store(Arg0, DCRE)
300      } Else  {
301        Store(Arg0, DCRD)
302      }
303    }
304
305    //reset RoCE
306    //Arg0 : 0 reset, 1 de-reset
307    Method(RRST, 1, Serialized) {
308      If (LEqual (Arg0, 0)) {
309        Store(0x1, RKRE)
310      } Else  {
311        Store(0x1, RCLD)
312        Store(0x1, RKRD)
313        sleep(20)
314        Store(0x1, RCLE)
315      }
316    }
317
318    // Set Serdes Loopback
319    //Arg0 : port
320    //Arg1 : 0 disable, 1 enable
321    Method(SRLP, 2, Serialized) {
322      ShiftLeft (Arg1, 10, Local0)
323      Switch (ToInteger(Arg0))
324      {
325        case (0x0){
326          Store (0, HSEL)
327          Store (H4L0, Local1)
328          And (Local1, 0xfffffbff, Local1)
329          Or (Local0, Local1, Local0)
330          Store (Local0, H4L0)
331        }
332        case (0x1){
333          Store (0, HSEL)
334          Store (H4L1, Local1)
335          And (Local1, 0xfffffbff, Local1)
336          Or (Local0, Local1, Local0)
337          Store (Local0, H4L1)
338        }
339        case (0x2){
340          Store (0, HSEL)
341          Store (H4L2, Local1)
342          And (Local1, 0xfffffbff, Local1)
343          Or (Local0, Local1, Local0)
344          Store (Local0, H4L2)
345        }
346        case (0x3){
347          Store (0, HSEL)
348          Store (H4L3, Local1)
349          And (Local1, 0xfffffbff, Local1)
350          Or (Local0, Local1, Local0)
351          Store (Local0, H4L3)
352        }
353        case (0x4){
354          Store (3, HSEL)
355          Store (H3L2, Local1)
356          And (Local1, 0xfffffbff, Local1)
357          Or (Local0, Local1, Local0)
358          Store (Local0, H3L2)
359        }
360        case (0x5){
361          Store (3, HSEL)
362          Store (H3L3, Local1)
363          And (Local1, 0xfffffbff, Local1)
364          Or (Local0, Local1, Local0)
365          Store (Local0, H3L3)
366        }
367      }
368    }
369
370    //Reset
371    //Arg0 : reset type (1: dsaf; 2: ppe; 3:XGE core; 4:XGE; 5:ge; 6:dchan; 7:RoCE)
372    //Arg1 : port
373    //Arg2 : 0 disable, 1 enable
374    Method(DRST, 3, Serialized)
375    {
376      Switch (ToInteger(Arg0))
377      {
378        //DSAF reset
379        case (0x1)
380        {
381          Store (Arg2, Local0)
382          If (LEqual (Local0, 0))
383          {
384            Store (0x1, DRTE)
385            Store (0x1, NRTE)
386            Sleep (10)
387            Store (0x1, RRTE)
388          }
389          Else
390          {
391            Store (0x1, DRTD)
392            Store (0x1, NRTD)
393            Sleep (10)
394            Store (0x1, RRTD)
395          }
396        }
397        //Reset PPE port
398        case (0x2)
399        {
400          Store (Arg1, Local0)
401          Store (Arg2, Local1)
402          PRST (Local0, Local1)
403        }
404
405        //Reset XGE core
406        case (0x3)
407        {
408          Store (Arg1, Local0)
409          Store (Arg2, Local1)
410          XCRT (Local0, Local1)
411        }
412        //Reset XGE port
413        case (0x4)
414        {
415          Store (Arg1, Local0)
416          Store (Arg2, Local1)
417          XRST (Local0, Local1)
418        }
419
420        //Reset GE port
421        case (0x5)
422        {
423          Store (Arg1, Local0)
424          Store (Arg2, Local1)
425          GRST (Local0, Local1)
426        }
427
428        //Reset DSAF Channels
429        case (0x6)
430        {
431          Store (Arg1, Local0)
432          Store (Arg2, Local1)
433          DCRT (Local0, Local1)
434        }
435
436        //Reset RoCE
437        case (0x7)
438        {
439          // Discarding Arg1 as it is always 0
440          Store (Arg2, Local0)
441          RRST (Local0)
442        }
443      }
444    }
445
446    // _DSM Device Specific Method
447    //
448    // Arg0: UUID Unique function identifier
449    // Arg1: Integer Revision Level
450    // Arg2: Integer Function Index
451    //   0 : Return Supported Functions bit mask
452    //   1 : Reset Sequence
453    //    Arg3[0] : reset type (1:dsaf; 2:ppe; 3:xge core; 4:xge; 5: ge; 6:dchan; 7:RoCE)
454    //    Arg3[1] : port index in dsaf
455    //    Arg3[2] : 0 reset, 1 cancle reset
456    //   2 : Set Serdes Loopback
457    //    Arg3[0] : port
458    //    Arg3[1] : 0 disable, 1 enable
459    //   3 : LED op set
460    //    Arg3[0] : op type
461    //    Arg3[1] : port
462    //    Arg3[2] : para
463    //   4 : Get port type (GE or XGE)
464    //    Arg3[0] : port index in dsaf
465    //    Return : 0 GE, 1 XGE
466    //   5 : Get sfp status
467    //    Arg3[0] : port index in dsaf
468    //    Return : 0 no sfp, 1 have sfp
469    // Arg3: Package Parameters
470    Method (_DSM, 4, Serialized)
471    {
472      If (LEqual(Arg0,ToUUID("1A85AA1A-E293-415E-8E28-8D690A0F820A")))
473      {
474        If (LEqual (Arg1, 0x00))
475        {
476          Switch (ToInteger(Arg2))
477          {
478            case (0x0)
479            {
480              Return (Buffer () {0x3F})
481            }
482
483            //Reset Sequence
484            case (0x1)
485            {
486              Store (DeRefOf (Index (Arg3, 0)), Local0)
487              Store (DeRefOf (Index (Arg3, 1)), Local1)
488              Store (DeRefOf (Index (Arg3, 2)), Local2)
489              DRST (Local0, Local1, Local2)
490            }
491
492            //Set Serdes Loopback
493            case (0x2)
494            {
495              Store (DeRefOf (Index (Arg3, 0)), Local0)
496              Store (DeRefOf (Index (Arg3, 1)), Local1)
497              SRLP (Local0, Local1)
498            }
499
500            //LED op set
501            case (0x3)
502            {
503
504            }
505
506            // Get port type (GE or XGE)
507            case (0x4)
508            {
509              Store (0, Local1)
510              Store (DeRefOf (Index (Arg3, 0)), Local0)
511              If (LLessEqual (Local0, 3))
512              {
513                // mac0: Hilink4 Lane0
514                // mac1: Hilink4 Lane1
515                // mac2: Hilink4 Lane2
516                // mac3: Hilink4 Lane3
517                Store (H4ST, Local1)
518              }
519              ElseIf (LLessEqual (Local0, 5))
520              {
521                // mac4: Hilink3 Lane2
522                // mac5: Hilink3 Lane3
523                Store (H3ST, Local1)
524              }
525
526              Return (Local1)
527            }
528
529            //Get sfp status
530            case (0x5)
531            {
532              Store (1, Local1) //set no sfp default
533              Store (DeRefOf (Index (Arg3, 0)), Local0)
534              If (LEqual (Local0, 0))
535              {
536                // port 0:
537                Store (HSF0, Local1)
538              }
539              ElseIf (LEqual (Local0, 1))
540              {
541                // port 1
542                Store (HSF1, Local1)
543              }
544
545              XOr (Local1, 1, local1)
546              Return (Local1)
547            }
548          }
549        }
550      }
551      Return (Buffer() {0x00})
552    }
553    Device (PRT0)
554    {
555      Name (_ADR, 0x0)
556      Name (_DSD, Package () {
557        ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
558        Package () {
559          Package () {"reg", 0},
560          Package () {"media-type", "fiber"},
561        }
562      })
563    }
564    Device (PRT1)
565    {
566      Name (_ADR, 0x1)
567      Name (_DSD, Package () {
568        ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
569        Package () {
570          Package () {"reg", 1},
571          Package () {"media-type", "fiber"},
572        }
573      })
574    }
575
576    Device (PRT2)
577    {
578      Name (_ADR, 0x2)
579      Name (_DSD, Package () {
580        ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
581        Package () {
582          Package () {"reg", 2},
583          Package () {"media-type", "fiber"},
584        }
585      })
586    }
587    Device (PRT3)
588    {
589      Name (_ADR, 0x3)
590      Name (_DSD, Package () {
591        ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
592        Package () {
593          Package () {"reg", 3},
594          Package () {"media-type", "fiber"},
595        }
596      })
597    }
598
599    Device (PRT4)
600    {
601      Name (_ADR, 0x4)
602      Name (_DSD, Package () {
603        ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
604        Package () {
605          Package () {"reg", 4},
606                          Package () {"phy-mode", "sgmii"},
607          Package () {"phy-addr", 0},
608          Package () {"mdio-node", Package (){\_SB.MDIO}},
609          Package () {"media-type", "copper"},
610        }
611      })
612    }
613    Device (PRT5)
614    {
615      Name (_ADR, 0x5)
616      Name (_DSD, Package () {
617        ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
618        Package () {
619          Package () {"reg", 5},
620          Package () {"phy-mode", "sgmii"},
621          Package () {"phy-addr", 1},
622          Package () {"mdio-node", Package (){\_SB.MDIO}},
623          Package () {"media-type", "copper"},
624        }
625      })
626    }
627  }
628  Device (ETH4) {
629    Name(_HID, "HISI00C2")
630    Name (_CCA, 1) // Cache-coherent controller
631    Name (_DSD, Package () {
632      ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
633      Package () {
634        Package () {"local-mac-address", Package () { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }}, // 6-bytes
635        Package () {"ae-handle", Package (){\_SB.DSF0}},
636        Package () {"port-idx-in-ae", 4},
637      }
638    })
639  }
640  Device (ETH5) {
641    Name(_HID, "HISI00C2")
642    Name (_CCA, 1) // Cache-coherent controller
643    Name (_DSD, Package () {
644      ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
645      Package () {
646        Package () {"local-mac-address", Package () { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }}, // 6-bytes
647        Package () {"ae-handle", Package (){\_SB.DSF0}},
648        Package () {"port-idx-in-ae", 5},
649      }
650    })
651  }
652  Device (ETH0) {
653    Name(_HID, "HISI00C2")
654    Name (_CCA, 1) // Cache-coherent controller
655    Name (_DSD, Package () {
656      ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
657      Package () {
658        Package () {"local-mac-address", Package () { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }}, // 6-bytes
659        Package () {"ae-handle", Package (){\_SB.DSF0}},
660        Package () {"port-idx-in-ae", 0},
661      }
662    })
663  }
664  Device (ETH1) {
665    Name(_HID, "HISI00C2")
666    Name (_CCA, 1) // Cache-coherent controller
667    Name (_DSD, Package () {
668      ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
669      Package () {
670        Package () {"local-mac-address", Package () { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }}, // 6-bytes
671        Package () {"ae-handle", Package (){\_SB.DSF0}},
672        Package () {"port-idx-in-ae", 1},
673      }
674    })
675  }
676
677  Device (ETH2) {
678    Name(_HID, "HISI00C2")
679    Name (_CCA, 1) // Cache-coherent controller
680    Name (_DSD, Package () {
681      ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
682      Package () {
683        Package () {"local-mac-address", Package () { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }}, // 6-bytes
684        Package () {"ae-handle", Package (){\_SB.DSF0}},
685        Package () {"port-idx-in-ae", 2},
686      }
687    })
688    Method (_STA, 0x0, NotSerialized)
689    {
690      Return (0)
691    }
692  }
693  Device (ETH3) {
694    Name(_HID, "HISI00C2")
695    Name (_CCA, 1) // Cache-coherent controller
696    Name (_DSD, Package () {
697      ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
698      Package () {
699        Package () {"local-mac-address", Package () { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }}, // 6-bytes
700        Package () {"ae-handle", Package (){\_SB.DSF0}},
701        Package () {"port-idx-in-ae", 3},
702      }
703    })
704    Method (_STA, 0x0, NotSerialized)
705    {
706      Return (0)
707    }
708  }
709
710  Device (ROCE) {
711    Name(_HID, "HISI00D1")
712    Name (_CCA, 1) // Cache-coherent controller
713    Name (_DSD, Package () {
714      ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
715      Package () {
716        Package () {"eth-handle", Package () {\_SB.ETH0, \_SB.ETH1, 0, 0, \_SB.ETH4, \_SB.ETH5}},
717        Package () {"dsaf-handle", Package (){\_SB.DSF0}},
718        Package () {"node-guid", Package () { 0x00, 0x9A, 0xCD, 0x00, 0x00, 0x01, 0x02, 0x03 }}, // 8-bytes
719        Package () {"interrupt-names", Package() {"hns-roce-comp-0",
720                                                  "hns-roce-comp-1",
721                                                  "hns-roce-comp-2",
722                                                  "hns-roce-comp-3",
723                                                  "hns-roce-comp-4",
724                                                  "hns-roce-comp-5",
725                                                  "hns-roce-comp-6",
726                                                  "hns-roce-comp-7",
727                                                  "hns-roce-comp-8",
728                                                  "hns-roce-comp-9",
729                                                  "hns-roce-comp-10",
730                                                  "hns-roce-comp-11",
731                                                  "hns-roce-comp-12",
732                                                  "hns-roce-comp-13",
733                                                  "hns-roce-comp-14",
734                                                  "hns-roce-comp-15",
735                                                  "hns-roce-comp-16",
736                                                  "hns-roce-comp-17",
737                                                  "hns-roce-comp-18",
738                                                  "hns-roce-comp-19",
739                                                  "hns-roce-comp-20",
740                                                  "hns-roce-comp-21",
741                                                  "hns-roce-comp-22",
742                                                  "hns-roce-comp-23",
743                                                  "hns-roce-comp-24",
744                                                  "hns-roce-comp-25",
745                                                  "hns-roce-comp-26",
746                                                  "hns-roce-comp-27",
747                                                  "hns-roce-comp-28",
748                                                  "hns-roce-comp-29",
749                                                  "hns-roce-comp-30",
750                                                  "hns-roce-comp-31",
751                                                  "hns-roce-async",
752                                                  "hns-roce-common"}},
753      }
754    })
755    Name (_CRS, ResourceTemplate (){
756      Memory32Fixed (ReadWrite, 0xc4000000 , 0x100000)
757      Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, 0, "\\_SB.MBI9")
758      {
759        722, 723, 724, 725, 726, 727, 728, 729, 730, 731, 732, 733,
760        734, 735, 736, 737, 738, 739, 740, 741, 742, 743, 744, 745,
761        746, 747, 748, 749, 750, 751, 752, 753, 785, 754,
762      }
763    })
764  }
765
766  /* for p1 */
767  Device (DSF1)
768  {
769
770    OperationRegion(H3SR, SystemMemory, 0x400C0000184, 4)
771    Field(H3SR, DWordAcc, NoLock, Preserve) {
772      H3ST, 1,
773      , 31,  //RESERVED
774    }
775    OperationRegion(H4SR, SystemMemory, 0x400C0000194, 4)
776    Field(H4SR, DWordAcc, NoLock, Preserve) {
777      H4ST, 1,
778      , 31,  //RESERVED
779    }
780    // DSAF RESET
781    OperationRegion(DRER, SystemMemory, 0x400C0000A00, 8)
782    Field(DRER, DWordAcc, NoLock, Preserve) {
783      DRTE, 1,
784      , 31,  //RESERVED
785      DRTD, 1,
786      , 31,  //RESERVED
787    }
788    // NT RESET
789    OperationRegion(NRER, SystemMemory, 0x400C0000A08, 8)
790    Field(NRER, DWordAcc, NoLock, Preserve) {
791      NRTE, 1,
792      , 31,  //RESERVED
793      NRTD, 1,
794      , 31,  //RESERVED
795    }
796    // XGE RESET
797    OperationRegion(XRER, SystemMemory, 0x400C0000A10, 8)
798    Field(XRER, DWordAcc, NoLock, Preserve) {
799      XRTE, 31,
800      , 1,    //RESERVED
801      XRTD, 31,
802      , 1,    //RESERVED
803    }
804
805    // GE RESET
806    OperationRegion(GRTR, SystemMemory, 0x400C0000A18, 16)
807    Field(GRTR, DWordAcc, NoLock, Preserve) {
808      GR0E, 30,
809      , 2,    //RESERVED
810      GR0D, 30,
811      , 2,    //RESERVED
812      GR1E, 18,
813      , 14,  //RESERVED
814      GR1D, 18,
815      , 14,  //RESERVED
816    }
817    // PPE RESET
818    OperationRegion(PRTR, SystemMemory, 0x400C0000A48, 8)
819    Field(PRTR, DWordAcc, NoLock, Preserve) {
820      PRTE, 10,
821      , 22,  //RESERVED
822      PRTD, 10,
823      , 22,  //RESERVED
824    }
825
826    // RCB PPE COM RESET
827    OperationRegion(RRTR, SystemMemory, 0x400C0000A88, 8)
828    Field(RRTR, DWordAcc, NoLock, Preserve) {
829      RRTE, 1,
830      , 31,  //RESERVED
831      RRTD, 1,
832      , 31,  //RESERVED
833    }
834
835    // RCB_2X COM RESET
836    OperationRegion(RBTR, SystemMemory, 0x400C0000AC0, 8)
837    Field(RBTR, DWordAcc, NoLock, Preserve) {
838      RBTE, 1,
839      , 31,  //RESERVED
840      RBTD, 1,
841      , 31,  //RESERVED
842    }
843
844    // Hilink access sel cfg reg
845    OperationRegion(HSER, SystemMemory, 0x400C2240008, 0x4)
846    Field(HSER, DWordAcc, NoLock, Preserve) {
847      HSEL, 2,  // hilink_access_sel & hilink_access_wr_pul
848      , 30,    // RESERVED
849    }
850
851    // Serdes
852    OperationRegion(H4LR, SystemMemory, 0x400C2208100, 0x1000)
853    Field(H4LR, DWordAcc, NoLock, Preserve) {
854      H4L0, 16,    // port0
855      , 16,    //RESERVED
856      Offset (0x400),
857      H4L1, 16,    // port1
858      , 16,    //RESERVED
859      Offset (0x800),
860      H4L2, 16,    // port2
861      , 16,    //RESERVED
862      Offset (0xc00),
863      H4L3, 16,    // port3
864      , 16,    //RESERVED
865    }
866    OperationRegion(H3LR, SystemMemory, 0x400C2208900, 0x800)
867    Field(H3LR, DWordAcc, NoLock, Preserve) {
868      H3L2, 16,    // port4
869      , 16,    //RESERVED
870      Offset (0x400),
871      H3L3, 16,    // port5
872      , 16,    //RESERVED
873    }
874
875    Name (_HID, "HISI00B2")
876    Name (_CCA, 1) // Cache-coherent controller
877    Name (_CRS, ResourceTemplate (){
878      QwordMemory (
879        ResourceProducer,
880        PosDecode,
881        MinFixed,
882        MaxFixed,
883        NonCacheable,
884        ReadWrite,
885        0x0, // Granularity
886        0x400c5000000, // Min Base Address
887        0x400c588ffff, // Max Base Address
888        0x0, // Translate
889        0x890000 // Length
890      )
891      QwordMemory (
892        ResourceProducer,
893        PosDecode,
894        MinFixed,
895        MaxFixed,
896        NonCacheable,
897        ReadWrite,
898        0x0, // Granularity
899        0x400c7000000, // Min Base Address
900        0x400c705ffff, // Max Base Address
901        0x0, // Translate
902        0x60000 // Length
903      )
904      Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, 0, "\\_SB.MBI8")
905      {
906        576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588,
907        589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600,
908      }
909      Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, 0, "\\_SB.MBI8")
910      {
911        960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975,
912        976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991,
913        992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007,
914        1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023,
915        1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039,
916        1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055,
917        1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071,
918        1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087,
919        1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103,
920        1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119,
921        1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135,
922        1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151,
923      }
924      Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, 0, "\\_SB.MBI8")
925      {
926        1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167,
927        1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183,
928        1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199,
929        1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215,
930        1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231,
931        1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247,
932        1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263,
933        1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279,
934        1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295,
935        1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311,
936        1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327,
937        1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343,
938      }
939    })
940    Name (_DSD, Package () {
941      ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
942      Package () {
943        Package () {"mode", "6port-16rss"},
944        Package () {"buf-size", 4096},
945        Package () {"desc-num", 1024},
946      }
947    })
948
949    //reset XGE port
950    //Arg0 : XGE port index in dsaf
951    //Arg1 : 0 reset, 1 cancle reset
952    Method(XRST, 2, Serialized) {
953      ShiftLeft (0x2082082, Arg0, Local0)
954      Or (Local0, 0x1, Local0)
955
956      If (LEqual (Arg1, 0)) {
957        Store(Local0, XRTE)
958      } Else  {
959        Store(Local0, XRTD)
960      }
961    }
962
963    //reset XGE core
964    //Arg0 : XGE port index in dsaf
965    //Arg1 : 0 reset, 1 cancle reset
966    Method(XCRT, 2, Serialized) {
967      ShiftLeft (0x2080, Arg0, Local0)
968
969      If (LEqual (Arg1, 0)) {
970        Store(Local0, XRTE)
971      } Else  {
972        Store(Local0, XRTD)
973      }
974    }
975
976    //reset GE port
977    //Arg0 : GE port index in dsaf
978    //Arg1 : 0 reset, 1 cancle reset
979    Method(GRST, 2, Serialized) {
980      If (LLessEqual (Arg0, 5)) {
981        //Service port
982        ShiftLeft (0x2082082, Arg0, Local0)
983        ShiftLeft (0x1, Arg0, Local1)
984
985        If (LEqual (Arg1, 0)) {
986          Store(Local1, GR1E)
987          Store(Local0, GR0E)
988        } Else  {
989          Store(Local0, GR0D)
990          Store(Local1, GR1D)
991        }
992      }
993    }
994
995    //reset PPE port
996    //Arg0 : PPE port index in dsaf
997    //Arg1 : 0 reset, 1 cancle reset
998    Method(PRST, 2, Serialized) {
999      ShiftLeft (0x1, Arg0, Local0)
1000      If (LEqual (Arg1, 0)) {
1001        Store(Local0, PRTE)
1002      } Else  {
1003        Store(Local0, PRTD)
1004      }
1005    }
1006
1007    // Set Serdes Loopback
1008    //Arg0 : port
1009    //Arg1 : 0 disable, 1 enable
1010    Method(SRLP, 2, Serialized) {
1011      ShiftLeft (Arg1, 10, Local0)
1012      Switch (ToInteger(Arg0))
1013      {
1014        case (0x0){
1015          Store (0, HSEL)
1016          Store (H4L0, Local1)
1017          And (Local1, 0xfffffbff, Local1)
1018          Or (Local0, Local1, Local0)
1019          Store (Local0, H4L0)
1020        }
1021        case (0x1){
1022          Store (0, HSEL)
1023          Store (H4L1, Local1)
1024          And (Local1, 0xfffffbff, Local1)
1025          Or (Local0, Local1, Local0)
1026          Store (Local0, H4L1)
1027        }
1028        case (0x2){
1029          Store (0, HSEL)
1030          Store (H4L2, Local1)
1031          And (Local1, 0xfffffbff, Local1)
1032          Or (Local0, Local1, Local0)
1033          Store (Local0, H4L2)
1034        }
1035        case (0x3){
1036          Store (0, HSEL)
1037          Store (H4L3, Local1)
1038          And (Local1, 0xfffffbff, Local1)
1039          Or (Local0, Local1, Local0)
1040          Store (Local0, H4L3)
1041        }
1042        case (0x4){
1043          Store (3, HSEL)
1044          Store (H3L2, Local1)
1045          And (Local1, 0xfffffbff, Local1)
1046          Or (Local0, Local1, Local0)
1047          Store (Local0, H3L2)
1048        }
1049        case (0x5){
1050          Store (3, HSEL)
1051          Store (H3L3, Local1)
1052          And (Local1, 0xfffffbff, Local1)
1053          Or (Local0, Local1, Local0)
1054          Store (Local0, H3L3)
1055        }
1056      }
1057    }
1058
1059    //Reset
1060    //Arg0 : reset type (1: dsaf; 2: ppe; 3:XGE core; 4:XGE; 5:G3)
1061    //Arg1 : port
1062    //Arg2 : 0 disable, 1 enable
1063    Method(DRST, 3, Serialized)
1064    {
1065      Switch (ToInteger(Arg0))
1066      {
1067        //DSAF reset
1068        case (0x1)
1069        {
1070          Store (Arg2, Local0)
1071          If (LEqual (Local0, 0))
1072          {
1073            Store (0x1, DRTE)
1074            Store (0x1, NRTE)
1075            Sleep (10)
1076            Store (0x1, RRTE)
1077            Store (0x1, RBTE)
1078          }
1079          Else
1080          {
1081            Store (0x1, DRTD)
1082            Store (0x1, NRTD)
1083            Sleep (10)
1084            Store (0x1, RRTD)
1085            Store (0x1, RBTD)
1086          }
1087        }
1088        //Reset PPE port
1089        case (0x2)
1090        {
1091          Store (Arg1, Local0)
1092          Store (Arg2, Local1)
1093          PRST (Local0, Local1)
1094        }
1095
1096        //Reset XGE core
1097        case (0x3)
1098        {
1099          Store (Arg1, Local0)
1100          Store (Arg2, Local1)
1101          XCRT (Local0, Local1)
1102        }
1103        //Reset XGE port
1104        case (0x4)
1105        {
1106          Store (Arg1, Local0)
1107          Store (Arg2, Local1)
1108          XRST (Local0, Local1)
1109        }
1110
1111        //Reset GE port
1112        case (0x5)
1113        {
1114          Store (Arg1, Local0)
1115          Store (Arg2, Local1)
1116          GRST (Local0, Local1)
1117        }
1118      }
1119    }
1120
1121    // _DSM Device Specific Method
1122    //
1123    // Arg0: UUID Unique function identifier
1124    // Arg1: Integer Revision Level
1125    // Arg2: Integer Function Index
1126    //   0 : Return Supported Functions bit mask
1127    //   1 : Reset Sequence
1128    //    Arg3[0] : reset type (1:dsaf; 2:ppe; 3:xge core; 4:xge; 5: ge)
1129    //    Arg3[1] : port index in dsaf
1130    //    Arg3[2] : 0 reset, 1 cancle reset
1131    //   2 : Set Serdes Loopback
1132    //    Arg3[0] : port
1133    //    Arg3[1] : 0 disable, 1 enable
1134    //   3 : LED op set
1135    //    Arg3[0] : op type
1136    //    Arg3[1] : port
1137    //    Arg3[2] : para
1138    //   4 : Get port type (GE or XGE)
1139    //    Arg3[0] : port index in dsaf
1140    //    Return : 0 GE, 1 XGE
1141    //   5 : Get sfp status
1142    //    Arg3[0] : port index in dsaf
1143    //    Return : 0 no sfp, 1 have sfp
1144    // Arg3: Package Parameters
1145    Method (_DSM, 4, Serialized)
1146    {
1147      If (LEqual(Arg0,ToUUID("1A85AA1A-E293-415E-8E28-8D690A0F820A")))
1148      {
1149        If (LEqual (Arg1, 0x00))
1150        {
1151          Switch (ToInteger(Arg2))
1152          {
1153            case (0x0)
1154            {
1155              Return (Buffer () {0x3F})
1156            }
1157
1158            //Reset Sequence
1159            case (0x1)
1160            {
1161              Store (DeRefOf (Index (Arg3, 0)), Local0)
1162              Store (DeRefOf (Index (Arg3, 1)), Local1)
1163              Store (DeRefOf (Index (Arg3, 2)), Local2)
1164              DRST (Local0, Local1, Local2)
1165            }
1166
1167            //Set Serdes Loopback
1168            case (0x2)
1169            {
1170              Store (DeRefOf (Index (Arg3, 0)), Local0)
1171              Store (DeRefOf (Index (Arg3, 1)), Local1)
1172              SRLP (Local0, Local1)
1173            }
1174
1175            //LED op set
1176            case (0x3)
1177            {
1178
1179            }
1180
1181            // Get port type (GE or XGE)
1182            case (0x4)
1183            {
1184              Store (0, Local1)
1185              Store (DeRefOf (Index (Arg3, 0)), Local0)
1186              If (LLessEqual (Local0, 3))
1187              {
1188                // mac0: Hilink4 Lane0
1189                // mac1: Hilink4 Lane1
1190                // mac2: Hilink4 Lane2
1191                // mac3: Hilink4 Lane3
1192                Store (H4ST, Local1)
1193              }
1194              ElseIf (LLessEqual (Local0, 5))
1195              {
1196                // mac4: Hilink3 Lane2
1197                // mac5: Hilink3 Lane3
1198                Store (H3ST, Local1)
1199              }
1200
1201              Return (Local1)
1202            }
1203
1204            //Get sfp status
1205            case (0x5)
1206            {
1207
1208            }
1209          }
1210        }
1211      }
1212      Return (Buffer() {0x00})
1213    }
1214
1215    Device (PRT6)
1216    {
1217      Name (_ADR, 0x6)
1218      Name (_DSD, Package () {
1219        ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
1220        Package () {
1221          Package () {"reg", 0},
1222          Package () {"media-type", "fiber"},
1223        }
1224      })
1225    }
1226    Device (PRT7)
1227    {
1228      Name (_ADR, 0x7)
1229      Name (_DSD, Package () {
1230        ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
1231        Package () {
1232          Package () {"reg", 1},
1233          Package () {"media-type", "fiber"},
1234        }
1235      })
1236    }
1237  }
1238
1239  Device (ETH6) {
1240    Name(_HID, "HISI00C2")
1241    Name (_CCA, 1) // Cache-coherent controller
1242    Name (_DSD, Package () {
1243      ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
1244      Package () {
1245        Package () {"local-mac-address", Package () { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }}, // 6-bytes
1246        Package () {"ae-handle", Package (){\_SB.DSF1}},
1247        Package () {"port-idx-in-ae", 0},
1248      }
1249    })
1250    Method (_STA, 0x0, NotSerialized)
1251    {
1252      Return (0)
1253    }
1254  }
1255  Device (ETH7) {
1256    Name(_HID, "HISI00C2")
1257    Name (_CCA, 1) // Cache-coherent controller
1258    Name (_DSD, Package () {
1259      ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
1260      Package () {
1261        Package () {"local-mac-address", Package () { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF }}, // 6-bytes
1262        Package () {"ae-handle", Package (){\_SB.DSF1}},
1263        Package () {"port-idx-in-ae", 1},
1264      }
1265    })
1266    Method (_STA, 0x0, NotSerialized)
1267    {
1268      Return (0)
1269    }
1270  }
1271
1272}
1273