Home | History | Annotate | Download | only in QuarkSocPkg
      1 ## @file

      2 # INTEL Quark SoC Module Package Reference Implementations

      3 #

      4 # This Module provides FRAMEWORK reference implementation for INTEL Quark SoC.

      5 # Copyright (c) 2013-2015 Intel Corporation.

      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 
     17 
     18 ################################################################################

     19 #

     20 # Defines Section - statements that will be processed to create a Makefile.

     21 #

     22 ################################################################################

     23 
     24 [Defines]
     25   DEC_SPECIFICATION              = 0x00010005
     26   PACKAGE_NAME                   = QuarkSocPkg
     27   PACKAGE_GUID                   = 28DECF17-6C75-448f-87DC-BDE4BD579919
     28   PACKAGE_VERSION                = 0.1
     29 
     30 
     31 
     32 ################################################################################

     33 #

     34 # Include Section - list of Include Paths that are provided by this package.

     35 #                   Comments are used for Keywords and Module Types.

     36 #

     37 # Supported Module Types:

     38 #  SEC PEIM DXE_DRIVER DXE_RUNTIME_DRIVER DXE_SMM_DRIVER DXE_SAL_DRIVER UEFI_DRIVER BASE

     39 #

     40 ################################################################################

     41 [Includes]
     42   #

     43   # North Cluster

     44   #

     45   QuarkNorthCluster/Include
     46   QuarkNorthCluster/MemoryInit/Pei
     47 
     48   #

     49   # South Cluster

     50   #

     51   QuarkSouthCluster/Include
     52 
     53 ################################################################################

     54 #

     55 # Library Class Header section - list of Library Class header files that are

     56 #                                provided by this package.

     57 #

     58 ################################################################################

     59 [LibraryClasses]
     60   #

     61   # North Cluster

     62   #

     63   QNCAccessLib|QuarkNorthCluster/Include/Library/QNCAccessLib.h
     64   IntelQNCLib|QuarkNorthCluster/Include/Library/IntelQNCLib.h
     65   IohLib|QuarkSouthCluster/Include/Library/IohLib.h
     66   I2cLib|QuarkSouthCluster/Include/Library/I2cLib.h
     67 
     68 ################################################################################

     69 #

     70 # Global Guid Definition section - list of Global Guid C Name Data Structures

     71 #                                  that are provided by this package.

     72 #

     73 ################################################################################

     74 [Guids]
     75   #

     76   # North Cluster

     77   #

     78   gEfiQuarkNcSocIdTokenSpaceGuid  = { 0xca452c6a, 0xdf0c, 0x4dc9, { 0x82, 0xfb, 0xea, 0xe2, 0xab, 0x31, 0x29, 0x46 }}
     79   gQncS3CodeInLockBoxGuid   =  { 0x1f18c5b3, 0x29ed, 0x4d9e, {0xa5, 0x4, 0x6d, 0x97, 0x8e, 0x7e, 0xd5, 0x69}}
     80   gQncS3ContextInLockBoxGuid = { 0xe5769ea9, 0xe706, 0x454b, {0x95, 0x7f, 0xaf, 0xc6, 0xdb, 0x4b, 0x8a, 0xd}}
     81 
     82   #

     83   # South Cluster

     84   #

     85   gEfiQuarkSCSocIdTokenSpaceGuid  = { 0xef251b71, 0xceed, 0x484e, { 0x82, 0xe3, 0x3a, 0x1f, 0x34, 0xf5, 0x12, 0xe2 }}
     86 
     87 ################################################################################

     88 #

     89 # Global Ppi Definition section - list of Global Ppi C Name Data Structures

     90 #                                  that are provided by this package.

     91 #

     92 ################################################################################

     93 [Ppis]
     94   #

     95   # North Cluster

     96   #

     97   gQNCMemoryInitPpiGuid = { 0x21ff1fee, 0xd33a, 0x4fce, { 0xa6, 0x5e, 0x95, 0x5e, 0xa3, 0xc4, 0x1f, 0x40}}
     98 
     99 ################################################################################

    100 #

    101 # Global Protocols Definition section - list of Global Protocols C Name Data

    102 #                                  Structures that are provided by this package.

    103 #

    104 ################################################################################

    105 [Protocols]
    106   #

    107   # North Cluster

    108   #

    109   gEfiPlatformPolicyProtocolGuid = { 0x2977064F, 0xAB96, 0x4FA9, { 0x85, 0x45, 0xF9, 0xC4, 0x02, 0x51, 0xE0, 0x7F }}
    110   gEfiSmmIchnDispatch2ProtocolGuid = { 0xadf3a128, 0x416d, 0x4060, { 0x8d, 0xdf, 0x30, 0xa1, 0xd7, 0xaa, 0xb6, 0x99 }}
    111   gEfiSpiProtocolGuid = { 0x1156efc6, 0xea32, 0x4396, { 0xb5, 0xd5, 0x26, 0x93, 0x2e, 0x83, 0xc3, 0x13 }}
    112   gEfiSmmSpiProtocolGuid  = { 0xD9072C35, 0xEB8F, 0x43ad, { 0xA2, 0x20, 0x34, 0xD4, 0x0E, 0x2A, 0x82, 0x85 }}
    113   gEfiQncS3SupportProtocolGuid  = { 0xe287d20b, 0xd897, 0x4e1e, { 0xa5, 0xd9, 0x97, 0x77, 0x63, 0x93, 0x6a, 0x4 }}
    114 
    115   #

    116   # South Cluster

    117   #

    118   gEfiSDHostIoProtocolGuid = {0xb63f8ec7, 0xa9c9, 0x4472, {0xa4, 0xc0, 0x4d, 0x8b, 0xf3, 0x65, 0xcc, 0x51}}
    119 
    120 ################################################################################

    121 #

    122 # PCD Declarations section - list of all PCDs Declared by this Package

    123 #                            Only this package should be providing the

    124 #                            declaration, other packages should not.

    125 #

    126 ################################################################################

    127 
    128 [PcdsFeatureFlag]
    129   #

    130   # North Cluster

    131   #

    132   gEfiQuarkNcSocIdTokenSpaceGuid.PcdSmbaIoBaseAddressFixed|TRUE|BOOLEAN|0x10000001
    133 
    134   #

    135   # South Cluster

    136   #

    137   gEfiQuarkSCSocIdTokenSpaceGuid.PcdEhciRecoveryEnabled|FALSE|BOOLEAN|0x10000003
    138   gEfiQuarkSCSocIdTokenSpaceGuid.PcdI2CFastModeEnabled|FALSE|BOOLEAN|0x10000005
    139 
    140   #

    141   # Feature Flag equivalent to linux SDHCI_QUIRK_NO_HISPD_BIT to stop

    142   # setting of SD HCI hi_spd_en bit in HOST_CTL register.

    143   #

    144   # Alway TRUE ie high speed enable bit must never

    145   # be set so we stay within SD interface Setup/Hold time.

    146   #

    147   gEfiQuarkSCSocIdTokenSpaceGuid.PcdSdHciQuirkNoHiSpd|TRUE|BOOLEAN|0x10000004
    148 
    149 [PcdsFixedAtBuild]
    150   #

    151   # North Cluster

    152   #

    153 
    154   # Values of Io Port Base Address, MMIO base address and space size.

    155   gEfiQuarkNcSocIdTokenSpaceGuid.PcdPm1blkIoBaseAddress|0x1000|UINT16|0x10000200
    156   gEfiQuarkNcSocIdTokenSpaceGuid.PcdPmbaIoBaseAddress|0x1010|UINT16|0x10000201
    157   gEfiQuarkNcSocIdTokenSpaceGuid.PcdPmbaIoLVL2|0x1014|UINT16|0x10000202
    158 
    159   gEfiQuarkNcSocIdTokenSpaceGuid.PcdGbaIoBaseAddress|0x1080|UINT16|0x10000205
    160   gEfiQuarkNcSocIdTokenSpaceGuid.PcdGpe0blkIoBaseAddress|0x1100|UINT16|0x10000206
    161   gEfiQuarkNcSocIdTokenSpaceGuid.PcdSmbaIoBaseAddress|0x1040|UINT16|0x10000207
    162   gEfiQuarkNcSocIdTokenSpaceGuid.PcdWdtbaIoBaseAddress|0x1140|UINT16|0x10000209
    163 
    164   gEfiQuarkNcSocIdTokenSpaceGuid.PcdRcbaMmioBaseAddress|0xFED1C000|UINT64|0x1000020B
    165   gEfiQuarkNcSocIdTokenSpaceGuid.PcdIoApicBaseAddress|0xFEC00000|UINT64|0x1000020C
    166 
    167   gEfiQuarkNcSocIdTokenSpaceGuid.PcdIoApicSize|0x1000|UINT64|0x1000020D
    168   gEfiQuarkNcSocIdTokenSpaceGuid.PcdRcbaMmioSize|0x4000|UINT64|0x1000020E
    169 
    170   gEfiQuarkNcSocIdTokenSpaceGuid.PcdPciExpressSize|0x02000000|UINT64|0x1000020F
    171   gEfiQuarkNcSocIdTokenSpaceGuid.PcdHpetBaseAddress|0xFED00000|UINT64|0x10000210
    172   gEfiQuarkNcSocIdTokenSpaceGuid.PcdHpetSize|0x400|UINT64|0x10000211
    173   gEfiQuarkNcSocIdTokenSpaceGuid.PcdTSegSize|0x200000|UINT32|0x10000212
    174 
    175   gEfiQuarkNcSocIdTokenSpaceGuid.PcdPciHostBridgeIoBase|0x2000|UINT16|0x10000214
    176   gEfiQuarkNcSocIdTokenSpaceGuid.PcdPciHostBridgeIoSize|0xE000|UINT16|0x10000215
    177   gEfiQuarkNcSocIdTokenSpaceGuid.PcdPciHostBridgeMemory32Base|0x90000000|UINT32|0x1000021B
    178   gEfiQuarkNcSocIdTokenSpaceGuid.PcdPciHostBridgeMemory32Size|0x20000000|UINT32|0x1000021C
    179   gEfiQuarkNcSocIdTokenSpaceGuid.PcdPciHostBridgeMemory64Base|0xB0000000|UINT64|0x1000021D
    180   gEfiQuarkNcSocIdTokenSpaceGuid.PcdPciHostBridgeMemory64Size|0x30000000|UINT64|0x1000021E
    181 
    182   # Values for programming Interrupt Route Configuration Registers:

    183   # Indicates which interrupt routing is connected to the INTA/B/C/D pins reported in the

    184   # "DxIP" register fields. This will be the internal routing, the device interrupt is connected

    185   # to the interrupt controller.

    186   gEfiQuarkNcSocIdTokenSpaceGuid.PcdQuarkAgent0IR|0x0000|UINT16|0x10000223
    187   gEfiQuarkNcSocIdTokenSpaceGuid.PcdQuarkAgent1IR|0x7654|UINT16|0x10000224
    188   gEfiQuarkNcSocIdTokenSpaceGuid.PcdQuarkAgent2IR|0x0000|UINT16|0x10000225
    189   gEfiQuarkNcSocIdTokenSpaceGuid.PcdQuarkAgent3IR|0x3210|UINT16|0x10000226
    190 
    191   gEfiQuarkNcSocIdTokenSpaceGuid.PcdSmmActivationPort|0xb2|UINT16|0x10000232
    192   gEfiQuarkNcSocIdTokenSpaceGuid.PcdSmmDataPort|0xb3|UINT16|0x10000233
    193   gEfiQuarkNcSocIdTokenSpaceGuid.PcdSmmActivationData|0x55|UINT8|0x10000234
    194   gEfiQuarkNcSocIdTokenSpaceGuid.PcdPlatformSmbusAddrNum|0x0|UINT32|0x10000235
    195   gEfiQuarkNcSocIdTokenSpaceGuid.PcdPlatformSmbusAddrTable|0x0|UINT64|0x10000236
    196 
    197   gEfiQuarkNcSocIdTokenSpaceGuid.PcdESramMemorySize|0x00080000|UINT32|0x10000240
    198   gEfiQuarkNcSocIdTokenSpaceGuid.PcdDeviceEnables|0x03|UINT32|0x10000237
    199   gEfiQuarkNcSocIdTokenSpaceGuid.PcdPcieRootPortConfiguration|{0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x02, 0x00}|VOID*|0x10000239
    200   gEfiQuarkNcSocIdTokenSpaceGuid.PcdQuarkMicrocodeFile |{ 0x8B, 0xEA, 0x5E, 0xD7, 0xD2, 0x23, 0xD4, 0x4E, 0xBC, 0x4F, 0x57, 0x51, 0xD4, 0xA1, 0x8D, 0xCF }|VOID*|0x1000023A
    201 
    202   #

    203   # South Cluster

    204   #

    205   gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohI2cMmioBase|0xA001F000|UINT64|0x20000005
    206   gEfiQuarkSCSocIdTokenSpaceGuid.PcdPeiP2PMemoryBaseAddress|0xA0000000|UINT32|0x20000006
    207   gEfiQuarkSCSocIdTokenSpaceGuid.PcdPeiQNCUsbControllerMemoryBaseAddress|0xA0010000|UINT32|0x20000007
    208   gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohGpioMmioBase|0xA0020000|UINT64|0x20000008
    209   gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohMac0MmioBase|0xA0024000|UINT64|0x20000009
    210   gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohMac1MmioBase|0xA0028000|UINT64|0x2000000A
    211 
    212   gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohUartBusNumber|0x00|UINT8|0x20000013
    213   gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohUartDevNumber|0x14|UINT8|0x20000014
    214   gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohUartFunctionNumber|0x5|UINT8|0x20000001
    215   gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohGpioBusNumber|0x00|UINT8|0x20000029
    216   gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohGpioDevNumber|0x15|UINT8|0x2000002A
    217   gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohGpioFunctionNumber|0x2|UINT8|0x2000002B
    218   gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohGpioBarRegister|0x14|UINT8|0x2000002D
    219 
    220 [PcdsDynamic, PcdsDynamicEx]
    221   #

    222   # North Cluster

    223   #

    224   gEfiQuarkNcSocIdTokenSpaceGuid.PcdQncS3CodeInLockBoxAddress|0|UINT64|0x30000026
    225   gEfiQuarkNcSocIdTokenSpaceGuid.PcdQncS3CodeInLockBoxSize|0|UINT64|0x30000027
    226 
    227   ## Intel(R) Quark(TM) Soc X1000 processor MRC Parameters.  Default is for Galileo Gen 2 platform.<BR><BR>

    228   # @Prompt Intel(R) Quark(TM) Soc X1000 processor MRC Parameters.

    229   gEfiQuarkNcSocIdTokenSpaceGuid.PcdMrcParameters|{0x08, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x00, 0x03, 0x00, 0x00, 0x02, 0x00, 0x00, 0x01, 0x01, 0x01, 0x7c, 0x92, 0x00, 0x00, 0x10, 0x27, 0x00, 0x00, 0x10, 0x27, 0x00, 0x00, 0x40, 0x9c, 0x00, 0x00, 0x06}|VOID*|0x40000001
    230 
    231   #

    232   # South Cluster

    233   #

    234   ## MAC0 address for the Ethernet Controller in Intel(R) Quark(TM) Soc X1000 processor.  Default is 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff.<BR><BR>

    235   # @Prompt Ethernet MAC 0 Address.

    236   gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohEthernetMac0|{0xff, 0xff, 0xff, 0xff, 0xff, 0xff}|VOID*|0x50000001
    237 
    238   ## MAC1 address for the Ethernet Controller in Intel(R) Quark(TM) Soc X1000 processor.  Default is 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff.<BR><BR>

    239   # @Prompt Ethernet MAC 1 Address.

    240   gEfiQuarkSCSocIdTokenSpaceGuid.PcdIohEthernetMac1|{0xff, 0xff, 0xff, 0xff, 0xff, 0xff}|VOID*|0x50000002
    241