Home | History | Annotate | Download | only in AcpiTables
      1 /** @file
      2 
      3   Differentiated System Description Table Fields (DSDT)
      4 
      5   Copyright (c) 2014, ARM Ltd. All rights reserved.<BR>
      6   Copyright (c) 2014 - 2016, AMD Inc. All rights reserved.<BR>
      7 
      8   This program and the accompanying materials
      9   are licensed and made available under the terms and conditions of the BSD License
     10   which accompanies this distribution.  The full text of the license may be found at
     11   http://opensource.org/licenses/bsd-license.php
     12 
     13   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     14   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     15 
     16 **/
     17 /**
     18 
     19   Derived from:
     20    ArmPlatformPkg/ArmJunoPkg/AcpiTables/Dsdt.asl
     21 
     22 **/
     23 
     24 DefinitionBlock ("DSDT.aml", "DSDT", 2, "AMDINC", "SEATTLE ", 3)
     25 {
     26     Scope (_SB)
     27     {
     28         Device (CPU0)
     29         {
     30             Name (_HID, "ACPI0007" /* Processor Device */)  // _HID: Hardware ID
     31             Name (_UID, 0x000)  // _UID: Unique ID
     32         }
     33 #if (NUM_CORES > 1)
     34         Device (CPU1)
     35         {
     36             Name (_HID, "ACPI0007" /* Processor Device */)  // _HID: Hardware ID
     37             Name (_UID, 0x001)  // _UID: Unique ID
     38         }
     39 #endif
     40 #if (NUM_CORES > 2)
     41         Device (CPU2)
     42         {
     43             Name (_HID, "ACPI0007" /* Processor Device */)  // _HID: Hardware ID
     44             Name (_UID, 0x100)  // _UID: Unique ID
     45         }
     46 #endif
     47 #if (NUM_CORES > 3)
     48         Device (CPU3)
     49         {
     50             Name (_HID, "ACPI0007" /* Processor Device */)  // _HID: Hardware ID
     51             Name (_UID, 0x101)  // _UID: Unique ID
     52         }
     53 #endif
     54 #if (NUM_CORES > 4)
     55         Device (CPU4)
     56         {
     57             Name (_HID, "ACPI0007" /* Processor Device */)  // _HID: Hardware ID
     58             Name (_UID, 0x200)  // _UID: Unique ID
     59         }
     60 #endif
     61 #if (NUM_CORES > 5)
     62         Device (CPU5)
     63         {
     64             Name (_HID, "ACPI0007" /* Processor Device */)  // _HID: Hardware ID
     65             Name (_UID, 0x201)  // _UID: Unique ID
     66         }
     67 #endif
     68 #if (NUM_CORES > 6)
     69         Device (CPU6)
     70         {
     71             Name (_HID, "ACPI0007" /* Processor Device */)  // _HID: Hardware ID
     72             Name (_UID, 0x300)  // _UID: Unique ID
     73         }
     74 #endif
     75 #if (NUM_CORES > 7)
     76         Device (CPU7)
     77         {
     78             Name (_HID, "ACPI0007" /* Processor Device */)  // _HID: Hardware ID
     79             Name (_UID, 0x301)  // _UID: Unique ID
     80         }
     81 #endif
     82 
     83         Device (AHC0)
     84         {
     85             Name (_HID, "AMDI0600")  // _HID: Hardware ID
     86             Name (_UID, 0x00)  // _UID: Unique ID
     87             Name (_CCA, 0x01)  // _CCA: Cache Coherency Attribute
     88             Name (_CLS, Package (0x03)  // _CLS: Class Code
     89             {
     90                 0x01,
     91                 0x06,
     92                 0x01
     93             })
     94             Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
     95             {
     96                 Memory32Fixed (ReadWrite,
     97                     0xE0300000,         // Address Base (MMIO)
     98                     0x00010000,         // Address Length
     99                     )
    100                 Memory32Fixed (ReadWrite,
    101                     0xE0000078,         // Address Base (SGPIO)
    102                     0x00000001,         // Address Length
    103                     )
    104                 Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) {0x00000183, }
    105             })
    106         }
    107 
    108         Device (AHC1)
    109         {
    110             Name (_HID, "AMDI0600")  // _HID: Hardware ID
    111             Name (_UID, 0x01)  // _UID: Unique ID
    112             Name (_CCA, 0x01)  // _CCA: Cache Coherency Attribute
    113             Name (_CLS, Package (0x03)  // _CLS: Class Code
    114             {
    115                 0x01,
    116                 0x06,
    117                 0x01
    118             })
    119             Method (_STA)
    120             {
    121                  Return (0x0F)
    122             }
    123             Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
    124             {
    125                 Memory32Fixed (ReadWrite,
    126                     0xE0D00000,         // Address Base (MMIO)
    127                     0x00010000,         // Address Length
    128                     )
    129                 Memory32Fixed (ReadWrite,
    130                     0xE000007C,         // Address Base (SGPIO)
    131                     0x00000001,         // Address Length
    132                     )
    133                 Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) {0x00000182, }
    134             })
    135         }
    136 
    137 #if DO_XGBE
    138         Device (ETH0)
    139         {
    140             Name (_HID, "AMDI8001")  // _HID: Hardware ID
    141             Name (_UID, 0x00)  // _UID: Unique ID
    142             Name (_CCA, 0x01)  // _CCA: Cache Coherency Attribute
    143             Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
    144 
    145             {
    146                 Memory32Fixed (ReadWrite,
    147                     0xE0700000,         // Address Base (XGMAC)
    148                     0x00010000,         // Address Length
    149                     )
    150                 Memory32Fixed (ReadWrite,
    151                     0xE0780000,         // Address Base (XPCS)
    152                     0x00080000,         // Address Length
    153                     )
    154                 Memory32Fixed (ReadWrite,
    155                     0xE1240800,         // Address Base (SERDES_RxTx)
    156                     0x00000400,         // Address Length
    157                     )
    158                 Memory32Fixed (ReadWrite,
    159                     0xE1250000,         // Address Base (SERDES_IR_1)
    160                     0x00000060,         // Address Length
    161                     )
    162                 Memory32Fixed (ReadWrite,
    163                     0xE12500F8,         // Address Base (SERDES_IR_2)
    164                     0x00000004,         // Address Length
    165                     )
    166                 Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) {0x00000165, } // XGMAC
    167                 Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, ,, )  {0x0000017A, } // DMA0
    168                 Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, ,, )  {0x0000017B, } // DMA1
    169                 Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, ,, )  {0x0000017C, } // DMA2
    170                 Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, ,, )  {0x0000017D, } // DMA3
    171                 Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) {0x00000163, } // XPCS
    172             })
    173             Name (_DSD, Package (0x02)  // _DSD: Device-Specific Data
    174             {
    175                 ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
    176                 Package ()
    177                 {
    178                     Package (0x02) {"mac-address", Package (0x06) {0x02, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5}},
    179                     Package (0x02) {"phy-mode", "xgmii"},
    180                     Package (0x02) {"amd,speed-set", 0x00},
    181                     Package (0x02) {"amd,dma-freq", 0x0EE6B280},
    182                     Package (0x02) {"amd,ptp-freq",  0x0EE6B280},
    183                     Package (0x02) {"amd,serdes-blwc", Package (0x03) {1, 1, 0}},
    184                     Package (0x02) {"amd,serdes-cdr-rate", Package (0x03) {2, 2, 7}},
    185                     Package (0x02) {"amd,serdes-pq-skew", Package (0x03) {10, 10, 18}},
    186                     Package (0x02) {"amd,serdes-tx-amp", Package (0x03) {15, 15, 10}},
    187                     Package (0x02) {"amd,serdes-dfe-tap-config", Package (0x03) {3, 3, 1}},
    188                     Package (0x02) {"amd,serdes-dfe-tap-enable", Package (0x03) {0, 0, 127}},
    189                     Package (0x02) {"amd,per-channel-interrupt", 0x01}
    190                 }
    191             })
    192         }
    193 
    194         Device (ETH1)
    195         {
    196             Name (_HID, "AMDI8001")  // _HID: Hardware ID
    197             Name (_UID, 0x01)  // _UID: Unique ID
    198             Name (_CCA, 0x01)  // _CCA: Cache Coherency Attribute
    199             Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
    200             {
    201                 Memory32Fixed (ReadWrite,
    202                     0xE0900000,         // Address Base (XGMAC)
    203                     0x00010000,         // Address Length
    204                     )
    205                 Memory32Fixed (ReadWrite,
    206                     0xE0980000,         // Address Base (XPCS)
    207                     0x00080000,         // Address Length
    208                     )
    209                 Memory32Fixed (ReadWrite,
    210                     0xE1240C00,         // Address Base (SERDES_RxTx)
    211                     0x00000400,         // Address Length
    212                     )
    213                 Memory32Fixed (ReadWrite,
    214                     0xE1250080,         // Address Base (SERDES_IR_1)
    215                     0x00000060,         // Address Length
    216                     )
    217                 Memory32Fixed (ReadWrite,
    218                     0xE12500FC,         // Address Base (SERDES_IR_2)
    219                     0x00000004,         // Address Length
    220                     )
    221                 Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) {0x00000164, } // XGMAC
    222                 Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, ,, )  {0x00000175, } // DMA0
    223                 Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, ,, )  {0x00000176, } // DMA1
    224                 Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, ,, )  {0x00000177, } // DMA2
    225                 Interrupt (ResourceConsumer, Edge, ActiveHigh, Exclusive, ,, )  {0x00000178, } // DMA3
    226                 Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) {0x00000162, } // XPCS
    227             })
    228             Name (_DSD, Package (0x02)  // _DSD: Device-Specific Data
    229             {
    230                 ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
    231                 Package ()
    232                 {
    233                     Package (0x02) {"mac-address", Package (0x06) {0x02, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5}},
    234                     Package (0x02) {"phy-mode", "xgmii"},
    235                     Package (0x02) {"amd,speed-set", 0x00},
    236                     Package (0x02) {"amd,dma-freq", 0x0EE6B280},
    237                     Package (0x02) {"amd,ptp-freq",  0x0EE6B280},
    238                     Package (0x02) {"amd,serdes-blwc", Package (0x03) {1, 1, 0}},
    239                     Package (0x02) {"amd,serdes-cdr-rate", Package (0x03) {2, 2, 7}},
    240                     Package (0x02) {"amd,serdes-pq-skew", Package (0x03) {10, 10, 18}},
    241                     Package (0x02) {"amd,serdes-tx-amp", Package (0x03) {15, 15, 10}},
    242                     Package (0x02) {"amd,serdes-dfe-tap-config", Package (0x03) {3, 3, 1}},
    243                     Package (0x02) {"amd,serdes-dfe-tap-enable", Package (0x03) {0, 0, 127}},
    244                     Package (0x02) {"amd,per-channel-interrupt", 0x01}
    245                 }
    246             })
    247         }
    248 #endif  // DO_XGBE
    249 
    250         Device (SPI0)
    251         {
    252             Name (_HID, "AMDI0500")  // _HID: Hardware ID
    253             Name (_UID, 0x00)  // _UID: Unique ID
    254             Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
    255             {
    256                 Memory32Fixed (ReadWrite,
    257                     0xE1020000,         // Address Base
    258                     0x00001000,         // Address Length
    259                     )
    260                 Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) {0x0000016A, }
    261             })
    262         }
    263 
    264         Device (SPI1)
    265         {
    266             Name (_HID, "AMDI0500")  // _HID: Hardware ID
    267             Name (_UID, 0x01)  // _UID: Unique ID
    268             Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
    269             {
    270                 Memory32Fixed (ReadWrite,
    271                     0xE1030000,         // Address Base
    272                     0x00001000,         // Address Length
    273                     )
    274                 Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) {0x00000169, }
    275             })
    276 
    277             Device(SDC0)
    278             {
    279                 Name(_HID, "AMDI0501")  // SD Card/MMC slot
    280                 Name(_CRS, ResourceTemplate()
    281                 {
    282                     SPISerialBus(1,             // DeviceSelection
    283                        PolarityLow,             // DeviceSelectionPolarity
    284                        FourWireMode,            // WireMode
    285                        8,                       // DataBitLength
    286                        ControllerInitiated,     // SlaveMode
    287                        20000000,                // ConnectionSpeed
    288                        ClockPolarityLow,        // ClockPolarity
    289                        ClockPhaseFirst,         // ClockPhase
    290                        "\\SB.SPI1",             // ResourceSource
    291                        0,                       // ResourceSourceIndex
    292                        ResourceConsumer,        // ResourceUsage
    293                     ) // SPISerialBus()
    294 
    295                     // SD Card Detect signal
    296                     GpioInt(Edge, ActiveBoth, ExclusiveAndWake, PullDown, , "\\_SB.GIO1") {6}
    297                 }) // ResourceTemplate()
    298 
    299             } // Device()
    300         }
    301 
    302         Device (COM1)
    303         {
    304             Name (_HID, "AMDI0511")  // _HID: Hardware ID
    305             Name (_CID, "ARMH0011")  // _CID: Compatible ID
    306             Name (_ADR, 0xE1010000)  // _ADR: Address
    307             Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
    308             {
    309                 Memory32Fixed (ReadWrite,
    310                     0xE1010000,         // Address Base
    311                     0x00001000,         // Address Length
    312                     )
    313                 Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) {0x00000168, }
    314             })
    315         }
    316 
    317         Device (GIO0)
    318         {
    319             Name (_HID, "AMDI0400")  // _HID: Hardware ID
    320             Name (_CID, "ARMH0061")  // _CID: Compatible ID
    321             Name (_UID, 0x00)  // _UID: Unique ID
    322             Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
    323             {
    324                 Memory32Fixed (ReadWrite,
    325                     0xE0080000,         // Address Base
    326                     0x00001000,         // Address Length
    327                     )
    328                 Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) {0x00000189, }
    329             })
    330         }
    331 
    332         Device (GIO1)
    333         {
    334             Name (_HID, "AMDI0400")  // _HID: Hardware ID
    335             Name (_CID, "ARMH0061")  // _CID: Compatible ID
    336             Name (_UID, 0x01)  // _UID: Unique ID
    337             Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
    338             {
    339                 Memory32Fixed (ReadWrite,
    340                     0xE1050000,         // Address Base
    341                     0x00001000,         // Address Length
    342                     )
    343                 Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) {0x00000186, }
    344             })
    345         }
    346 
    347         Device (GIO2)
    348         {
    349             Name (_HID, "AMDI0400")  // _HID: Hardware ID
    350             Name (_CID, "ARMH0061")  // _CID: Compatible ID
    351             Name (_UID, 0x02)  // _UID: Unique ID
    352             Method (_STA)
    353             {
    354                  Return (0x0F)
    355             }
    356             Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
    357             {
    358                 Memory32Fixed (ReadWrite,
    359                     0xE0020000,         // Address Base
    360                     0x00001000,         // Address Length
    361                     )
    362                 Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) {0x0000018E, }
    363             })
    364         }
    365 
    366         Device (GIO3)
    367         {
    368             Name (_HID, "AMDI0400")  // _HID: Hardware ID
    369             Name (_CID, "ARMH0061")  // _CID: Compatible ID
    370             Name (_UID, 0x03)  // _UID: Unique ID
    371             Method (_STA)
    372             {
    373                  Return (0x0F)
    374             }
    375             Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
    376             {
    377                 Memory32Fixed (ReadWrite,
    378                     0xE0030000,         // Address Base
    379                     0x00001000,         // Address Length
    380                     )
    381                 Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) {0x0000018D, }
    382             })
    383         }
    384 
    385         Device (I2C0)
    386         {
    387             Name (_HID, "AMDI0510")  // _HID: Hardware ID
    388             Name (_UID, 0x00)  // _UID: Unique ID
    389             Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
    390             {
    391                 Memory32Fixed (ReadWrite,
    392                     0xE1000000,         // Address Base
    393                     0x00001000,         // Address Length
    394                     )
    395                 Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) {0x00000185, }
    396             })
    397 
    398             Method (SSCN, 0, NotSerialized)
    399             {
    400                 Return (Package (0x03)
    401                 {
    402                     0x0430,
    403                     0x04E1,
    404                     0x00
    405                 })
    406             }
    407 
    408             Method (FMCN, 0, NotSerialized)
    409             {
    410                 Return (Package (0x03)
    411                 {
    412                     0x00DE,
    413                     0x018F,
    414                     0x00
    415                 })
    416             }
    417         }
    418 
    419         Device (I2C1)
    420         {
    421             Name (_HID, "AMDI0510")  // _HID: Hardware ID
    422             Name (_UID, 0x01)  // _UID: Unique ID
    423             Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
    424             {
    425                 Memory32Fixed (ReadWrite,
    426                     0xE0050000,         // Address Base
    427                     0x00001000,         // Address Length
    428                     )
    429                 Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) {0x00000174, }
    430             })
    431 
    432             Method (SSCN, 0, NotSerialized)
    433             {
    434                 Return (Package (0x03)
    435                 {
    436                     0x0430,
    437                     0x04E1,
    438                     0x00
    439                 })
    440             }
    441 
    442             Method (FMCN, 0, NotSerialized)
    443             {
    444                 Return (Package (0x03)
    445                 {
    446                     0x00DE,
    447                     0x018F,
    448                     0x00
    449                 })
    450             }
    451         }
    452 
    453         Device (CCP0)
    454         {
    455             Name (_HID, "AMDI0C00")  // _HID: Hardware ID
    456             Name (_CCA, 0x01)  // _CCA: Cache Coherency Attribute
    457             Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource Settings
    458             {
    459                 Memory32Fixed (ReadWrite,
    460                     0xE0100000,         // Address Base
    461                     0x00010000,         // Address Length
    462                     )
    463                 Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive, ,, ) {0x00000023, }
    464             })
    465 
    466             Name (_DSD, Package (0x02)  // _DSD: Device-Specific Data
    467             {
    468                 ToUUID ("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
    469                 Package ()
    470                 {
    471                     Package (0x02) {"amd,zlib-support", 1}
    472                 }
    473             })
    474         }
    475 
    476 #if DO_KCS
    477         //
    478         // IPMI/KCS
    479         //
    480         Device (KCS0)
    481         {
    482             Name (_HID, "AMDI0300")
    483             Name (_CID, "IPI0001")
    484             Name (_STR, Unicode("IPMI_KCS"))
    485             Name (_UID, 0)
    486             Name (_CRS, ResourceTemplate() {
    487                 Memory32Fixed(ReadWrite, 0xE0010000, 0x1) // KCS Data In/Out
    488                 Memory32Fixed(ReadWrite, 0xE0010004, 0x1) // KCS Control/Status
    489                 Interrupt (ResourceConsumer, Level, ActiveHigh, Exclusive,,,) { 421 } // GSIV
    490             })
    491             Method (_IFT) {     // Interface Type
    492                 Return ( 0x01)   // IPMI KCS
    493             }
    494 
    495             Method (_SRV) {     // Spec Revision
    496                 Return (0x200)  // IPMI Spec v2.0
    497             }
    498         }
    499 #endif // DO_KCS
    500 
    501         //
    502         // PCIe Root Bus
    503         //
    504         Device (PCI0)
    505         {
    506             Name (_HID, "PNP0A08" /* PCI Express Bus */)  // _HID: Hardware ID
    507             Name (_CID, "PNP0A03" /* PCI Bus */)  // _CID: Compatible ID
    508             Name (_SEG, 0x00)  // _SEG: PCI Segment
    509             Name (_BBN, 0x00)  // _BBN: BIOS Bus Number
    510             Name (_CCA, 0x01)  // _CCA: Cache Coherency Attribute
    511             Name (_PRT, Package (0x04)  // _PRT: PCI Routing Table
    512             {
    513                 Package (0x04)
    514                 {
    515                     0xFFFF,
    516                     0x00,
    517                     0x00,
    518                     0x0140
    519                 },
    520 
    521                 Package (0x04)
    522                 {
    523                     0xFFFF,
    524                     0x01,
    525                     0x00,
    526                     0x0141
    527                 },
    528 
    529                 Package (0x04)
    530                 {
    531                     0xFFFF,
    532                     0x02,
    533                     0x00,
    534                     0x0142
    535                 },
    536 
    537                 Package (0x04)
    538                 {
    539                     0xFFFF,
    540                     0x03,
    541                     0x00,
    542                     0x0143
    543                 }
    544             }) // _PRT
    545 
    546             Method (_CRS, 0, Serialized)  // _CRS: Current Resource Settings
    547             {
    548                 Name (RBUF, ResourceTemplate ()
    549                 {
    550                     WordBusNumber (ResourceProducer, MinFixed, MaxFixed, PosDecode,
    551                         0x0000,             // Granularity
    552                         0x0000,             // Range Minimum
    553                         0x007F,             // Range Maximum
    554                         0x0000,             // Translation Offset
    555                         0x0080,             // Length
    556                         )
    557                     DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
    558                         0x00000000,         // Granularity
    559                         0x40000000,         // Range Minimum
    560                         0x5FFFFFFF,         // Range Maximum
    561                         0x00000000,         // Translation Offset
    562                         0x20000000          // Length
    563                         )
    564                     DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
    565                         0x00000000,         // Granularity
    566                         0x60000000,         // Range Minimum
    567                         0x7FFFFFFF,         // Range Maximum
    568                         0x00000000,         // Translation Offset
    569                         0x20000000          // Length
    570                         )
    571                     DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
    572                         0x00000000,         // Granularity
    573                         0x80000000,         // Range Minimum
    574                         0x9FFFFFFF,         // Range Maximum
    575                         0x00000000,         // Translation Offset
    576                         0x20000000          // Length
    577                         )
    578                     DWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
    579                         0x00000000,         // Granularity
    580                         0xA0000000,         // Range Minimum
    581                         0xBFFFFFFF,         // Range Maximum
    582                         0x00000000,         // Translation Offset
    583                         0x20000000          // Length
    584                         )
    585                     QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
    586                         0x0000000000000000, // Granularity
    587                         0x0000000100000000, // Range Minimum
    588                         0x00000001FFFFFFFF, // Range Maximum
    589                         0x0000000000000000, // Translation Offset
    590                         0x0000000100000000  // Length
    591                         )
    592                     QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
    593                         0x0000000000000000, // Granularity
    594                         0x0000000200000000, // Range Minimum
    595                         0x00000003FFFFFFFF, // Range Maximum
    596                         0x0000000000000000, // Translation Offset
    597                         0x0000000200000000  // Length
    598                         )
    599                     QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
    600                         0x0000000000000000, // Granularity
    601                         0x0000000400000000, // Range Minimum
    602                         0x00000007FFFFFFFF, // Range Maximum
    603                         0x0000000000000000, // Translation Offset
    604                         0x0000000400000000  // Length
    605                         )
    606                     QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
    607                         0x0000000000000000, // Granularity
    608                         0x0000000800000000, // Range Minimum
    609                         0x0000000FFFFFFFFF, // Range Maximum
    610                         0x0000000000000000, // Translation Offset
    611                         0x0000000800000000  // Length
    612                         )
    613                     QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
    614                         0x0000000000000000, // Granularity
    615                         0x0000001000000000, // Range Minimum
    616                         0x0000001FFFFFFFFF, // Range Maximum
    617                         0x0000000000000000, // Translation Offset
    618                         0x0000001000000000  // Length
    619                         )
    620                     QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
    621                         0x0000000000000000, // Granularity
    622                         0x0000002000000000, // Range Minimum
    623                         0x0000003FFFFFFFFF, // Range Maximum
    624                         0x0000000000000000, // Translation Offset
    625                         0x0000002000000000  // Length
    626                         )
    627                     QWordMemory (ResourceProducer, PosDecode, MinFixed, MaxFixed, NonCacheable, ReadWrite,
    628                         0x0000000000000000, // Granularity
    629                         0x0000004000000000, // Range Minimum
    630                         0x0000007FFFFFFFFF, // Range Maximum
    631                         0x0000000000000000, // Translation Offset
    632                         0x0000004000000000  // Length
    633                         )
    634                     DWordIo (ResourceProducer, MinFixed, MaxFixed, PosDecode, EntireRange,
    635                         0x00000000,         // Granularity
    636                         0x00000000,         // Range Minimum
    637                         0x0000FFFF,         // Range Maximum
    638                         0xEFFF0000,         // Translation Address
    639                         0x00010000,         // Length
    640                         ,
    641                         ,
    642                         ,
    643                         TypeTranslation
    644                         )
    645                 })
    646                 Return (RBUF) /* \_SB_.PCI0._CRS.RBUF */
    647             } // Method(_CRS)
    648 
    649             Device (RES0)
    650             {
    651                 Name (_HID, "PNP0C02")
    652                 Name (_CRS, ResourceTemplate ()
    653                 {
    654                     Memory32Fixed (ReadWrite, 0xF0000000, 0x8000000)
    655                 })
    656             }
    657             Name (SUPP, 0x00)
    658             Name (CTRL, 0x00)
    659             Method (_OSC, 4, NotSerialized)  // _OSC: Operating System Capabilities
    660             {
    661                 CreateDWordField (Arg3, 0x00, CDW1)
    662                 If (LEqual (Arg0, ToUUID ("33db4d5b-1ff7-401c-9657-7441c03dd766") /* PCI Host Bridge Device */))
    663                 {
    664                     CreateDWordField (Arg3, 0x04, CDW2)
    665                     CreateDWordField (Arg3, 0x08, CDW3)
    666                     Store (CDW2, SUPP) /* \_SB_.PCI0.SUPP */
    667                     Store (CDW3, CTRL) /* \_SB_.PCI0.CTRL */
    668                     If (LNotEqual (And (SUPP, 0x16), 0x16))
    669                     {
    670                         And (CTRL, 0x1E, CTRL) /* \_SB_.PCI0.CTRL */
    671                     }
    672 
    673                     And (CTRL, 0x1D, CTRL) /* \_SB_.PCI0.CTRL */
    674                     If (LNotEqual (Arg1, One))
    675                     {
    676                         Or (CDW1, 0x08, CDW1) /* \_SB_.PCI0._OSC.CDW1 */
    677                     }
    678 
    679                     If (LNotEqual (CDW3, CTRL))
    680                     {
    681                         Or (CDW1, 0x10, CDW1) /* \_SB_.PCI0._OSC.CDW1 */
    682                     }
    683 
    684                     Store (CTRL, CDW3) /* \_SB_.PCI0._OSC.CDW3 */
    685                     Return (Arg3)
    686                 }
    687                 Else
    688                 {
    689                     Or (CDW1, 0x04, CDW1) /* \_SB_.PCI0._OSC.CDW1 */
    690                     Return (Arg3)
    691                 }
    692             } // Method(_OSC)
    693 
    694             //
    695             // Device-Specific Methods
    696             //
    697             Method(_DSM, 0x4, NotSerialized) {
    698               If (LEqual(Arg0, ToUUID("E5C937D0-3553-4d7a-9117-EA4D19C3434D"))) {
    699                 switch (ToInteger(Arg2)) {
    700                   //
    701                   // Function 0: Return supported functions
    702                   //
    703                   case(0) {
    704                     Return (Buffer() {0xFF})
    705                   }
    706 
    707                   //
    708                   // Function 1: Return PCIe Slot Information
    709                   //
    710                   case(1) {
    711                     Return (Package(2) {
    712                       One, // Success
    713                       Package(3) {
    714                         0x1,  // x1 PCIe link
    715                         0x1,  // PCI express card slot
    716                         0x1   // WAKE# signal supported
    717                       }
    718                     })
    719                   }
    720 
    721                   //
    722                   // Function 2: Return PCIe Slot Number.
    723                   //
    724                   case(2) {
    725                     Return (Package(1) {
    726                       Package(4) {
    727                         2,  // Source ID
    728                         4,  // Token ID: ID refers to a slot
    729                         0,  // Start bit of the field to use.
    730                         7   // End bit of the field to use.
    731                       }
    732                     })
    733                   }
    734 
    735                   //
    736                   // Function 3: Return Vendor-specific Token ID Strings.
    737                   //
    738                   case(3) {
    739                     Return (Package(0) {})
    740                   }
    741 
    742                   //
    743                   // Function 4: Return PCI Bus Capabilities
    744                   //
    745                   case(4) {
    746                     Return (Package(2) {
    747                       One, // Success
    748                       Buffer() {
    749                         1,0,            // Version
    750                         0,0,            // Status, 0:Success
    751                         24,0,0,0,       // Length
    752                         1,0,            // PCI
    753                         16,0,           // Length
    754                         0,              // Attributes
    755                         0x0D,           // Current Speed/Mode
    756                         0x3F,0,         // Supported Speeds/Modes
    757                         0,              // Voltage
    758                         0,0,0,0,0,0,0   // Reserved
    759                       }
    760                     })
    761                   }
    762 
    763                   //
    764                   // Function 5: Return Ignore PCI Boot Configuration
    765                   //
    766                   case(5) {
    767                     Return (Package(1) {1})
    768                   }
    769 
    770                   //
    771                   // Function 6: Return LTR Maximum Latency
    772                   //
    773                   case(6) {
    774                     Return (Package(4) {
    775                       Package(1){0},  // Maximum Snoop Latency Scale
    776                       Package(1){0},  // Maximum Snoop Latency Value
    777                       Package(1){0},  // Maximum No-Snoop Latency Scale
    778                       Package(1){0}   // Maximum No-Snoop Latency Value
    779                     })
    780                   }
    781 
    782                   //
    783                   // Function 7: Return PCI Express Naming
    784                   //
    785                   case(7) {
    786                     Return (Package(2) {
    787                       Package(1) {0},
    788                       Package(1) {Unicode("PCI0")}
    789                     })
    790                   }
    791 
    792                   //
    793                   // Not supported
    794                   //
    795                   default {
    796                   }
    797                 }
    798               }
    799               Return (Buffer(){0})
    800             } // Method(_DSM)
    801 
    802             //
    803             // Root-Complex 0
    804             //
    805             Device (RP0)
    806             {
    807                 Name (_ADR, 0xF0000000)  // _ADR: Bus 0, Dev 0, Func 0
    808             }
    809         }
    810     }
    811 }
    812 
    813