/** @file Differentiated System Description Table Fields (DSDT) Copyright (c) 2014, ARM Ltd. All rights reserved.
Copyright (c) 2015, Hisilicon Limited. All rights reserved.
Copyright (c) 2015, Linaro Limited. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. **/ Scope(_SB) { Device(SAS0) { Name(_HID, "HISI0162") Name(_CCA, 1) Name(_CRS, ResourceTemplate() { Memory32Fixed(ReadWrite, 0xC3000000, 0x10000) Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, 0, "\\_SB.MBI6") { 64,65,66,67,68, 69,70,71,72,73, 74,75,76,77,78, 79,80,81,82,83, 84,85,86,87,88, 89,90,91,92,93, 94,95,96,97,98, 99,100,101,102,103, 104,105,106,107,108, 109,110,111,112,113, 114,115,116,117,118, 119,120,121,122,123, 124,125,126,127,128, 129,130,131,132,133, 134,135,136,137,138, 139,140,141,142,143, 144,145,146,147,148, 149,150,151,152,153, 154,155,156,157,158, 159, } Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, 0, "\\_SB.MBI6" ) { 601,602,603,604, 605,606,607,608,609, 610,611,612,613,614, 615,616,617,618,619, 620,621,622,623,624, 625,626,627,628,629, 630,631,632, } }) Name (_DSD, Package () { ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), Package () { Package () {"interrupt-parent",Package() {\_SB.MBI6}}, Package (2) {"sas-addr", Package() {50, 01, 88, 20, 16, 00, 00, 0x00}}, Package () {"queue-count", 16}, Package () {"phy-count", 8}, } }) OperationRegion (CTL, SystemMemory, 0xC0000000, 0x10000) Field (CTL, AnyAcc, NoLock, Preserve) { Offset (0x338), CLK, 32, CLKD, 32, Offset (0xa60), RST, 32, DRST, 32, Offset (0x5a30), STS, 32, } OperationRegion (PHYS, SystemMemory, 0xC3002000, 0x2000) Field (PHYS, DWordAcc, NoLock, Preserve) { Offset (0x0014), PHY0, 32, Offset (0x0414), PHY1, 32, Offset (0x0814), PHY2, 32, Offset (0x0c14), PHY3, 32, Offset (0x1014), PHY4, 32, Offset (0x1414), PHY5, 32, Offset (0x1814), PHY6, 32, Offset (0x1c14), PHY7, 32, } OperationRegion (SYSR, SystemMemory, 0xD0000000, 0x10000) Field (SYSR, DWordAcc, NoLock, Preserve) { Offset (0xe014), DIE4, 32, } Method (_RST, 0x0, Serialized) { Store(0x7ffff, RST) Store(0x7ffff, CLKD) Sleep(1) Store(0x7ffff, DRST) Store(0x7ffff, CLK) Sleep(1) Store(DIE4, local0) If (LEqual (local0, 0)) { /* 66MHZ */ Store(0x0199B694, Local1) Store(Local1, PHY0) Store(Local1, PHY1) Store(Local1, PHY2) Store(Local1, PHY3) Store(Local1, PHY4) Store(Local1, PHY5) Store(Local1, PHY6) Store(Local1, PHY7) } } } Device(SAS1) { Name(_HID, "HISI0162") Name(_CCA, 1) Name(_CRS, ResourceTemplate() { Memory32Fixed(ReadWrite, 0xA2000000, 0x10000) Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, 0, "\\_SB.MBI1") { 64,65,66,67,68, 69,70,71,72,73, 74,75,76,77,78, 79,80,81,82,83, 84,85,86,87,88, 89,90,91,92,93, 94,95,96,97,98, 99,100,101,102,103, 104,105,106,107,108, 109,110,111,112,113, 114,115,116,117,118, 119,120,121,122,123, 124,125,126,127,128, 129,130,131,132,133, 134,135,136,137,138, 139,140,141,142,143, 144,145,146,147,148, 149,150,151,152,153, 154,155,156,157,158, 159, } Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, 0, "\\_SB.MBI1") { 576,577,578,579,580, 581,582,583,584,585, 586,587,588,589,590, 591,592,593,594,595, 596,597,598,599,600, 601,602,603,604,605, 606,607, } }) Name (_DSD, Package () { ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), Package () { Package () {"interrupt-parent",Package() {\_SB.MBI1}}, Package (2) {"sas-addr", Package() {50, 01, 88, 20, 16, 00, 00, 00}}, Package () {"queue-count", 16}, Package () {"phy-count", 8}, Package () {"hip06-sas-v2-quirk-amt", 1}, } }) OperationRegion (CTL, SystemMemory, 0xA0000000, 0x10000) Field (CTL, AnyAcc, NoLock, Preserve) { Offset (0x318), CLK, 32, CLKD, 32, Offset (0xa18), RST, 32, DRST, 32, Offset (0x5a0c), STS, 32, } OperationRegion (PHYS, SystemMemory, 0xA2002000, 0x2000) Field (PHYS, DWordAcc, NoLock, Preserve) { Offset (0x0014), PHY0, 32, Offset (0x0414), PHY1, 32, Offset (0x0814), PHY2, 32, Offset (0x0c14), PHY3, 32, Offset (0x1014), PHY4, 32, Offset (0x1414), PHY5, 32, Offset (0x1814), PHY6, 32, Offset (0x1c14), PHY7, 32, } OperationRegion (SYSR, SystemMemory, 0xD0000000, 0x10000) Field (SYSR, DWordAcc, NoLock, Preserve) { Offset (0xe014), DIE4, 32, } Method (_RST, 0x0, Serialized) { Store(0x7ffff, RST) Store(0x7ffff, CLKD) Sleep(1) Store(0x7ffff, DRST) Store(0x7ffff, CLK) Sleep(1) Store(DIE4, local0) If (LEqual (local0, 0)) { /* 66MHZ */ Store(0x0199B694, Local1) Store(Local1, PHY0) Store(Local1, PHY1) Store(Local1, PHY2) Store(Local1, PHY3) Store(Local1, PHY4) Store(Local1, PHY5) Store(Local1, PHY6) Store(Local1, PHY7) } } } Device(SAS2) { Name(_HID, "HISI0162") Name(_CCA, 1) Name(_CRS, ResourceTemplate() { Memory32Fixed(ReadWrite, 0xA3000000, 0x10000) Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, 0, "\\_SB.MBI2") { 192,193,194,195,196, 197,198,199,200,201, 202,203,204,205,206, 207,208,209,210,211, 212,213,214,215,216, 217,218,219,220,221, 222,223,224,225,226, 227,228,229,230,231, 232,233,234,235,236, 237,238,239,240,241, 242,243,244,245,246, 247,248,249,250,251, 252,253,254,255,256, 257,258,259,260,261, 262,263,264,265,266, 267,268,269,270,271, 272,273,274,275,276, 277,278,279,280,281, 282,283,284,285,286, 287, } Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, 0, "\\_SB.MBI2") { 608,609,610,611, 612,613,614,615,616, 617,618,619,620,621, 622,623,624,625,626, 627,628,629,630,631, 632,633,634,635,636, 637,638,639, } }) Name (_DSD, Package () { ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"), Package () { Package () {"interrupt-parent",Package() {\_SB.MBI2}}, Package (2) {"sas-addr", Package() {50, 01, 88, 20, 16, 00, 00, 00}}, Package () {"queue-count", 16}, Package () {"phy-count", 9}, } }) OperationRegion (CTL, SystemMemory, 0xA0000000, 0x10000) Field (CTL, AnyAcc, NoLock, Preserve) { Offset (0x3a8), CLK, 32, CLKD, 32, Offset (0xae0), RST, 32, DRST, 32, Offset (0x5a70), STS, 32, } OperationRegion (PHYS, SystemMemory, 0xA3002000, 0x2400) Field (PHYS, DWordAcc, NoLock, Preserve) { Offset (0x0014), PHY0, 32, Offset (0x0414), PHY1, 32, Offset (0x0814), PHY2, 32, Offset (0x0c14), PHY3, 32, Offset (0x1014), PHY4, 32, Offset (0x1414), PHY5, 32, Offset (0x1814), PHY6, 32, Offset (0x1c14), PHY7, 32, offset (0x2014), PHY8, 32, } OperationRegion (SYSR, SystemMemory, 0xD0000000, 0x10000) Field (SYSR, DWordAcc, NoLock, Preserve) { Offset (0xe014), DIE4, 32, } Method (_RST, 0x0, Serialized) { Store(0x7ffff, RST) Store(0x7ffff, CLKD) Sleep(1) Store(0x7ffff, DRST) Store(0x7ffff, CLK) Sleep(1) Store(DIE4, local0) If (LEqual (local0, 0)) { /* 66MHZ */ Store(0x0199B694, Local1) Store(Local1, PHY0) Store(Local1, PHY1) Store(Local1, PHY2) Store(Local1, PHY3) Store(Local1, PHY4) Store(Local1, PHY5) Store(Local1, PHY6) Store(Local1, PHY7) Store(Local1, PHY8) } } } }