Home | History | Annotate | Download | only in Guid
      1 /*++
      2 
      3   Copyright (c) 2004  - 2014, Intel Corporation. All rights reserved.<BR>
      4 
      5   This program and the accompanying materials are licensed and made available under
      7   the terms and conditions of the BSD License that accompanies this distribution.
      9   The full text of the license may be found at
     11   http://opensource.org/licenses/bsd-license.php.
     13 
     15   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     17   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     19 
     21 
     23 
     24 Module Name:
     25 
     26     BoardFeatures.h
     27 
     28 Abstract:
     29 
     30     EFI Platform Board Features
     31 
     32 
     33 
     34 --*/
     35 
     36 #ifndef BoardFeatures_h_included
     37 #define BoardFeatures_h_included
     38 
     39 #include <Base.h>
     40 
     41 #pragma pack(1)
     42 
     43 //
     44 // Board Features
     45 //
     46 #if defined LEGACY_BOARD_FEATURES && LEGACY_BOARD_FEATURES
     47 #define B_BOARD_FEATURES_CHIPSET_LAN           BIT0
     48 #define B_BOARD_FEATURES_LAN_MARVELL           BIT1
     49 #define B_BOARD_FEATURES_AA_NOT_FOUND           BIT2
     50 #define B_BOARD_FEATURES_SIO_NO_COM1           BIT3
     51 #define B_BOARD_FEATURES_SIO_COM2              BIT4
     52 #define B_BOARD_FEATURES_SIO_NO_PARALLEL       BIT5
     53 #define B_BOARD_FEATURES_CHIPSET_VIDEO         BIT6
     54 #define B_BOARD_FEATURES_CHIPSET_VIDEO_OPTION0 BIT7
     55 #define B_BOARD_FEATURES_VIDEO_SLOT            BIT8
     56 #define B_BOARD_FEATURES_MINI_CARD             BIT9
     57 #define B_BOARD_FEATURES_DISCRETE_1394         BIT10
     58 #define B_BOARD_FEATURES_LEGACY_FREE           BIT11
     59 #define B_BOARD_FEATURES_USB_HUB               BIT12
     60 #define B_BOARD_FEATURES_TPM                   BIT13
     61 #define B_BOARD_FEATURES_VIIV                   BIT14
     62 #define B_BOARD_FEATURES_FORM_FACTOR_MASK      (BIT15|BIT16|BIT17|BIT18|BIT19)
     63 #define B_BOARD_FEATURES_FORM_FACTOR_PBTX      BIT15
     64 #define B_BOARD_FEATURES_FORM_FACTOR_ATX       BIT16
     65 #define B_BOARD_FEATURES_FORM_FACTOR_BTX       BIT17
     66 #define B_BOARD_FEATURES_FORM_FACTOR_MICRO_ATX BIT18
     67 #define B_BOARD_FEATURES_FORM_FACTOR_MICRO_BTX BIT19
     68 #define B_BOARD_FEATURES_MEMORY_TYPE_DDR1      BIT20
     69 #define B_BOARD_FEATURES_MEMORY_TYPE_DDR2      BIT21
     70 #define B_BOARD_FEATURES_MEMORY_SLOT_MASK      BIT23 | BIT22
     71 #define   V_BOARD_FEATURES_1_MEMORY_SLOT         0              // BIT22=0, BIT23=0
     72 #define   V_BOARD_FEATURES_2_MEMORY_SLOT         BIT22          // BIT22=1, BIT23=0
     73 #define   V_BOARD_FEATURES_3_MEMORY_SLOT         BIT23          // BIT22=0, BIT23=1
     74 #define   V_BOARD_FEATURES_4_MEMORY_SLOT         BIT23 | BIT22  // BIT22=1, BIT23=1
     75 #define B_BOARD_FEATURES_ALT_MEM_CLK_RT         BIT24
     76 #define B_BOARD_FEATURES_SLEEP_MASK            BIT25
     77 #define   V_BOARD_FEATURES_SLEEP_S1              0              // BIT25=0
     78 #define   V_BOARD_FEATURES_SLEEP_S3              BIT25          // BIT25=1
     79 #define B_BOARD_FEATURES_3JACK_AUDIO_SOLUTION    BIT26          // 0/1= 5/3 Rear Jacks
     80 #define B_BOARD_FEATURES_DISCRETE_SATA         BIT27
     81 #define B_BOARD_FEATURES_2_SATA               BIT28    // 2SATA instead of 4(pre Ich8) or 4 SATA instead of 6(Ich8)
     82 #define B_BOARD_FEATURES_RVP                  BIT29    // Board is an RVP board
     83 #define B_BOARD_FEATURES_PORT80_LPC           BIT30    // Port80 PCI(0) or LPC(1)
     84 #define B_BOARD_FEATURES_LIMITED_CPU_SUPPORT  BIT31    // Limited CPU support
     85 #define B_BOARD_FEATURES_PMP_SUPPORT          BIT32    // Support for over-voltaging memory
     86 #define B_BOARD_FEATURES_HW_WATCHDOG_TIMER    BIT33    // Support for the HW-based 555 Watchdog Timer feature
     87 #define B_BOARD_FEATURES_NO_QRT               BIT34    // disable QRT
     88 #define B_BOARD_FEATURES_VERB_TABLE1          BIT35    // Verb table 1
     89 #define B_BOARD_FEATURES_VERB_TABLE2          BIT36    // Verb table 2
     90 #define B_BOARD_FEATURES_VERB_TABLE3          BIT37    // Verb table 3
     91 #define B_BOARD_FEATURES_VERB_TABLE4          BIT38    // Verb table 4
     92 #define B_BOARD_FEATURES_VERB_TABLE5          BIT39    // Reserved for Verb table 5
     93 #define B_BOARD_FEATURES_VERB_TABLE_MASK      BIT35 | BIT36 | BIT37 | BIT38 | BIT39
     94 #define B_BOARD_FEATURES_KENTSFIELD_BLOCK     BIT40    // Kentsfield not supported
     95 #define B_BOARD_FEATURES_KENTSFIELD_WARNING   BIT41    // Kentsfield warning
     96 #define B_BOARD_FEATURES_ESATA_PORT0          BIT42    // E-SATA on Port0
     97 #define B_BOARD_FEATURES_ESATA_PORT1          BIT43    // E-SATA on Port1
     98 #define B_BOARD_FEATURES_ESATA_PORT2          BIT44    // E-SATA on Port2
     99 #define B_BOARD_FEATURES_ESATA_PORT3          BIT45    // E-SATA on Port3
    100 #define B_BOARD_FEATURES_ESATA_PORT4          BIT46    // E-SATA on Port4
    101 #define B_BOARD_FEATURES_ESATA_PORT5          BIT47    // E-SATA on Port5
    102 #define B_BOARD_FEATURES_ECIR                 BIT48    // Enhanced Consumer IR
    103 #define B_BOARD_FEATURES_PS2WAKEFROMS5        BIT49    // Wake from S5 via PS2 keyboard
    104 #define B_BOARD_FEATURES_HDAUDIOLINK          BIT50    // HD audio link support
    105 #define B_BOARD_FEATURES_1_PATA               BIT51
    106 #define B_BOARD_FEATURES_MOBILE               BIT52
    107 #define B_BOARD_FEATURES_NO_FLOPPY            BIT53
    108 #define B_BOARD_FEATURES_DISABLE_UNUSED_FSB   BIT54
    109 
    110 //
    111 // Bit 55-58 reserved by PSID support.  CPU power requirement below are preliminary.
    112 // They might be changed.
    113 // This is not same as 8.6.1 products so be careful.
    114 //
    115 #define B_BOARD_FEATURES_CPU_POWER_BITNUM     55
    116 #define B_BOARD_FEATURES_CPU_POWER_MASK       (BIT55 | BIT56 | BIT57 | BIT58)
    117 #define B_BOARD_FEATURES_CPU_POWER_35W        0     // Theoretically doesn't exist.
    118 #define B_BOARD_FEATURES_CPU_POWER_40W        BIT55 // 0001
    119 #define B_BOARD_FEATURES_CPU_POWER_45W        BIT56 // 0010
    120 #define B_BOARD_FEATURES_CPU_POWER_50W        (BIT55 | BIT56) // 0011
    121 #define B_BOARD_FEATURES_CPU_POWER_65W        BIT57 // 0100 Wolfdale-H/-M
    122 #define B_BOARD_FEATURES_CPU_POWER_70W        (BIT55 | BIT57) // 0101
    123 #define B_BOARD_FEATURES_CPU_POWER_75W        (BIT56 | BIT57) // 0110
    124 #define B_BOARD_FEATURES_CPU_POWER_80W        (BIT55 | BIT56 | BIT57) // 0111
    125 #define B_BOARD_FEATURES_CPU_POWER_95W        BIT58 // 1000 Yorkfield
    126 #define B_BOARD_FEATURES_CPU_POWER_100W       (BIT55 | BIT58) // 1001
    127 #define B_BOARD_FEATURES_CPU_POWER_105W       (BIT56 | BIT58) // 1010
    128 #define B_BOARD_FEATURES_CPU_POWER_110W       (BIT55 | BIT56 | BIT58) // 1011
    129 #define B_BOARD_FEATURES_CPU_POWER_130W       (BIT57 | BIT58) // 1100 XE Yorkfield
    130 #define B_BOARD_FEATURES_CPU_POWER_135W       (BIT55 | BIT57 | BIT58) // 1101
    131 #define B_BOARD_FEATURES_CPU_POWER_Over135W   (BIT56 | BIT57 | BIT58) // 1110 Reserved
    132 #define B_BOARD_FEATURES_CPU_POWER_140W       (BIT55 | BIT56 | BIT57 | BIT58) // 1111 Reserved
    133 #define B_VV_BOARD_FEATURES                    BIT59
    134 #define B_BOARD_FEATURES_IDCC2_SUPPORT         BIT60 // Include IDCC2 support
    135 #define B_BOARD_FEATURES_NO_SATA_PORT2_3       BIT61 // No SATA Port2&3 Connector, used with B_BOARD_FEATURES_2_SATA flag
    136 #define B_BOARD_FEATURES_FORM_FACTOR_MINI_ITX  BIT62
    137 #define B_BOARD_FEATURES_NPI_QPI_VOLTAGE       BIT63
    138 
    139 #else
    140 
    141 #define B_BOARD_FEATURES_CHIPSET_LAN              BIT0
    142 #define B_BOARD_FEATURES_CHIPSET_VIDEO            BIT1
    143 #define B_BOARD_FEATURES_VIDEO_SLOT               BIT2
    144 #define B_BOARD_FEATURES_AA_NOT_FOUND             BIT3
    145 #define B_BOARD_FEATURES_SIO_NO_COM1              BIT4
    146 #define B_BOARD_FEATURES_SIO_COM2                 BIT5
    147 #define B_BOARD_FEATURES_SIO_NO_PARALLEL          BIT6
    148 #define B_BOARD_FEATURES_NO_FLOPPY                BIT7
    149 #define B_BOARD_FEATURES_PS2WAKEFROMS5            BIT8             // Wake from S5 via PS2 keyboard
    150 #define B_BOARD_FEATURES_ECIR                     BIT9             // Enhanced Consumer IR
    151 #define B_BOARD_FEATURES_LEGACY_FREE              BIT10
    152 #define B_BOARD_FEATURES_MINI_CARD                BIT11
    153 #define B_BOARD_FEATURES_DISCRETE_1394            BIT12
    154 #define B_BOARD_FEATURES_USB_HUB                  BIT13
    155 #define B_BOARD_FEATURES_TPM                      BIT14
    156 #define B_BOARD_FEATURES_FORM_FACTOR_MASK         (BIT15|BIT16|BIT17|BIT18|BIT19|BIT20)
    157 #define B_BOARD_FEATURES_FORM_FACTOR_PBTX         BIT15
    158 #define B_BOARD_FEATURES_FORM_FACTOR_ATX          BIT16
    159 #define B_BOARD_FEATURES_FORM_FACTOR_BTX          BIT17
    160 #define B_BOARD_FEATURES_FORM_FACTOR_MICRO_ATX    BIT18
    161 #define B_BOARD_FEATURES_FORM_FACTOR_MICRO_BTX    BIT19
    162 #define B_BOARD_FEATURES_FORM_FACTOR_MINI_ITX     BIT20
    163 #define B_BOARD_FEATURES_MEMORY_TYPE_DDR2         BIT21
    164 #define B_BOARD_FEATURES_MEMORY_TYPE_DDR3         BIT22
    165 #define B_BOARD_FEATURES_MEMORY_SLOT_MASK         (BIT24 | BIT23)
    166 #define   V_BOARD_FEATURES_1_MEMORY_SLOT            0              // BIT23=0, BIT24=0
    167 #define   V_BOARD_FEATURES_2_MEMORY_SLOT          BIT23            // BIT23=1, BIT24=0
    168 #define   V_BOARD_FEATURES_3_MEMORY_SLOT          BIT24            // BIT23=0, BIT24=1
    169 #define   V_BOARD_FEATURES_4_MEMORY_SLOT          (BIT24 | BIT23)  // BIT23=1, BIT24=1
    170 #define B_BOARD_FEATURES_2_C0_MEMORY_SLOT         BIT25            // 2 Channel 0 memory slot
    171 #define B_BOARD_FEATURES_SLEEP_MASK               BIT26
    172 #define   V_BOARD_FEATURES_SLEEP_S1                 0              // BIT26=0
    173 #define   V_BOARD_FEATURES_SLEEP_S3               BIT26            // BIT26=1
    174 #define B_BOARD_FEATURES_3JACK_AUDIO_SOLUTION     BIT27            // 0/1= 5/3 Rear Jacks
    175 #define B_BOARD_FEATURES_HDAUDIOLINK              BIT28            // HD audio link support
    176 #define B_BOARD_FEATURES_DISCRETE_SATA            BIT29
    177 #define B_BOARD_FEATURES_2_SATA                   BIT30            // 2SATA instead of 4(pre Ich8) or 4 SATA instead of 6(Ich8)
    178 #define B_BOARD_FEATURES_NO_SATA_PORT2_3          BIT31            // No SATA Port2&3 Connector, used with B_BOARD_FEATURES_2_SATA flag
    179 #define B_BOARD_FEATURES_RVP                      BIT32            // Board is an RVP board
    180 #define B_BOARD_FEATURES_ESATA_PORT0              BIT33            // E-SATA on Port0
    181 #define B_BOARD_FEATURES_ESATA_PORT1              BIT34            // E-SATA on Port1
    182 #define B_BOARD_FEATURES_ESATA_PORT2              BIT35            // E-SATA on Port2
    183 #define B_BOARD_FEATURES_ESATA_PORT3              BIT36            // E-SATA on Port3
    184 #define B_BOARD_FEATURES_ESATA_PORT4              BIT37            // E-SATA on Port4
    185 #define B_BOARD_FEATURES_ESATA_PORT5              BIT38            // E-SATA on Port5
    186 #define B_BOARD_FEATURES_IDCC2_SUPPORT            BIT39            // Include IDCC2 support
    187 #define B_BOARD_FEATURES_NPI_QPI_VOLTAGE          BIT40
    188 #define B_BOARD_FEATURES_LIMITED_CPU_SUPPORT      BIT41            // Limited CPU support
    189 #define B_BOARD_FEATURES_PMP_SUPPORT              BIT42            // Support for over-voltaging memory
    190 #define B_BOARD_FEATURES_HW_WATCHDOG_TIMER        BIT43            // Support for the HW-based 555 Watchdog Timer feature
    191 #define B_BOARD_FEATURES_LVDS                     BIT44            // Support for LVDS
    192 #define B_BOARD_FEATURES_VERB_TABLE_MASK          (BIT45|BIT46|BIT47|BIT48)    // Verb table
    193 #define B_BOARD_FEATURES_VERB_TABLE1              BIT45            // Verb table 1
    194 #define B_BOARD_FEATURES_VERB_TABLE2              BIT46            // Verb table 2
    195 #define B_BOARD_FEATURES_VERB_TABLE3              BIT47            // Verb table 3
    196 #define B_BOARD_FEATURES_VERB_TABLE4              BIT48            // Verb table 4
    197 #define B_BOARD_FEATURES_NO_MINIPCIE              BIT49            // Mini PCIe slot
    198 #define B_BOARD_FEATURES_HDMI_SLOT                BIT50            // HDMI slot
    199 #define B_BOARD_FEATURES_PS2_HIDE                 BIT51            // PS2 hide
    200 #define B_BOARD_FEATURES_DVID_SLOT                BIT52            // DVID slot
    201 
    202 #define B_BOARD_FEATURES_SIO_COM3                 BIT53
    203 #define B_BOARD_FEATURES_SIO_COM4                 BIT54
    204 
    205 #define B_BOARD_FEATURES_LAN2                     BIT55
    206 #define B_BOARD_FEATURES_PCIe_SLOT                BIT56
    207 #endif
    208 
    209 typedef UINT64 EFI_BOARD_FEATURES;
    210 
    211 #pragma pack()
    212 
    213 //
    214 // Global ID for the Platform Boot Mode Protocol.
    215 //
    216 #define EFI_BOARD_FEATURES_GUID \
    217   { 0x94b9e8ae, 0x8877, 0x479a, 0x98, 0x42, 0xf5, 0x97, 0x4b, 0x82, 0xce, 0xd3 }
    218 
    219 extern EFI_GUID gEfiBoardFeaturesGuid;
    220 
    221 #define BOARD_FEATURES_NAME   L"BoardFeatures"
    222 
    223 #define EFI_BOARD_ID_GUID \
    224   { 0x6b2dd245, 0x3f2, 0x414a, 0x8c, 0x2, 0x9f, 0xfc, 0x23, 0x52, 0xe3, 0x1e }
    225 #define EFI_BOARD_ID_NAME (L"BoardId")
    226 
    227 #endif
    228 
    229