Home | History | Annotate | Download | only in AcpiTables
      1 /** @file
      2   Differentiated System Description Table Fields (DSDT)
      3 
      4   Copyright (c) 2014-2015, ARM Ltd. All rights reserved.<BR>
      5     This program and the accompanying materials
      6   are licensed and made available under the terms and conditions of the BSD License
      7   which accompanies this distribution.  The full text of the license may be found at
      8   http://opensource.org/licenses/bsd-license.php
      9 
     10   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     11   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     12 
     13 **/
     14 
     15 #include "ArmPlatform.h"
     16 
     17 DefinitionBlock("DsdtTable.aml", "DSDT", 1, "ARMLTD", "ARM-JUNO", EFI_ACPI_ARM_OEM_REVISION) {
     18   Scope(_SB) {
     19     //
     20     // A57x2-A53x4 Processor declaration
     21     //
     22     Device(CPU0) { // A53-0: Cluster 1, Cpu 0
     23       Name(_HID, "ACPI0007")
     24       Name(_UID, 0)
     25     }
     26     Device(CPU1) { // A53-1: Cluster 1, Cpu 1
     27       Name(_HID, "ACPI0007")
     28       Name(_UID, 1)
     29     }
     30     Device(CPU2) { // A53-2: Cluster 1, Cpu 2
     31       Name(_HID, "ACPI0007")
     32       Name(_UID, 2)
     33     }
     34     Device(CPU3) { // A53-3: Cluster 1, Cpu 3
     35       Name(_HID, "ACPI0007")
     36       Name(_UID, 3)
     37     }
     38     Device(CPU4) { // A57-0: Cluster 0, Cpu 0
     39       Name(_HID, "ACPI0007")
     40       Name(_UID, 4)
     41     }
     42     Device(CPU5) { // A57-1: Cluster 0, Cpu 1
     43       Name(_HID, "ACPI0007")
     44       Name(_UID, 5)
     45     }
     46 
     47     //
     48     // Keyboard and Mouse
     49     //
     50     Device(KMI0) {
     51       Name(_HID, "ARMH0501")
     52       Name(_CID, "PL050_KBD")
     53       Name(_CRS, ResourceTemplate() {
     54               Memory32Fixed(ReadWrite, 0x1C060008, 0x4)
     55               Memory32Fixed(ReadWrite, 0x1C060000, 0x4)
     56               Memory32Fixed(ReadOnly, 0x1C060004, 0x4)
     57               Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 197 }
     58       })
     59     }
     60 
     61     //
     62     // LAN9118 Ethernet
     63     //
     64     Device(ETH0) {
     65       Name(_HID, "ARMH9118")
     66       Name(_UID, Zero)
     67       Name(_CRS, ResourceTemplate() {
     68               Memory32Fixed(ReadWrite, 0x1A000000, 0x1000)
     69               Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 192 }
     70       })
     71       Name(_DSD, Package() {
     72                    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
     73                        Package() {
     74                                Package(2) {"phy-mode", "mii"},
     75                                Package(2) {"reg-io-width", 4 },
     76                                Package(2) {"smsc,irq-active-high",1},
     77                                Package(2) {"smsc,irq-push-pull",1}
     78                       }
     79       }) // _DSD()
     80     }
     81 
     82     // UART PL011
     83     Device(COM0) {
     84       Name(_HID, "ARMH0011")
     85       Name(_CID, "PL011")
     86       Name(_UID, Zero)
     87       Name(_CRS, ResourceTemplate() {
     88         Memory32Fixed(ReadWrite, 0x7FF80000, 0x1000)
     89         Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) { 115 }
     90       })
     91     }
     92 
     93     //
     94     // USB EHCI Host Controller
     95     //
     96     Device(USB0){
     97         Name(_HID, "ARMH0D20")
     98         Name(_CID, "PNP0D20")
     99         Name(_UID, 2)
    100         Name(_CCA, 0) //EHCI on this platform is not coherent!
    101 
    102         Method(_CRS, 0x0, Serialized){
    103             Name(RBUF, ResourceTemplate(){
    104                 Memory32Fixed(ReadWrite, 0x7FFC0000, 0x10000)
    105                 Interrupt(ResourceConsumer, Level, ActiveHigh, Exclusive) {149}  // INT ID=149 GIC IRQ ID=117 for Juno SoC USB EHCI Controller
    106             })
    107             Return(RBUF)
    108         }
    109 
    110         //
    111         // Root Hub
    112         //
    113         Device(RHUB){
    114             Name(_ADR, 0x00000000)  // Address of Root Hub should be 0 as per ACPI 5.0 spec
    115 
    116             //
    117             // Ports connected to Root Hub
    118             //
    119             Device(HUB1){
    120                 Name(_ADR, 0x00000001)
    121                 Name(_UPC, Package(){
    122                     0x00,       // Port is NOT connectable
    123                     0xFF,       // Don't care
    124                     0x00000000, // Reserved 0 must be zero
    125                     0x00000000  // Reserved 1 must be zero
    126                 })
    127 
    128                 Device(PRT1){
    129                     Name(_ADR, 0x00000001)
    130                     Name(_UPC, Package(){
    131                         0xFF,        // Port is connectable
    132                         0x00,        // Port connector is A
    133                         0x00000000,
    134                         0x00000000
    135                     })
    136                     Name(_PLD, Package(){
    137                         Buffer(0x10){
    138                             0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    139                             0x31, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
    140                         }
    141                     })
    142                 } // USB0_RHUB_HUB1_PRT1
    143                 Device(PRT2){
    144                     Name(_ADR, 0x00000002)
    145                     Name(_UPC, Package(){
    146                         0xFF,        // Port is connectable
    147                         0x00,        // Port connector is A
    148                         0x00000000,
    149                         0x00000000
    150                     })
    151                     Name(_PLD, Package(){
    152                         Buffer(0x10){
    153                             0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    154                             0x31, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
    155                         }
    156                     })
    157                 } // USB0_RHUB_HUB1_PRT2
    158 
    159                 Device(PRT3){
    160                     Name(_ADR, 0x00000003)
    161                     Name(_UPC, Package(){
    162                         0xFF,        // Port is connectable
    163                         0x00,        // Port connector is A
    164                         0x00000000,
    165                         0x00000000
    166                     })
    167                     Name(_PLD, Package(){
    168                         Buffer(0x10){
    169                             0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    170                             0x31, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
    171                         }
    172                     })
    173                 } // USB0_RHUB_HUB1_PRT3
    174 
    175                 Device(PRT4){
    176                     Name(_ADR, 0x00000004)
    177                     Name(_UPC, Package(){
    178                         0xFF,        // Port is connectable
    179                         0x00,        // Port connector is A
    180                         0x00000000,
    181                         0x00000000
    182                     })
    183                     Name(_PLD, Package(){
    184                         Buffer(0x10){
    185                             0x81, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    186                             0x31, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
    187                         }
    188                     })
    189                 } // USB0_RHUB_HUB1_PRT4
    190             } // USB0_RHUB_HUB1
    191         } // USB0_RHUB
    192     } // USB0
    193   } // Scope(_SB)
    194 }
    195