VirtualBox

Ignore:
Timestamp:
Oct 28, 2015 8:17:18 PM (9 years ago)
Author:
vboxsync
Message:

EFI/Firmware: 'svn merge /vendor/edk2/UDK2010.SR1 /vendor/edk2/current .', reverting and removing files+dirs listed in ReadMe.vbox, resolving conflicts with help from ../UDK2014.SP1/. This is a raw untested merge.

Location:
trunk/src/VBox/Devices/EFI/Firmware
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/EFI/Firmware

  • trunk/src/VBox/Devices/EFI/Firmware/BaseTools/Conf/XMLSchema/DistributionPackage.xsd

    r48674 r58459  
    33Filename: DistributionPackage.xsd
    44
    5 Copyright (c) 2008 - 2011, Intel Corporation. All rights reserved.
     5Copyright (c) 2008 - 2012, Intel Corporation. All rights reserved.
    66
    77This program and the accompanying materials are licensed and made available
     
    1414-->
    1515<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
    16     targetNamespace="http://www.uefi.org/2011/1.1" xmlns="http://www.uefi.org/2011/1.1">
     16    targetNamespace="http://www.uefi.org/2012/1.0" xmlns="http://www.uefi.org/2012/1.0">
    1717    <xs:element name="DistributionPackage">
    1818        <xs:annotation>
    19             <xs:documentation xml:lang="en-us"> This schema defines the UEFI/PI Distribution Package
    20                 description (PKG) file. It describes the content of:</xs:documentation>
    21             <xs:documentation xml:lang="en-us"> 1) Package descriptions with definitions and
    22                 headers.</xs:documentation>
    23             <xs:documentation xml:lang="en-us"> 2) Modules in either source or binary format. (Note
    24                 that Binary format is for FFS leaf section file types only, complete FFS files
    25                 cannot be distributed using this distribution format.) </xs:documentation>
    26             <xs:documentation xml:lang="en-us"> 3) The distribution of custom tools used to modify
    27                 the binary images to create UEFI/PI compliant images. </xs:documentation>
    28             <xs:documentation xml:lang="en-us"> 4) Finally, it can be used to distribute other
    29                 miscellaneous content that is not specific to UEFI/PI images. </xs:documentation>
    30             <xs:documentation xml:lang="en-us"> The Package Surface Area describes the content of
    31                 packages, while the Module Surface Area provides information relevant to source
    32                 and/or binary distributions. </xs:documentation>
     19            <xs:documentation xml:lang="en-us"> This schema defines the UEFI/PI Distribution Package description (PKG)
     20                file. It describes the content of:</xs:documentation>
     21            <xs:documentation xml:lang="en-us"> 1) Package descriptions with definitions and headers.</xs:documentation>
     22            <xs:documentation xml:lang="en-us"> 2) Modules in either source or binary format. (Note that Binary format
     23                is for FFS leaf section file types only, complete FFS files cannot be distributed using this
     24                distribution format.) </xs:documentation>
     25            <xs:documentation xml:lang="en-us"> 3) The distribution of custom tools used to modify the binary images to
     26                create UEFI/PI compliant images. </xs:documentation>
     27            <xs:documentation xml:lang="en-us"> 4) Finally, it can be used to distribute other miscellaneous content
     28                that is not specific to UEFI/PI images. </xs:documentation>
     29            <xs:documentation xml:lang="en-us"> The Package Surface Area describes the content of packages, while the
     30                Module Surface Area provides information relevant to source and/or binary distributions.
     31            </xs:documentation>
    3332        </xs:annotation>
    3433        <xs:complexType>
     
    3635                <xs:element ref="DistributionHeader" minOccurs="1" maxOccurs="1">
    3736                    <xs:annotation>
    38                         <xs:documentation xml:lang="en-us"> This header contains (legal) information
    39                             usually required for distributing both binary and/or source code.
     37                        <xs:documentation xml:lang="en-us"> This header contains (legal) information usually required
     38                            for distributing both binary and/or source code. </xs:documentation>
     39                    </xs:annotation>
     40                </xs:element>
     41                <xs:element ref="PackageSurfaceArea" minOccurs="0" maxOccurs="unbounded">
     42                    <xs:annotation>
     43                        <xs:documentation xml:lang="en-us"> The list of packages in this distribution. </xs:documentation>
     44                        <xs:documentation xml:lang="en-us"> Packages are groups of files and/or modules that are similar
     45                            in nature.</xs:documentation>
     46                        <xs:documentation xml:lang="en-us"> Packages are uniquely identified by a package GUID and a
     47                            package version. </xs:documentation>
     48                        <xs:documentation xml:lang="en-us"> A package can declare public mappings of C names to GUID
     49                            values. </xs:documentation>
     50                        <xs:documentation xml:lang="en-us"> A package can provide header files for library classes
     51                            and/or other industry standard definitions. </xs:documentation>
     52                        <xs:documentation xml:lang="en-us"> A package can also declare public mappings of platform
     53                            configuration database (PCD) &quot;knobs&quot; to control features and operation of modules
     54                            within a platform. </xs:documentation>
     55                        <xs:documentation xml:lang="en-us"> Finally, a package lists the library instances and/or
     56                            modules that are provided in a distribution package. </xs:documentation>
     57                    </xs:annotation>
     58                </xs:element>
     59                <xs:element ref="ModuleSurfaceArea" minOccurs="0" maxOccurs="unbounded">
     60                    <xs:annotation>
     61                        <xs:documentation xml:lang="en-us"> The listing of UEFI/PI compliant modules in this
     62                            distribution that are NOT part of a Package. Every module that is provided as part of a
     63                            package needs to be described in a PackageSurfaceArea.Modules section. </xs:documentation>
     64                        <xs:documentation xml:lang="en-us"> The ModuleSurfaceArea section describes how each module in a
     65                            distribution is coded, or, in the case of a binary module distribution, how it was built. </xs:documentation>
     66                        <xs:documentation xml:lang="en-us"> UEFI/PI compliant libraries and modules are uniquely
     67                            identified by the Module's GUID and version number. </xs:documentation>
     68                        <xs:documentation xml:lang="en-us"> This section will typically be used for modules that don't
     69                            require any additional files that would be included in a package. For example, the Enhanced
     70                            FAT driver binary does not need to have a package description, as no additional files are
     71                            provided. </xs:documentation>
     72                    </xs:annotation>
     73                </xs:element>
     74                <xs:element ref="Tools" minOccurs="0" maxOccurs="unbounded">
     75                    <xs:annotation>
     76                        <xs:documentation xml:lang="en-us"> This section is for distributing vendor specific executable
     77                            tools, tool source code and/or configuration files. These tools are primarily for
     78                            manipulating code and/or binary images. </xs:documentation>
     79                        <xs:documentation xml:lang="en-us"> Tools in this section can:</xs:documentation>
     80                        <xs:documentation xml:lang="en-us"> 1) Parse build meta-data files to create source code files
     81                            and build scripts. </xs:documentation>
     82                        <xs:documentation xml:lang="en-us"> 2) Modify image files to conform to UEFI/PI specifications. </xs:documentation>
     83                        <xs:documentation xml:lang="en-us"> 3) Generate binary files from certain types of text/unicode
     84                            files. </xs:documentation>
     85                        <xs:documentation xml:lang="en-us"> 4) Generate PCI Option Roms or Firmware Device images. </xs:documentation>
     86                        <xs:documentation xml:lang="en-us"> 5) Implement external encoding/decoding/signature/GUIDed
     87                            tools. </xs:documentation>
     88                        <xs:documentation xml:lang="en-us"> 6) Distribution Package create/install/remove tools.
    4089                        </xs:documentation>
    4190                    </xs:annotation>
    4291                </xs:element>
    43                 <xs:element ref="PackageSurfaceArea" minOccurs="0" maxOccurs="unbounded">
    44                     <xs:annotation>
    45                         <xs:documentation xml:lang="en-us"> The list of packages in this
    46                             distribution. </xs:documentation>
    47                         <xs:documentation xml:lang="en-us"> Packages are groups of files and/or
    48                             modules that are similar in nature.</xs:documentation>
    49                         <xs:documentation xml:lang="en-us"> Packages are uniquely identified by a
    50                             package GUID and a package version. </xs:documentation>
    51                         <xs:documentation xml:lang="en-us"> A package can declare public mappings of
    52                             C names to GUID values. </xs:documentation>
    53                         <xs:documentation xml:lang="en-us"> A package can provide header files for
    54                             library classes and/or other industry standard definitions. </xs:documentation>
    55                         <xs:documentation xml:lang="en-us"> A package can also declare public
    56                             mappings of platform configuration database (PCD) &quot;knobs&quot; to
    57                             control features and operation of modules within a platform. </xs:documentation>
    58                         <xs:documentation xml:lang="en-us"> Finally, a package lists the library
    59                             instances and/or modules that are provided in a distribution package.
    60                         </xs:documentation>
    61                     </xs:annotation>
    62                 </xs:element>
    63                 <xs:element ref="ModuleSurfaceArea" minOccurs="0" maxOccurs="unbounded">
    64                     <xs:annotation>
    65                         <xs:documentation xml:lang="en-us"> The listing of UEFI/PI compliant modules
    66                             in this distribution that are NOT part of a Package. Every module that
    67                             is provided as part of a package needs to be described in a
    68                             PackageSurfaceArea.Modules section. </xs:documentation>
    69                         <xs:documentation xml:lang="en-us"> The ModuleSurfaceArea section describes
    70                             how each module in a distribution is coded, or, in the case of a binary
    71                             module distribution, how it was built. </xs:documentation>
    72                         <xs:documentation xml:lang="en-us"> UEFI/PI compliant libraries and modules
    73                             are uniquely identified by the Module's GUID and version number. </xs:documentation>
    74                         <xs:documentation xml:lang="en-us"> This section will typically be used for
    75                             modules that don't require any additional files that would be included
    76                             in a package. For example, the Enhanced FAT driver binary does not need
    77                             to have a package description, as no additional files are provided.
    78                         </xs:documentation>
    79                     </xs:annotation>
    80                 </xs:element>
    81                 <xs:element ref="Tools" minOccurs="0" maxOccurs="unbounded">
    82                     <xs:annotation>
    83                         <xs:documentation xml:lang="en-us"> This section is for distributing vendor
    84                             specific executable tools, tool source code and/or configuration files.
    85                             These tools are primarily for manipulating code and/or binary images. </xs:documentation>
    86                         <xs:documentation xml:lang="en-us"> Tools in this section
    87                             can:</xs:documentation>
    88                         <xs:documentation xml:lang="en-us"> 1) Parse build meta-data files to create
    89                             source code files and build scripts. </xs:documentation>
    90                         <xs:documentation xml:lang="en-us"> 2) Modify image files to conform to
    91                             UEFI/PI specifications. </xs:documentation>
    92                         <xs:documentation xml:lang="en-us"> 3) Generate binary files from certain
    93                             types of text/unicode files. </xs:documentation>
    94                         <xs:documentation xml:lang="en-us"> 4) Generate PCI Option Roms or Firmware
    95                             Device images. </xs:documentation>
    96                         <xs:documentation xml:lang="en-us"> 5) Implement external
    97                             encoding/decoding/signature/GUIDed tools. </xs:documentation>
    98                         <xs:documentation xml:lang="en-us"> 6) Distribution Package
    99                             create/install/remove tools. </xs:documentation>
    100                     </xs:annotation>
    101                 </xs:element>
    10292                <xs:element ref="MiscellaneousFiles" minOccurs="0" maxOccurs="unbounded">
    10393                    <xs:annotation>
    104                         <xs:documentation xml:lang="en-us"> The list of miscellaneous files in this
    105                             distribution. Any files that are not listed in either the Package,
    106                             Module or Tools sections can be listed here. This section can be used to
    107                             distribute specifications for packages and modules that are not
    108                             &quot;industry standards&quot; such as a specification for a chipset or
    109                             a video device. </xs:documentation>
     94                        <xs:documentation xml:lang="en-us"> The list of miscellaneous files in this distribution. Any
     95                            files that are not listed in either the Package, Module or Tools sections can be listed
     96                            here. This section can be used to distribute specifications for packages and modules that
     97                            are not &quot;industry standards&quot; such as a specification for a chipset or a video
     98                            device. </xs:documentation>
    11099                    </xs:annotation>
    111100                </xs:element>
    112101                <xs:element ref="UserExtensions" minOccurs="0" maxOccurs="unbounded">
    113102                    <xs:annotation>
    114                         <xs:documentation xml:lang="en-us"> The UserExtensions section is used to
    115                             disseminate processing instructions that may be custom to the content
    116                             provided by the distribution. This section contains information that is
    117                             common to all aspects of this disribution. </xs:documentation>
     103                        <xs:documentation xml:lang="en-us"> The UserExtensions section is used to disseminate processing
     104                            instructions that may be custom to the content provided by the distribution. This section
     105                            contains information that is common to all aspects of this disribution. </xs:documentation>
    118106                    </xs:annotation>
    119107                </xs:element>
     
    126114    <xs:element name="DistributionHeader">
    127115        <xs:annotation>
    128             <xs:documentation xml:lang="en-us"> This section defines the content of the UEIF/PI
    129                 compliant Distribution Package Header. This is the only required element of a
    130                 UEFI/PI compliant distribution package. </xs:documentation>
     116            <xs:documentation xml:lang="en-us"> This section defines the content of the UEIF/PI compliant Distribution
     117                Package Header. This is the only required element of a UEFI/PI compliant distribution package.
     118            </xs:documentation>
    131119        </xs:annotation>
    132120        <xs:complexType>
     
    134122                <xs:element minOccurs="1" maxOccurs="1" name="Name">
    135123                    <xs:annotation>
    136                         <xs:documentation xml:lang="en-us"> This is the User Interface Name for this
    137                             Distribution Package. </xs:documentation>
    138                         <xs:documentation xml:lang="en-us"> Each Distribution Package is uniquely
    139                             identified by it's GUID and Version number. </xs:documentation>
     124                        <xs:documentation xml:lang="en-us"> This is the User Interface Name for this Distribution
     125                            Package. </xs:documentation>
     126                        <xs:documentation xml:lang="en-us"> Each Distribution Package is uniquely identified by it's
     127                            GUID and Version number. </xs:documentation>
    140128                    </xs:annotation>
    141129                    <xs:complexType>
     
    144132                                <xs:attribute name="BaseName" type="xs:NMTOKEN" use="optional">
    145133                                    <xs:annotation>
    146                                         <xs:documentation xml:lang="en-us"> The reference name of
    147                                             the Distribution Package file. This single word name can
    148                                             be used by tools as a keyword or for directory and/or
    149                                             file creation. </xs:documentation>
    150                                         <xs:documentation xml:lang="en-us"> White space and special
    151                                             characters (dash and underscore characters may be used)
    152                                             are not permitted in this name. </xs:documentation>
    153                                     </xs:annotation>
    154                                 </xs:attribute>
    155                             </xs:extension>
    156                         </xs:simpleContent>
    157                     </xs:complexType>
    158                 </xs:element>
    159                 <xs:element minOccurs="1" maxOccurs="1" name="GUID">
    160                     <xs:annotation>
    161                         <xs:documentation xml:lang="en-us"> This 128-bit GUID and the Version
    162                             attribute uniquely identify this Distribution Package. </xs:documentation>
    163                         <xs:documentation xml:lang="en-us"> Backward compatible releases of a
    164                             distribution package need only change the version number, while
    165                             non-backward compatible changes require the GUID to change (resetting
    166                             the version number to 1.0 is optional.) </xs:documentation>
    167                     </xs:annotation>
    168                     <xs:complexType>
    169                         <xs:simpleContent>
    170                             <xs:extension base="RegistryFormatGuid">
    171                                 <xs:attribute name="Version" type="xs:decimal" use="required">
    172                                     <xs:annotation>
    173                                         <xs:documentation xml:lang="en-us"> This value, along with
    174                                             the GUID, is used to uniquely identify this object. The
    175                                             higher the number, the more recent the content.
     134                                        <xs:documentation xml:lang="en-us"> The reference name of the Distribution
     135                                            Package file. This single word name can be used by tools as a keyword or for
     136                                            directory and/or file creation. </xs:documentation>
     137                                        <xs:documentation xml:lang="en-us"> White space and special characters (dash and
     138                                            underscore characters may be used) are not permitted in this name.
    176139                                        </xs:documentation>
    177140                                    </xs:annotation>
     
    181144                    </xs:complexType>
    182145                </xs:element>
     146                <xs:element minOccurs="1" maxOccurs="1" name="GUID">
     147                    <xs:annotation>
     148                        <xs:documentation xml:lang="en-us"> This 128-bit GUID and the Version attribute uniquely
     149                            identify this Distribution Package. </xs:documentation>
     150                        <xs:documentation xml:lang="en-us"> Backward compatible releases of a distribution package need
     151                            only change the version number, while non-backward compatible changes require the GUID to
     152                            change (resetting the version number to 1.0 is optional.) </xs:documentation>
     153                    </xs:annotation>
     154                    <xs:complexType>
     155                        <xs:simpleContent>
     156                            <xs:extension base="RegistryFormatGuid">
     157                                <xs:attribute name="Version" type="xs:decimal" use="required">
     158                                    <xs:annotation>
     159                                        <xs:documentation xml:lang="en-us"> This value, along with the GUID, is used to
     160                                            uniquely identify this object. The higher the number, the more recent the
     161                                            content. </xs:documentation>
     162                                    </xs:annotation>
     163                                </xs:attribute>
     164                            </xs:extension>
     165                        </xs:simpleContent>
     166                    </xs:complexType>
     167                </xs:element>
    183168                <xs:element minOccurs="1" maxOccurs="1" name="Vendor" type="xs:normalizedString">
    184169                    <xs:annotation>
    185                         <xs:documentation xml:lang="en-us"> A string identifying who created this
    186                             distribution package. </xs:documentation>
     170                        <xs:documentation xml:lang="en-us"> A string identifying who created this distribution package.
     171                        </xs:documentation>
    187172                    </xs:annotation>
    188173                </xs:element>
    189174                <xs:element minOccurs="1" maxOccurs="1" name="Date" type="xs:dateTime">
    190175                    <xs:annotation>
    191                         <xs:documentation xml:lang="en-us"> The date and time this distribution was
    192                             created. The format is: YYYY-MM-DDThh:mm:ss, for example:
    193                             2001-01-31T13:30:00 (note the T character separator between the calendar
    194                             date and the time. </xs:documentation>
    195                     </xs:annotation>
    196                 </xs:element>
    197                 <xs:element minOccurs="1" maxOccurs="1" name="Copyright" type="xs:string">
    198                     <xs:annotation>
    199                         <xs:documentation xml:lang="en-us"> The copyright for this file that is
    200                             generated by the creator of the distribution. If a derivative work is
    201                             generated from an existing distribution, then the existing copyright
    202                             must be maintained, and additional copyrights may be appended to the end
    203                             of this element. It may also be the primary copyright for all code
    204                             provided in the Distribution Package. </xs:documentation>
    205                     </xs:annotation>
    206                 </xs:element>
    207                 <xs:element minOccurs="1" maxOccurs="1" name="License" type="xs:string">
    208                     <xs:annotation>
    209                         <xs:documentation xml:lang="en-us"> A license that describes any
    210                             restrictions on the use of this distribution. If a derivative work is
    211                             allowed by the original license and a derivative work is generated from
    212                             an existing distribution, then the existing license must be maintained,
    213                             and additional licenses may be appended to the end of this element. It
    214                             may also be the primary license for all code provided in the
    215                             distribution file. Alternatively, this may point to a filename that
    216                             contains the License. The file (included in the content zip file) will
    217                             be stored in the same location as the distribution package's .pkg file.
     176                        <xs:documentation xml:lang="en-us"> The date and time this distribution was created. The format
     177                            is: YYYY-MM-DDThh:mm:ss, for example: 2001-01-31T13:30:00 (note the T character separator
     178                            between the calendar date and the time. </xs:documentation>
     179                    </xs:annotation>
     180                </xs:element>
     181                <xs:element minOccurs="1" maxOccurs="unbounded" name="Copyright">
     182                    <xs:annotation>
     183                        <xs:documentation xml:lang="en-us"> The copyright for this file that is generated by the creator
     184                            of the distribution. If a derivative work is generated from an existing distribution, then
     185                            the existing copyright must be maintained, and additional copyrights may be appended to the
     186                            end of this element. It may also be the primary copyright for all code provided in the
     187                            Distribution Package. </xs:documentation>
     188                    </xs:annotation>
     189                    <xs:complexType>
     190                        <xs:simpleContent>
     191                            <xs:extension base="xs:string">
     192                                <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"/>
     193                            </xs:extension>
     194                        </xs:simpleContent>
     195                    </xs:complexType>
     196                   
     197                </xs:element>
     198                <xs:element minOccurs="1" maxOccurs="unbounded" name="License">
     199                    <xs:annotation>
     200                        <xs:documentation xml:lang="en-us"> A license that describes any restrictions on the use of this
     201                            distribution. If a derivative work is allowed by the original license and a derivative work
     202                            is generated from an existing distribution, then the existing license must be maintained,
     203                            and additional licenses may be appended to the end of this element. It may also be the
     204                            primary license for all code provided in the distribution file. Alternatively, this may
     205                            point to a filename that contains the License. The file (included in the content zip file)
     206                            will be stored in the same location as the distribution package's .pkg file.
    218207                        </xs:documentation>
    219208                    </xs:annotation>
    220                 </xs:element>
    221                 <xs:element minOccurs="1" maxOccurs="1" name="Abstract" type="xs:normalizedString">
    222                     <xs:annotation>
    223                         <xs:documentation xml:lang="en-us"> A one line description of the
    224                             Distribution Package. </xs:documentation>
    225                     </xs:annotation>
    226                 </xs:element>
    227                 <xs:element minOccurs="0" maxOccurs="1" name="Description" type="xs:string">
    228                     <xs:annotation>
    229                         <xs:documentation xml:lang="en-us"> A complete description of the
    230                             Distribution Package. This description may include the release name of
    231                             the file, the version of the file, and a complete description of the
    232                             file contents and/or features including a description of the updates
    233                             since the previous file release. </xs:documentation>
    234                     </xs:annotation>
     209                    <xs:complexType>
     210                        <xs:simpleContent>
     211                            <xs:extension base="xs:string">
     212                                <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"/>
     213                            </xs:extension>
     214                        </xs:simpleContent>
     215                    </xs:complexType>
     216                </xs:element>
     217                <xs:element minOccurs="1" maxOccurs="unbounded" name="Abstract">
     218                    <xs:annotation>
     219                        <xs:documentation xml:lang="en-us"> A one line description of the Distribution Package.
     220                        </xs:documentation>
     221                    </xs:annotation>
     222                    <xs:complexType>
     223                        <xs:simpleContent>
     224                            <xs:extension base="xs:normalizedString">
     225                                <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"/>
     226                            </xs:extension>
     227                        </xs:simpleContent>
     228                    </xs:complexType>
     229                </xs:element>
     230                <xs:element minOccurs="0" maxOccurs="unbounded" name="Description">
     231                    <xs:annotation>
     232                        <xs:documentation xml:lang="en-us"> A complete description of the Distribution Package. This
     233                            description may include the release name of the file, the version of the file, and a
     234                            complete description of the file contents and/or features including a description of the
     235                            updates since the previous file release. </xs:documentation>
     236                    </xs:annotation>
     237                    <xs:complexType>
     238                        <xs:simpleContent>
     239                            <xs:extension base="xs:string">
     240                                <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"/>
     241                            </xs:extension>
     242                        </xs:simpleContent>
     243                    </xs:complexType>
    235244                </xs:element>
    236245                <xs:element minOccurs="0" maxOccurs="1" name="Signature" type="Md5Sum">
    237246                    <xs:annotation>
    238                         <xs:documentation xml:lang="en-us"> The packaging utilities will use this
    239                             MD5 sum value of the included ZIP file containing files and/or code. If
    240                             this element is not present, then installation tools should assume that
    241                             the content is correct, or that other methods may be needed to verify
    242                             content. </xs:documentation>
    243                     </xs:annotation>
    244                 </xs:element>
    245                 <xs:element minOccurs="1" maxOccurs="1" name="XmlSpecification" type="xs:decimal"
    246                     default="1.1">
     247                        <xs:documentation xml:lang="en-us"> The packaging utilities will use this MD5 sum value of the
     248                            included ZIP file containing files and/or code. If this element is not present, then
     249                            installation tools should assume that the content is correct, or that other methods may be
     250                            needed to verify content. </xs:documentation>
     251                    </xs:annotation>
     252                </xs:element>
     253                <xs:element minOccurs="1" maxOccurs="1" name="XmlSpecification" type="xs:decimal" default="1.1">
    247254                    <xs:annotation>
    248255                        <xs:documentation xml:lang="en-us"> This version of this XML Schema is 1.1 </xs:documentation>
    249256                        <xs:documentation xml:lang="en-us"> Changes to 1.1 from 1.0 </xs:documentation>
    250                         <xs:documentation xml:lang="en-us"> #1 Updated to present date and new
    251                             version which is important to reflect the present state of the
    252                             matter</xs:documentation>
    253                         <xs:documentation xml:lang="en-us"> #2 Added definition/enumeration of
    254                             UNDEFIND type 2 is important since there is a large body of legacy code
    255                             for which the GUID’s and other code/data objects were not decorated with
    256                             their usage. This document will allow for importing today’s source
    257                             artifacts and producing decorations using the ‘Undefined’ versus having
    258                             an error</xs:documentation>
    259                         <xs:documentation xml:lang="en-us">#3 Allow for inclusion of ARM and future
    260                             architecture types</xs:documentation>
     257                        <xs:documentation xml:lang="en-us"> #1 Updated to present date and new version which is
     258                            important to reflect the present state of the matter</xs:documentation>
     259                        <xs:documentation xml:lang="en-us"> #2 Added definition/enumeration of UNDEFIND type 2 is
     260                            important since there is a large body of legacy code for which the GUID’s and other
     261                            code/data objects were not decorated with their usage. This document will allow for
     262                            importing today’s source artifacts and producing decorations using the ‘Undefined’ versus
     263                            having an error</xs:documentation>
     264                        <xs:documentation xml:lang="en-us">#3 Allow for inclusion of ARM and future architecture
     265                            types</xs:documentation>
    261266                    </xs:annotation>
    262267                </xs:element>
     
    264269            <xs:attribute name="ReadOnly" type="xs:boolean" default="false" use="optional">
    265270                <xs:annotation>
    266                     <xs:documentation xml:lang="en-us"> If set to true, all content within this
    267                         Distribution Package should NOT be modified. The default permits
    268                         modification of all content. </xs:documentation>
     271                    <xs:documentation xml:lang="en-us"> If set to true, all content within this Distribution Package
     272                        should NOT be modified. The default permits modification of all content. </xs:documentation>
    269273                </xs:annotation>
    270274            </xs:attribute>
    271275            <xs:attribute name="RePackage" type="xs:boolean" default="false" use="optional">
    272276                <xs:annotation>
    273                     <xs:documentation xml:lang="en-us"> If set to true, then the content can be
    274                         repackaged into another distribution package. The default prohibits
    275                         repackaging the Distribution content. </xs:documentation>
     277                    <xs:documentation xml:lang="en-us"> If set to true, then the content can be repackaged into another
     278                        distribution package. The default prohibits repackaging the Distribution content.
     279                    </xs:documentation>
    276280                </xs:annotation>
    277281            </xs:attribute>
     
    282286    <xs:element name="PackageSurfaceArea">
    283287        <xs:annotation>
    284             <xs:documentation xml:lang="en-us"> A package is a collection of related objects -
    285                 Includes, Libraries and Modules. </xs:documentation>
    286             <xs:documentation xml:lang="en-us"> Each package is uniquely identified by it's GUID and
    287                 Version number. Backward compatible releases of a package need only change the
    288                 version number, while non-backward compatible changes require the GUID to change
    289                 (resetting the version number to 1.0 is optional.) </xs:documentation>
     288            <xs:documentation xml:lang="en-us"> A package is a collection of related objects - Includes, Libraries and
     289                Modules. </xs:documentation>
     290            <xs:documentation xml:lang="en-us"> Each package is uniquely identified by it's GUID and Version number.
     291                Backward compatible releases of a package need only change the version number, while non-backward
     292                compatible changes require the GUID to change (resetting the version number to 1.0 is optional.)
     293            </xs:documentation>
    290294        </xs:annotation>
    291295        <xs:complexType>
     
    297301                            <xs:element minOccurs="1" maxOccurs="1" name="Name">
    298302                                <xs:annotation>
    299                                     <xs:documentation xml:lang="en-us"> This is the User Interface
    300                                         Name for this package. </xs:documentation>
     303                                    <xs:documentation xml:lang="en-us"> This is the User Interface Name for this
     304                                        package. </xs:documentation>
    301305                                </xs:annotation>
    302306                                <xs:complexType>
    303307                                    <xs:simpleContent>
    304308                                        <xs:extension base="xs:normalizedString">
    305                                             <xs:attribute name="BaseName" type="xs:NMTOKEN"
    306                                                 use="required">
     309                                            <xs:attribute name="BaseName" type="xs:NMTOKEN" use="required">
    307310                                                <xs:annotation>
    308                                                   <xs:documentation xml:lang="en-us"> This is a
    309                                                   single word BaseName of the package. This BaseName
    310                                                   can be used by tools as a keyword and for
    311                                                   directory/file creation. </xs:documentation>
     311                                                    <xs:documentation xml:lang="en-us"> This is a single word BaseName
     312                                                        of the package. This BaseName can be used by tools as a keyword
     313                                                        and for directory/file creation. </xs:documentation>
    312314                                                </xs:annotation>
    313315                                            </xs:attribute>
     
    318320                            <xs:element minOccurs="1" maxOccurs="1" name="GUID">
    319321                                <xs:annotation>
    320                                     <xs:documentation xml:lang="en-us"> This GUID and the Version
    321                                         attribute uniquely identify a given package.
    322                                     </xs:documentation>
     322                                    <xs:documentation xml:lang="en-us"> This GUID and the Version attribute uniquely
     323                                        identify a given package. </xs:documentation>
    323324                                </xs:annotation>
    324325                                <xs:complexType>
    325326                                    <xs:simpleContent>
    326327                                        <xs:extension base="RegistryFormatGuid">
    327                                             <xs:attribute name="Version" type="xs:decimal"
    328                                                 use="required">
     328                                            <xs:attribute name="Version" type="xs:decimal" use="required">
    329329                                                <xs:annotation>
    330                                                   <xs:documentation xml:lang="en-us"> This value,
    331                                                   along with the GUID, is used to uniquely identify
    332                                                   this object. </xs:documentation>
    333                                                   <xs:documentation xml:lang="en-us"> Backward
    334                                                   compatible changes must make sure this number is
    335                                                   incremented from the most recent version.
    336                                                   Non-backward compatible changes require a new
    337                                                   GUID, and the version can be reset.
    338                                                   </xs:documentation>
     330                                                    <xs:documentation xml:lang="en-us"> This value, along with the GUID,
     331                                                        is used to uniquely identify this object. </xs:documentation>
     332                                                    <xs:documentation xml:lang="en-us"> Backward compatible changes must
     333                                                        make sure this number is incremented from the most recent
     334                                                        version. Non-backward compatible changes require a new GUID, and
     335                                                        the version can be reset. </xs:documentation>
    339336                                                </xs:annotation>
    340337                                            </xs:attribute>
     
    343340                                </xs:complexType>
    344341                            </xs:element>
    345                             <xs:element minOccurs="0" maxOccurs="1" name="Copyright"
    346                                 type="xs:string">
    347                                 <xs:annotation>
    348                                     <xs:documentation xml:lang="en-us"> If the package requires a
    349                                         different copyright than the distribution package, this
    350                                         element can list one or more copyright lines.
     342                            <xs:element minOccurs="0" maxOccurs="unbounded" name="Copyright">
     343                                <xs:annotation>
     344                                    <xs:documentation xml:lang="en-us"> If the package requires a different copyright
     345                                        than the distribution package, this element can list one or more copyright
     346                                        lines. </xs:documentation>
     347                                </xs:annotation>
     348                                <xs:complexType>
     349                                    <xs:simpleContent>
     350                                        <xs:extension base="xs:string">
     351                                            <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"
     352                                            />
     353                                        </xs:extension>
     354                                    </xs:simpleContent>
     355                                </xs:complexType>
     356
     357                            </xs:element>
     358                            <xs:element minOccurs="0" maxOccurs="unbounded" name="License">
     359                                <xs:annotation>
     360                                    <xs:documentation xml:lang="en-us"> If the package requires licenses that are
     361                                        different from the distribution package license, this element can contain one or
     362                                        more license text paragraphs (or license filenames.) </xs:documentation>
     363                                </xs:annotation>
     364                                <xs:complexType>
     365                                    <xs:simpleContent>
     366                                        <xs:extension base="xs:string">
     367                                            <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"
     368                                            />
     369                                        </xs:extension>
     370                                    </xs:simpleContent>
     371                                </xs:complexType>
     372
     373                            </xs:element>
     374                            <xs:element minOccurs="0" maxOccurs="unbounded" name="Abstract">
     375                                <xs:annotation>
     376                                    <xs:documentation xml:lang="en-us"> A one line description of this package.
    351377                                    </xs:documentation>
    352378                                </xs:annotation>
    353                             </xs:element>
    354                             <xs:element minOccurs="0" maxOccurs="1" name="License" type="xs:string">
    355                                 <xs:annotation>
    356                                     <xs:documentation xml:lang="en-us"> If the package requires
    357                                         licenses that are different from the distribution package
    358                                         license, this element can contain one or more license text
    359                                         paragraphs (or license filenames.) </xs:documentation>
    360                                 </xs:annotation>
    361                             </xs:element>
    362                             <xs:element minOccurs="0" maxOccurs="1" name="Abstract"
    363                                 type="xs:normalizedString">
    364                                 <xs:annotation>
    365                                     <xs:documentation xml:lang="en-us"> A one line description of
    366                                         this package. </xs:documentation>
    367                                 </xs:annotation>
    368                             </xs:element>
    369                             <xs:element minOccurs="0" maxOccurs="1" name="Description"
    370                                 type="xs:string">
    371                                 <xs:annotation>
    372                                     <xs:documentation xml:lang="en-us"> A complete description of a
    373                                         package. This description may include the release name of
    374                                         the package, the version of the package, and a complete
    375                                         description of the package contents and/or features
    376                                         including a description of the updates since the previous
    377                                         package’s release. </xs:documentation>
    378                                 </xs:annotation>
    379                             </xs:element>
    380                             <xs:element minOccurs="1" maxOccurs="1" name="PackagePath"
    381                                 type="xs:anyURI">
    382                                 <xs:annotation>
    383                                     <xs:documentation xml:lang="en-us"> This element is the location
    384                                         (in the ZIP file) for the root directory of a package.
     379                                <xs:complexType>
     380                                    <xs:simpleContent>
     381                                        <xs:extension base="xs:normalizedString">
     382                                            <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"
     383                                            />
     384                                        </xs:extension>
     385                                    </xs:simpleContent>
     386                                </xs:complexType>
     387                            </xs:element>
     388                            <xs:element minOccurs="0" maxOccurs="unbounded" name="Description">
     389                                <xs:annotation>
     390                                    <xs:documentation xml:lang="en-us"> A complete description of a package. This
     391                                        description may include the release name of the package, the version of the
     392                                        package, and a complete description of the package contents and/or features
     393                                        including a description of the updates since the previous package’s release.
    385394                                    </xs:documentation>
    386395                                </xs:annotation>
     396                                <xs:complexType>
     397                                    <xs:simpleContent>
     398                                        <xs:extension base="xs:string">
     399                                            <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"
     400                                            />
     401                                        </xs:extension>
     402                                    </xs:simpleContent>
     403                                </xs:complexType>
     404                            </xs:element>
     405                            <xs:element minOccurs="1" maxOccurs="1" name="PackagePath" type="xs:anyURI">
     406                                <xs:annotation>
     407                                    <xs:documentation xml:lang="en-us"> This element is the location (in the ZIP file)
     408                                        for the root directory of a package. </xs:documentation>
     409                                </xs:annotation>
    387410                            </xs:element>
    388411                        </xs:sequence>
     
    393416                <xs:element minOccurs="0" maxOccurs="1" name="ClonedFrom">
    394417                    <xs:annotation>
    395                         <xs:documentation xml:lang="en-us"> The term cloned is used here to indicate
    396                             that this package as been copied and modified to a completely different
    397                             package. An example might be for a new generation of chipsets that have
    398                             few or no elements in common with the original. </xs:documentation>
     418                        <xs:documentation xml:lang="en-us"> The term cloned is used here to indicate that this package
     419                            as been copied and modified to a completely different package. An example might be for a new
     420                            generation of chipsets that have few or no elements in common with the original.
     421                        </xs:documentation>
    399422                    </xs:annotation>
    400423                    <xs:complexType>
     
    402425                            <xs:element minOccurs="1" maxOccurs="1" name="GUID">
    403426                                <xs:annotation>
    404                                     <xs:documentation xml:lang="en-us"> This GUID and the Version
    405                                         attribute uniquely identify the Package that this Package
    406                                         was copied from. </xs:documentation>
     427                                    <xs:documentation xml:lang="en-us"> This GUID and the Version attribute uniquely
     428                                        identify the Package that this Package was copied from. </xs:documentation>
    407429                                </xs:annotation>
    408430                                <xs:complexType>
    409431                                    <xs:simpleContent>
    410432                                        <xs:extension base="RegistryFormatGuid">
    411                                             <xs:attribute name="Version" type="xs:decimal"
    412                                                 use="required">
     433                                            <xs:attribute name="Version" type="xs:decimal" use="required">
    413434                                                <xs:annotation>
    414                                                   <xs:documentation xml:lang="en-us"> This value,
    415                                                   along with the GUID, is used to uniquely identify
    416                                                   the package that this package was cloned from.
    417                                                   </xs:documentation>
     435                                                    <xs:documentation xml:lang="en-us"> This value, along with the GUID,
     436                                                        is used to uniquely identify the package that this package was
     437                                                        cloned from. </xs:documentation>
    418438                                                </xs:annotation>
    419439                                            </xs:attribute>
     
    429449                <xs:element minOccurs="0" maxOccurs="1" name="LibraryClassDeclarations">
    430450                    <xs:annotation>
    431                         <xs:documentation xml:lang="en-us"> Library Classes are public interfaces
    432                             that can be used by modules. One or more library instances can implement
    433                             a library class, however only one library instance can be linked to an
    434                             individual module. This provides the platform integrator with the
    435                             flexibility of choosing one library instance's implementation over a
     451                        <xs:documentation xml:lang="en-us"> Library Classes are public interfaces that can be used by
     452                            modules. One or more library instances can implement a library class, however only one
     453                            library instance can be linked to an individual module. This provides the platform
     454                            integrator with the flexibility of choosing one library instance's implementation over a
    436455                            different library instance. </xs:documentation>
    437456                    </xs:annotation>
     
    441460                                <xs:complexType>
    442461                                    <xs:sequence>
    443                                         <xs:element minOccurs="1" maxOccurs="1" name="HeaderFile"
    444                                             type="xs:anyURI">
     462                                        <xs:element minOccurs="1" maxOccurs="1" name="HeaderFile" type="xs:anyURI">
    445463                                            <xs:annotation>
    446                                                 <xs:documentation xml:lang="en-us"> The header file
    447                                                   provides definitions and function prototypes for a
    448                                                   library class. Modules can be coded against these
    449                                                   functions, using the definitions in this header,
    450                                                   without concerning themselves about the libraries'
    451                                                   implementation details. This is a PackagePath
    452                                                   relative path and filename for the include file.
    453                                                 </xs:documentation>
     464                                                <xs:documentation xml:lang="en-us"> The header file provides definitions
     465                                                    and function prototypes for a library class. Modules can be coded
     466                                                    against these functions, using the definitions in this header,
     467                                                    without concerning themselves about the libraries' implementation
     468                                                    details. This is a PackagePath relative path and filename for the
     469                                                    include file. </xs:documentation>
    454470                                            </xs:annotation>
    455471                                        </xs:element>
    456                                         <xs:element minOccurs="0" maxOccurs="1"
    457                                             name="RecommendedInstance">
     472                                        <xs:element minOccurs="0" maxOccurs="1" name="RecommendedInstance">
    458473                                            <xs:complexType>
    459474                                                <xs:sequence>
    460                                                   <xs:element minOccurs="1" maxOccurs="1"
    461                                                   name="GUID">
    462                                                   <xs:annotation>
    463                                                   <xs:documentation xml:lang="en-us"> This GUID and
    464                                                   the Version attribute uniquely identify the
    465                                                   Recommended Library Instance. </xs:documentation>
    466                                                   </xs:annotation>
    467                                                   <xs:complexType>
    468                                                   <xs:simpleContent>
    469                                                   <xs:extension base="RegistryFormatGuid">
    470                                                   <xs:attribute name="Version" type="xs:decimal"
    471                                                   use="optional">
    472                                                   <xs:annotation>
    473                                                   <xs:documentation xml:lang="en-us"> This value,
    474                                                   along with the GUID, is used to uniquely identify
    475                                                   this object. If this value is not specified, then
    476                                                   any version of the library instance is
    477                                                   recommended. </xs:documentation>
    478                                                   </xs:annotation>
    479                                                   </xs:attribute>
    480                                                   </xs:extension>
    481                                                   </xs:simpleContent>
    482                                                   </xs:complexType>
    483                                                   </xs:element>
     475                                                    <xs:element minOccurs="1" maxOccurs="1" name="GUID">
     476                                                        <xs:annotation>
     477                                                            <xs:documentation xml:lang="en-us"> This GUID and the
     478                                                            Version attribute uniquely identify the Recommended Library
     479                                                            Instance. </xs:documentation>
     480                                                        </xs:annotation>
     481                                                        <xs:complexType>
     482                                                            <xs:simpleContent>
     483                                                            <xs:extension base="RegistryFormatGuid">
     484                                                            <xs:attribute name="Version" type="xs:decimal"
     485                                                            use="optional">
     486                                                            <xs:annotation>
     487                                                            <xs:documentation xml:lang="en-us"> This value, along with
     488                                                            the GUID, is used to uniquely identify this object. If this
     489                                                            value is not specified, then any version of the library
     490                                                            instance is recommended. </xs:documentation>
     491                                                            </xs:annotation>
     492                                                            </xs:attribute>
     493                                                            </xs:extension>
     494                                                            </xs:simpleContent>
     495                                                        </xs:complexType>
     496                                                    </xs:element>
    484497                                                </xs:sequence>
    485498                                            </xs:complexType>
    486499                                        </xs:element>
    487                                         <xs:element ref="HelpText" minOccurs="0"
    488                                             maxOccurs="unbounded"/>
     500                                        <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>
    489501                                    </xs:sequence>
    490502                                    <xs:attribute name="Keyword" type="xs:NCName" use="required">
    491503                                        <xs:annotation>
    492                                             <xs:documentation xml:lang="en-us"> The single word name
    493                                                 of the Library Class that module developers will use
    494                                                 to identify a library class dependency.
    495                                             </xs:documentation>
     504                                            <xs:documentation xml:lang="en-us"> The single word name of the Library
     505                                                Class that module developers will use to identify a library class
     506                                                dependency. </xs:documentation>
    496507                                        </xs:annotation>
    497508                                    </xs:attribute>
     
    506517                <xs:element minOccurs="0" maxOccurs="1" name="IndustryStandardIncludes">
    507518                    <xs:annotation>
    508                         <xs:documentation xml:lang="en-us"> This section is used to list header
    509                             files for industry standards not under the auspices of UEFI.org. For
    510                             example, headers that contain definitions and data structures for the
    511                             USB specifications. </xs:documentation>
    512                     </xs:annotation>
    513                     <xs:complexType>
    514                         <xs:sequence>
    515                             <xs:element minOccurs="1" maxOccurs="unbounded"
    516                                 name="IndustryStandardHeader">
     519                        <xs:documentation xml:lang="en-us"> This section is used to list header files for industry
     520                            standards not under the auspices of UEFI.org. For example, headers that contain definitions
     521                            and data structures for the USB specifications. </xs:documentation>
     522                    </xs:annotation>
     523                    <xs:complexType>
     524                        <xs:sequence>
     525                            <xs:element minOccurs="1" maxOccurs="unbounded" name="IndustryStandardHeader">
    517526                                <xs:complexType>
    518527                                    <xs:sequence>
    519                                         <xs:element minOccurs="1" maxOccurs="1" name="HeaderFile"
    520                                             type="xs:anyURI">
     528                                        <xs:element minOccurs="1" maxOccurs="1" name="HeaderFile" type="xs:anyURI">
    521529                                            <xs:annotation>
    522                                                 <xs:documentation xml:lang="en-us"> The package
    523                                                   relative path and filename (in the content zip
    524                                                   file) of the industry standard include file.
    525                                                 </xs:documentation>
     530                                                <xs:documentation xml:lang="en-us"> The package relative path and
     531                                                    filename (in the content zip file) of the industry standard include
     532                                                    file. </xs:documentation>
    526533                                            </xs:annotation>
    527534                                        </xs:element>
    528                                         <xs:element ref="HelpText" minOccurs="0"
    529                                             maxOccurs="unbounded"/>
     535                                        <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>
    530536                                    </xs:sequence>
    531537                                </xs:complexType>
     
    538544                <xs:element minOccurs="0" maxOccurs="1" name="PackageIncludes">
    539545                    <xs:annotation>
    540                         <xs:documentation xml:lang="en-us"> All top level header files that are
    541                             included by a package that are not listed above. They cannot
    542                             be:</xs:documentation>
     546                        <xs:documentation xml:lang="en-us"> All top level header files that are included by a package
     547                            that are not listed above. They cannot be:</xs:documentation>
    543548                        <xs:documentation xml:lang="en-us"> 1) Local to a module (module specific.) </xs:documentation>
    544549                        <xs:documentation xml:lang="en-us"> 2) An industry standard header. </xs:documentation>
    545                         <xs:documentation xml:lang="en-us"> 3) A library class header.
    546                         </xs:documentation>
     550                        <xs:documentation xml:lang="en-us"> 3) A library class header. </xs:documentation>
    547551                    </xs:annotation>
    548552                    <xs:complexType>
     
    553557                                        <xs:element minOccurs="1" maxOccurs="1" name="HeaderFile">
    554558                                            <xs:annotation>
    555                                                 <xs:documentation xml:lang="en-us"> This is the
    556                                                   Package relative path and filename location within
    557                                                   the content ZIP file. </xs:documentation>
     559                                                <xs:documentation xml:lang="en-us"> This is the Package relative path
     560                                                    and filename location within the content ZIP file.
     561                                                </xs:documentation>
    558562                                            </xs:annotation>
    559563                                            <xs:complexType>
    560564                                                <xs:simpleContent>
    561                                                   <xs:extension base="xs:anyURI">
    562                                                   <xs:attributeGroup ref="SupportedArchMod"/>
    563                                                   </xs:extension>
     565                                                    <xs:extension base="xs:anyURI">
     566                                                        <xs:attributeGroup ref="SupportedArchMod"/>
     567                                                    </xs:extension>
    564568                                                </xs:simpleContent>
    565569                                            </xs:complexType>
    566570                                        </xs:element>
    567                                         <xs:element ref="HelpText" minOccurs="0"
    568                                             maxOccurs="unbounded"/>
     571                                        <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>
    569572                                    </xs:sequence>
    570573                                </xs:complexType>
     
    580583                            <xs:element ref="ModuleSurfaceArea" minOccurs="1" maxOccurs="unbounded">
    581584                                <xs:annotation>
    582                                     <xs:documentation xml:lang="en-us"> This section lists the
    583                                         Module Surface Area for all modules provided with this
    584                                         package. </xs:documentation>
     585                                    <xs:documentation xml:lang="en-us"> This section lists the Module Surface Area for
     586                                        all modules provided with this package. </xs:documentation>
    585587                                </xs:annotation>
    586588                            </xs:element>
     
    592594                <xs:element minOccurs="0" maxOccurs="1" name="GuidDeclarations">
    593595                    <xs:annotation>
    594                         <xs:documentation xml:lang="en-us"> This section defines the mapping of GUID
    595                             C names to GUID values as a Registry Format GUID. </xs:documentation>
    596                         <xs:documentation xml:lang="en-us"> Modules that use these GUIDs must
    597                             specify their dependency on this package. </xs:documentation>
     596                        <xs:documentation xml:lang="en-us"> This section defines the mapping of GUID C names to GUID
     597                            values as a Registry Format GUID. </xs:documentation>
     598                        <xs:documentation xml:lang="en-us"> Modules that use these GUIDs must specify their dependency
     599                            on this package. </xs:documentation>
    598600                    </xs:annotation>
    599601                    <xs:complexType>
     
    601603                            <xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">
    602604                                <xs:annotation>
    603                                     <xs:documentation xml:lang="en-us"> Individual GUID Declarations
    604                                     </xs:documentation>
     605                                    <xs:documentation xml:lang="en-us"> Individual GUID Declarations </xs:documentation>
    605606                                </xs:annotation>
    606607                                <xs:complexType>
    607608                                    <xs:sequence>
    608                                         <xs:element minOccurs="1" maxOccurs="1" name="CName"
    609                                             type="xs:NCName"/>
     609                                        <xs:element minOccurs="1" maxOccurs="1" name="CName" type="xs:NCName"/>
    610610                                        <xs:element minOccurs="1" maxOccurs="1" name="GuidValue"
    611611                                            type="RegistryFormatGuid"/>
    612                                         <xs:element ref="HelpText" minOccurs="0"
    613                                             maxOccurs="unbounded"/>
     612                                        <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>
    614613                                    </xs:sequence>
    615                                     <xs:attribute name="UiName" type="xs:normalizedString"
    616                                         use="optional"/>
    617                                     <xs:attribute name="GuidTypes" type="GuidListType"
    618                                         use="optional"/>
     614                                    <xs:attribute name="UiName" type="xs:normalizedString" use="optional"/>
     615                                    <xs:attribute name="GuidTypes" type="GuidListType" use="optional"/>
    619616                                    <xs:attributeGroup ref="SupportedArchMod"/>
    620617                                </xs:complexType>
     
    627624                <xs:element minOccurs="0" maxOccurs="1" name="ProtocolDeclarations">
    628625                    <xs:annotation>
    629                         <xs:documentation xml:lang="en-us"> This section defines the mapping of
    630                             Protocol C names to GUID values as a Registry Format GUID. </xs:documentation>
    631                         <xs:documentation xml:lang="en-us"> Modules that use these Protocols must
    632                             specify their dependency on this package. </xs:documentation>
     626                        <xs:documentation xml:lang="en-us"> This section defines the mapping of Protocol C names to GUID
     627                            values as a Registry Format GUID. </xs:documentation>
     628                        <xs:documentation xml:lang="en-us"> Modules that use these Protocols must specify their
     629                            dependency on this package. </xs:documentation>
    633630                    </xs:annotation>
    634631                    <xs:complexType>
     
    636633                            <xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">
    637634                                <xs:annotation>
    638                                     <xs:documentation xml:lang="en-us"> Individual Protocol
    639                                         Declarations </xs:documentation>
     635                                    <xs:documentation xml:lang="en-us"> Individual Protocol Declarations
     636                                    </xs:documentation>
    640637                                </xs:annotation>
    641638                                <xs:complexType>
    642639                                    <xs:sequence>
    643                                         <xs:element minOccurs="1" maxOccurs="1" name="CName"
    644                                             type="xs:NCName"/>
     640                                        <xs:element minOccurs="1" maxOccurs="1" name="CName" type="xs:NCName"/>
    645641                                        <xs:element minOccurs="1" maxOccurs="1" name="GuidValue"
    646642                                            type="RegistryFormatGuid"/>
    647                                         <xs:element ref="HelpText" minOccurs="0"
    648                                             maxOccurs="unbounded"/>
     643                                        <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>
    649644                                    </xs:sequence>
    650                                     <xs:attribute name="UiName" type="xs:normalizedString"
    651                                         use="optional"/>
     645                                    <xs:attribute name="UiName" type="xs:normalizedString" use="optional"/>
    652646                                    <xs:attributeGroup ref="SupportedArchMod"/>
    653647                                </xs:complexType>
     
    660654                <xs:element minOccurs="0" maxOccurs="1" name="PpiDeclarations">
    661655                    <xs:annotation>
    662                         <xs:documentation xml:lang="en-us"> This section defines the mapping of Ppi
    663                             C names to GUID values as a Registry Format GUID. </xs:documentation>
    664                         <xs:documentation xml:lang="en-us"> Modules that use these Ppis must specify
    665                             their dependency on this package. </xs:documentation>
     656                        <xs:documentation xml:lang="en-us"> This section defines the mapping of Ppi C names to GUID
     657                            values as a Registry Format GUID. </xs:documentation>
     658                        <xs:documentation xml:lang="en-us"> Modules that use these Ppis must specify their dependency on
     659                            this package. </xs:documentation>
    666660                    </xs:annotation>
    667661                    <xs:complexType>
     
    669663                            <xs:element minOccurs="1" maxOccurs="unbounded" name="Entry">
    670664                                <xs:annotation>
    671                                     <xs:documentation xml:lang="en-us"> Individual PPI Declarations
    672                                     </xs:documentation>
     665                                    <xs:documentation xml:lang="en-us"> Individual PPI Declarations </xs:documentation>
    673666                                </xs:annotation>
    674667                                <xs:complexType>
    675668                                    <xs:sequence>
    676                                         <xs:element minOccurs="1" maxOccurs="1" name="CName"
    677                                             type="xs:NCName"/>
     669                                        <xs:element minOccurs="1" maxOccurs="1" name="CName" type="xs:NCName"/>
    678670                                        <xs:element minOccurs="1" maxOccurs="1" name="GuidValue"
    679671                                            type="RegistryFormatGuid"/>
    680                                         <xs:element ref="HelpText" minOccurs="0"
    681                                             maxOccurs="unbounded"/>
     672                                        <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>
    682673                                    </xs:sequence>
    683                                     <xs:attribute name="UiName" type="xs:normalizedString"
    684                                         use="optional"/>
     674                                    <xs:attribute name="UiName" type="xs:normalizedString" use="optional"/>
    685675                                    <xs:attributeGroup ref="SupportedArchMod"/>
    686676                                </xs:complexType>
     
    693683                <xs:element minOccurs="0" maxOccurs="1" name="PcdDeclarations">
    694684                    <xs:annotation>
    695                         <xs:documentation xml:lang="en-us"> This section is used to declare platform
    696                             configuration knobs that are defined by this package. </xs:documentation>
    697                         <xs:documentation xml:lang="en-us"> Modules that use these PCD values must
    698                             specify their dependency on this package. </xs:documentation>
     685                        <xs:documentation xml:lang="en-us"> This section is used to declare platform configuration knobs
     686                            that are defined by this package. </xs:documentation>
     687                        <xs:documentation xml:lang="en-us"> Modules that use these PCD values must specify their
     688                            dependency on this package. </xs:documentation>
    699689                    </xs:annotation>
    700690                    <xs:complexType>
     
    703693                                <xs:complexType>
    704694                                    <xs:sequence>
    705                                         <xs:element minOccurs="1" maxOccurs="1"
    706                                             name="TokenSpaceGuidCname" type="xs:NCName">
     695                                        <xs:element minOccurs="1" maxOccurs="1" name="TokenSpaceGuidCname"
     696                                            type="xs:NCName">
    707697                                            <xs:annotation>
    708                                                 <xs:documentation xml:lang="en-us"> Specifies the C
    709                                                   name of the Token Space GUID of which this PCD
    710                                                   Entry is a member. This C name should also be
    711                                                   listed in the GUIDs section, (specified above,)
    712                                                   where the C name is assigned to a GUID value.
    713                                                 </xs:documentation>
     698                                                <xs:documentation xml:lang="en-us"> Specifies the C name of the Token
     699                                                    Space GUID of which this PCD Entry is a member. This C name should
     700                                                    also be listed in the GUIDs section, (specified above,) where the C
     701                                                    name is assigned to a GUID value. </xs:documentation>
    714702                                            </xs:annotation>
    715703                                        </xs:element>
    716704                                        <xs:element minOccurs="1" maxOccurs="1" name="Token">
    717705                                            <xs:annotation>
    718                                                 <xs:documentation xml:lang="en-us"> Specifies the
    719                                                   32-bit token value for this PCD Entry. The Token
    720                                                   number must be unique to the Token Space that
    721                                                   declares the PCD. </xs:documentation>
    722                                                 <xs:documentation xml:lang="en-us"> The minLength of
    723                                                   3 is required to handle the "0x" prefix to the hex
    724                                                   number. </xs:documentation>
     706                                                <xs:documentation xml:lang="en-us"> Specifies the 32-bit token value for
     707                                                    this PCD Entry. The Token number must be unique to the Token Space
     708                                                    that declares the PCD. </xs:documentation>
     709                                                <xs:documentation xml:lang="en-us"> The minLength of 3 is required to
     710                                                    handle the "0x" prefix to the hex number. </xs:documentation>
    725711                                            </xs:annotation>
    726712                                            <xs:simpleType>
    727713                                                <xs:restriction base="HexNumber">
    728                                                   <xs:minLength value="3"/>
    729                                                   <xs:maxLength value="10"/>
     714                                                    <xs:minLength value="3"/>
     715                                                    <xs:maxLength value="10"/>
    730716                                                </xs:restriction>
    731717                                            </xs:simpleType>
    732718                                        </xs:element>
    733                                         <xs:element minOccurs="1" maxOccurs="1" name="CName"
    734                                             type="xs:NCName"/>
    735                                         <xs:element minOccurs="1" maxOccurs="1" name="DatumType"
    736                                             type="PcdDatumTypes">
     719                                        <xs:element minOccurs="1" maxOccurs="1" name="CName" type="xs:NCName"/>
     720                                        <xs:element minOccurs="1" maxOccurs="1" name="DatumType" type="PcdDatumTypes">
    737721                                            <xs:annotation>
    738                                                 <xs:documentation xml:lang="en-us"> A string that
    739                                                   contains the data type of this PCD Entry. PCD data
    740                                                   types are restricted to the following set:UINT8,
    741                                                   UINT16, UINT32, UINT64, VOID*, BOOLEAN.
     722                                                <xs:documentation xml:lang="en-us"> A string that contains the data type
     723                                                    of this PCD Entry. PCD data types are restricted to the following
     724                                                    set:UINT8, UINT16, UINT32, UINT64, VOID*, BOOLEAN.
    742725                                                </xs:documentation>
    743726                                            </xs:annotation>
    744727                                        </xs:element>
    745                                         <xs:element minOccurs="1" maxOccurs="1" name="ValidUsage"
    746                                             type="PcdItemListType">
     728                                        <xs:element minOccurs="1" maxOccurs="1" name="ValidUsage" type="PcdItemListType">
    747729                                            <xs:annotation>
    748                                                 <xs:documentation xml:lang="en-us"> A string that
    749                                                   contains one or more PCD Item types separated by
    750                                                   spaces. The PCD Item types are restricted to
    751                                                   FeaturePcd, FixedPcd, PatchPcd, Pcd and/or PcdEx.
     730                                                <xs:documentation xml:lang="en-us"> A string that contains one or more
     731                                                    PCD Item types separated by spaces. The PCD Item types are
     732                                                    restricted to FeaturePcd, FixedPcd, PatchPcd, Pcd and/or PcdEx.
    752733                                                </xs:documentation>
    753734                                            </xs:annotation>
     
    757738                                        <xs:element minOccurs="0" maxOccurs="1" name="MaxDatumSize">
    758739                                            <xs:annotation>
    759                                                 <xs:documentation xml:lang="en-us"> This is a
    760                                                   recommended maximum data size for VOID* data
    761                                                   types, the actual value should be defined by the
    762                                                   Platform Integrator. It is not required for the
    763                                                   other data types. </xs:documentation>
    764                                                 <xs:documentation xml:lang="en-us"> The minLength of
    765                                                   3 is required to handle the "0x" prefix to the hex
    766                                                   number. </xs:documentation>
     740                                                <xs:documentation xml:lang="en-us"> This is a recommended maximum data
     741                                                    size for VOID* data types, the actual value should be defined by the
     742                                                    Platform Integrator. It is not required for the other data types. </xs:documentation>
     743                                                <xs:documentation xml:lang="en-us"> The minLength of 3 is required to
     744                                                    handle the "0x" prefix to the hex number. </xs:documentation>
    767745
    768746                                            </xs:annotation>
    769747                                            <xs:simpleType>
    770748                                                <xs:restriction base="HexNumber">
    771                                                   <xs:minLength value="3"/>
     749                                                    <xs:minLength value="3"/>
    772750                                                </xs:restriction>
    773751                                            </xs:simpleType>
    774752                                        </xs:element>
    775                                         <xs:element ref="HelpText" minOccurs="0"
    776                                             maxOccurs="unbounded"/>
    777 
    778                                         <xs:element minOccurs="0" maxOccurs="unbounded"
    779                                             name="PcdError">
     753                                        <xs:element minOccurs="0" maxOccurs="unbounded" name="Prompt">
    780754                                            <xs:annotation>
    781                                                 <xs:documentation xml:lang="en-us"> Valid Error
    782                                                   messages that may be implemented in a module for
    783                                                   the PCD Entry. Only One Error Number per PcdError,
    784                                                   (multiple ErrorMessage entries are permitted) and
    785                                                   multiple PcdError elements are permitted.
    786                                                 </xs:documentation>
     755                                                <xs:documentation xml:lang="en-US"> This entry contains prompt
     756                                                    information, that may used by tools to assist platform integrators
     757                                                    with choosing the correct values </xs:documentation>
     758                                            </xs:annotation>
     759                                            <xs:complexType>
     760                                                <xs:simpleContent>
     761                                                    <xs:extension base="xs:string">
     762                                                        <xs:attribute name="Lang" type="xs:language" default="en-us"
     763                                                            use="optional"/>
     764                                                    </xs:extension>
     765                                                </xs:simpleContent>
     766                                            </xs:complexType>
     767                                        </xs:element>
     768                                        <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>
     769
     770                                        <xs:element minOccurs="0" maxOccurs="unbounded" name="PcdError">
     771                                            <xs:annotation>
     772                                                <xs:documentation xml:lang="en-us"> Valid Error messages that may be
     773                                                    implemented in a module for the PCD Entry. Only One Error Number per
     774                                                    PcdError, (multiple ErrorMessage entries are permitted) and multiple
     775                                                    PcdError elements are permitted. </xs:documentation>
    787776                                            </xs:annotation>
    788777                                            <xs:complexType>
    789778                                                <xs:sequence>
    790                                                   <xs:choice minOccurs="1" maxOccurs="1">
    791                                                   <xs:annotation>
    792                                                   <xs:documentation xml:lang="en-us"> One of the
    793                                                   following types of comparisons, which must be able
    794                                                   to evaluate to either true or false.
    795                                                   </xs:documentation>
    796                                                   </xs:annotation>
    797                                                   <xs:element minOccurs="0" maxOccurs="1"
    798                                                   name="ValidValueList">
    799                                                   <xs:annotation>
    800                                                   <xs:documentation xml:lang="en-us"> The PCD Value
    801                                                   must be space separated list of values. Values are
    802                                                   restricted to the data type of this PCD.
    803                                                   </xs:documentation>
    804                                                   </xs:annotation>
    805                                                   <xs:complexType>
    806                                                   <xs:simpleContent>
    807                                                   <xs:extension base="xs:normalizedString">
    808                                                   <xs:attribute name="Lang" type="xs:language"
    809                                                   use="optional"/>
    810                                                   </xs:extension>
    811                                                   </xs:simpleContent>
    812                                                   </xs:complexType>
    813                                                   </xs:element>
    814                                                   <xs:element minOccurs="0" maxOccurs="1"
    815                                                   name="ValidValueRange" type="xs:normalizedString">
    816                                                   <xs:annotation>
    817                                                   <xs:documentation xml:lang="en-us"> The PCD must
    818                                                   be within a specifed range of numeric values.
    819                                                   Restricted to C style Relational, Equality and
    820                                                   Logicial Operators and parenthesis are valid. Only
    821                                                   the CName for this PCD is permitted in the
    822                                                   ValidValueRange expression. All other values must
    823                                                   be numeric.</xs:documentation>
    824                                                   <xs:documentation xml:lang="en-us"> LValue (op
    825                                                   RValue)+ </xs:documentation>
    826                                                   </xs:annotation>
    827                                                   </xs:element>
    828                                                   <xs:element minOccurs="0" maxOccurs="1"
    829                                                   name="Expression" type="xs:normalizedString">
    830                                                   <xs:annotation>
    831                                                   <xs:documentation xml:lang="en-us"> A in-fix
    832                                                   logical expression using C style logical
    833                                                   operators. </xs:documentation>
    834                                                   </xs:annotation>
    835                                                   </xs:element>
    836                                                   </xs:choice>
    837                                                   <xs:element minOccurs="1" maxOccurs="1"
    838                                                   name="ErrorNumber">
    839                                                   <xs:annotation>
    840                                                   <xs:documentation xml:lang="en-us"> A hexadecimal
    841                                                   value for the error message as defined by
    842                                                   specifications. </xs:documentation>
    843                                                   <xs:documentation xml:lang="en-us"> The minLength
    844                                                   of 3 is required to handle the "0x" prefix to the
    845                                                   hex number. </xs:documentation>
    846 
    847                                                   </xs:annotation>
    848                                                   <xs:simpleType>
    849                                                   <xs:restriction base="HexNumber">
    850                                                   <xs:minLength value="3"/>
    851                                                   </xs:restriction>
    852                                                   </xs:simpleType>
    853                                                   </xs:element>
    854                                                   <xs:element minOccurs="1" maxOccurs="unbounded"
    855                                                   name="ErrorMessage">
    856                                                   <xs:annotation>
    857                                                   <xs:documentation xml:lang="en-us"> This string
    858                                                   should be defined by specifications. There are
    859                                                   pre-defined error number ranges in the UEFI/PI
    860                                                   specificaiton. </xs:documentation>
    861                                                   </xs:annotation>
    862                                                   <xs:complexType>
    863                                                   <xs:simpleContent>
    864                                                   <xs:extension base="xs:string">
    865                                                   <xs:attribute name="Lang" type="xs:language"
    866                                                   default="en-us" use="optional"/>
    867                                                   </xs:extension>
    868                                                   </xs:simpleContent>
    869                                                   </xs:complexType>
    870                                                   </xs:element>
     779                                                    <xs:choice minOccurs="1" maxOccurs="1">
     780                                                        <xs:annotation>
     781                                                            <xs:documentation xml:lang="en-us"> One of the following
     782                                                            types of comparisons, which must be able to evaluate to
     783                                                            either true or false. </xs:documentation>
     784                                                        </xs:annotation>
     785                                                        <xs:element minOccurs="0" maxOccurs="1" name="ValidValueList">
     786                                                            <xs:annotation>
     787                                                            <xs:documentation xml:lang="en-us"> The PCD Value must be
     788                                                            space separated list of values. Values are restricted to the
     789                                                            data type of this PCD. </xs:documentation>
     790                                                            </xs:annotation>
     791                                                            <xs:complexType>
     792                                                            <xs:simpleContent>
     793                                                            <xs:extension base="xs:normalizedString">
     794                                                            <xs:attribute name="Lang" type="xs:language" use="optional"
     795                                                            />
     796                                                            </xs:extension>
     797                                                            </xs:simpleContent>
     798                                                            </xs:complexType>
     799                                                        </xs:element>
     800                                                        <xs:element minOccurs="0" maxOccurs="1" name="ValidValueRange"
     801                                                            type="xs:normalizedString">
     802                                                            <xs:annotation>
     803                                                            <xs:documentation xml:lang="en-us"> The PCD must be within a
     804                                                            specifed range of numeric values. Restricted to C style
     805                                                            Relational, Equality and Logicial Operators and parenthesis
     806                                                            are valid. Only the CName for this PCD is permitted in the
     807                                                            ValidValueRange expression. All other values must be
     808                                                            numeric.</xs:documentation>
     809                                                            <xs:documentation xml:lang="en-us"> LValue (op RValue)+
     810                                                            </xs:documentation>
     811                                                            </xs:annotation>
     812                                                        </xs:element>
     813                                                        <xs:element minOccurs="0" maxOccurs="1" name="Expression"
     814                                                            type="xs:normalizedString">
     815                                                            <xs:annotation>
     816                                                            <xs:documentation xml:lang="en-us"> A in-fix logical
     817                                                            expression using C style logical operators.
     818                                                            </xs:documentation>
     819                                                            </xs:annotation>
     820                                                        </xs:element>
     821                                                    </xs:choice>
     822                                                    <xs:element minOccurs="1" maxOccurs="1" name="ErrorNumber">
     823                                                        <xs:annotation>
     824                                                            <xs:documentation xml:lang="en-us"> A hexadecimal value for
     825                                                            the error message as defined by specifications. </xs:documentation>
     826                                                            <xs:documentation xml:lang="en-us"> The minLength of 3 is
     827                                                            required to handle the "0x" prefix to the hex number. </xs:documentation>
     828
     829                                                        </xs:annotation>
     830                                                        <xs:simpleType>
     831                                                            <xs:restriction base="HexNumber">
     832                                                            <xs:minLength value="3"/>
     833                                                            </xs:restriction>
     834                                                        </xs:simpleType>
     835                                                    </xs:element>
     836                                                    <xs:element minOccurs="1" maxOccurs="unbounded" name="ErrorMessage">
     837                                                        <xs:annotation>
     838                                                            <xs:documentation xml:lang="en-us"> This string should be
     839                                                            defined by specifications. There are pre-defined error
     840                                                            number ranges in the UEFI/PI specificaiton.
     841                                                            </xs:documentation>
     842                                                        </xs:annotation>
     843                                                        <xs:complexType>
     844                                                            <xs:simpleContent>
     845                                                            <xs:extension base="xs:string">
     846                                                            <xs:attribute name="Lang" type="xs:language" default="en-us"
     847                                                            use="optional"/>
     848                                                            </xs:extension>
     849                                                            </xs:simpleContent>
     850                                                        </xs:complexType>
     851                                                    </xs:element>
    871852                                                </xs:sequence>
    872853                                            </xs:complexType>
     
    883864                <xs:element minOccurs="0" maxOccurs="1" name="PcdRelationshipChecks">
    884865                    <xs:annotation>
    885                         <xs:documentation xml:lang="en-us"> This section is used to describe any PCD
    886                             interdependencies or relationships. </xs:documentation>
    887                     </xs:annotation>
    888                     <xs:complexType>
    889                         <xs:sequence>
    890                             <xs:element minOccurs="1" maxOccurs="unbounded" name="PcdCheck"
    891                                 type="xs:normalizedString">
     866                        <xs:documentation xml:lang="en-us"> This section is used to describe any PCD interdependencies
     867                            or relationships. </xs:documentation>
     868                    </xs:annotation>
     869                    <xs:complexType>
     870                        <xs:sequence>
     871                            <xs:element minOccurs="1" maxOccurs="unbounded" name="PcdCheck" type="xs:normalizedString">
    892872                                <xs:annotation>
    893873                                    <xs:documentation xml:lang="en-us"> This entry must used
    894                                         TokenSpaceGuidCName.PcdCname for every named PCD. Restricted
    895                                         to Relational, Equality and Logical Operators (NOT, AND, OR,
    896                                         GT, GE, EQ, LE, LT and XOR) and parenthesis are valid. Only
    897                                         the TokenSpaceGuidCName.PcdCname us permitted to name PCDs
    898                                         in the expression. All other values must be numeric. </xs:documentation>
    899                                     <xs:documentation xml:lang="en-us"> LValue (op RValue)+
    900                                     </xs:documentation>
     874                                        TokenSpaceGuidCName.PcdCname for every named PCD. Restricted to Relational,
     875                                        Equality and Logical Operators (NOT, AND, OR, GT, GE, EQ, LE, LT and XOR) and
     876                                        parenthesis are valid. Only the TokenSpaceGuidCName.PcdCname us permitted to
     877                                        name PCDs in the expression. All other values must be numeric. </xs:documentation>
     878                                    <xs:documentation xml:lang="en-us"> LValue (op RValue)+ </xs:documentation>
    901879                                </xs:annotation>
    902880                            </xs:element>
     
    907885                <xs:element minOccurs="0" maxOccurs="unbounded" name="MiscellaneousFiles">
    908886                    <xs:annotation>
    909                         <xs:documentation xml:lang="en-us"> This section contains files that are not
    910                             part of the code distributed with this package. </xs:documentation>
    911                     </xs:annotation>
    912                     <xs:complexType>
    913                         <xs:sequence>
    914                             <xs:element minOccurs="0" maxOccurs="1" name="Copyright"
    915                                 type="xs:string">
    916                                 <xs:annotation>
    917                                     <xs:documentation xml:lang="en-us"> Only required if different
    918                                         from the Package Copyright. </xs:documentation>
     887                        <xs:documentation xml:lang="en-us"> This section contains files that are not part of the code
     888                            distributed with this package. </xs:documentation>
     889                    </xs:annotation>
     890                    <xs:complexType>
     891                        <xs:sequence>
     892                            <xs:element minOccurs="0" maxOccurs="1" name="Copyright" type="xs:string">
     893                                <xs:annotation>
     894                                    <xs:documentation xml:lang="en-us"> Only required if different from the Package
     895                                        Copyright. </xs:documentation>
    919896                                </xs:annotation>
    920897                            </xs:element>
    921898                            <xs:element minOccurs="0" maxOccurs="1" name="License" type="xs:string">
    922899                                <xs:annotation>
    923                                     <xs:documentation xml:lang="en-us"> Only required if different
    924                                         from the Package License. </xs:documentation>
     900                                    <xs:documentation xml:lang="en-us"> Only required if different from the Package
     901                                        License. </xs:documentation>
    925902                                </xs:annotation>
    926903                            </xs:element>
    927904                            <xs:element minOccurs="0" maxOccurs="1" name="Abstract" type="xs:string">
    928905                                <xs:annotation>
    929                                     <xs:documentation xml:lang="en-us"> A one line description of
    930                                         this section's content. </xs:documentation>
    931                                 </xs:annotation>
    932                             </xs:element>
    933                             <xs:element minOccurs="0" maxOccurs="unbounded" name="Description"
    934                                 type="xs:string">
    935                                 <xs:annotation>
    936                                     <xs:documentation xml:lang="en-us"> A complete description of
    937                                         the files in this section. </xs:documentation>
     906                                    <xs:documentation xml:lang="en-us"> A one line description of this section's
     907                                        content. </xs:documentation>
     908                                </xs:annotation>
     909                            </xs:element>
     910                            <xs:element minOccurs="0" maxOccurs="unbounded" name="Description" type="xs:string">
     911                                <xs:annotation>
     912                                    <xs:documentation xml:lang="en-us"> A complete description of the files in this
     913                                        section. </xs:documentation>
    938914                                </xs:annotation>
    939915                            </xs:element>
    940916                            <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename">
    941917                                <xs:annotation>
    942                                     <xs:documentation xml:lang="en-us"> This is the PackagePath
    943                                         relative path and filename location within the ZIP file.
    944                                     </xs:documentation>
     918                                    <xs:documentation xml:lang="en-us"> This is the PackagePath relative path and
     919                                        filename location within the ZIP file. </xs:documentation>
    945920                                </xs:annotation>
    946921                                <xs:complexType>
    947922                                    <xs:simpleContent>
    948923                                        <xs:extension base="xs:anyURI">
    949                                             <xs:attribute name="Executable" type="xs:boolean"
    950                                                 default="false" use="optional">
     924                                            <xs:attribute name="Executable" type="xs:boolean" default="false"
     925                                                use="optional">
    951926                                                <xs:annotation>
    952                                                   <xs:documentation xml:lang="en-us"> If true, used
    953                                                   by installation tools to ensure that a file that
    954                                                   must be executable has the correct properties to
    955                                                   permit execution. </xs:documentation>
     927                                                    <xs:documentation xml:lang="en-us"> If true, used by installation
     928                                                        tools to ensure that a file that must be executable has the
     929                                                        correct properties to permit execution. </xs:documentation>
    956930                                                </xs:annotation>
    957931                                            </xs:attribute>
     
    968942                <xs:element minOccurs="0" maxOccurs="unbounded" name="UserExtensions">
    969943                    <xs:annotation>
    970                         <xs:documentation xml:lang="en-us"> This section is used for any processing
    971                             instructions that may be custom to the content provided by this package
    972                             that are common to this package. </xs:documentation>
     944                        <xs:documentation xml:lang="en-us"> This section is used for any processing instructions that
     945                            may be custom to the content provided by this package that are common to this package.
     946                        </xs:documentation>
    973947                    </xs:annotation>
    974948                    <xs:complexType mixed="true">
     
    978952                        <xs:attribute name="UserId" type="xs:NCName" use="required">
    979953                            <xs:annotation>
    980                                 <xs:documentation xml:lang="en-us"> This is a single word identifier
    981                                     for grouping similar content that does not fit into previously
    982                                     defined sections or other sections of the Distribution.
    983                                 </xs:documentation>
     954                                <xs:documentation xml:lang="en-us"> This is a single word identifier for grouping
     955                                    similar content that does not fit into previously defined sections or other sections
     956                                    of the Distribution. </xs:documentation>
    984957                            </xs:annotation>
    985958                        </xs:attribute>
    986959                        <xs:attribute name="Identifier" type="xs:string" use="required">
    987960                            <xs:annotation>
    988                                 <xs:documentation xml:lang="en-us"> This can be used to
    989                                     differentiate multiple sections with a grouping. </xs:documentation>
    990                                 <xs:documentation xml:lang="en-us"> For example, a PRE_PROCESS
    991                                     Identifier might indicate specific steps and tools required
    992                                     before processing module content, while a different
    993                                     UserExtensions section with a POST_PROCESS Identifier might
    994                                     describe steps that need to be executed after operations on the
    995                                     modules in this package. </xs:documentation>
     961                                <xs:documentation xml:lang="en-us"> This can be used to differentiate multiple sections
     962                                    with a grouping. </xs:documentation>
     963                                <xs:documentation xml:lang="en-us"> For example, a PRE_PROCESS Identifier might indicate
     964                                    specific steps and tools required before processing module content, while a
     965                                    different UserExtensions section with a POST_PROCESS Identifier might describe steps
     966                                    that need to be executed after operations on the modules in this package.
     967                                </xs:documentation>
    996968                            </xs:annotation>
    997969                        </xs:attribute>
     
    1008980    <xs:element name="ModuleSurfaceArea">
    1009981        <xs:annotation>
    1010             <xs:documentation xml:lang="en-us"> Each module is uniquely identified by it's GUID and
    1011                 Version number. Backward compatible releases of a module need only change the
    1012                 version number, while non-backward compatible changes require the GUID to change
    1013                 (resetting the version number to 1.0 is optional.) </xs:documentation>
     982            <xs:documentation xml:lang="en-us"> Each module is uniquely identified by it's GUID and Version number.
     983                Backward compatible releases of a module need only change the version number, while non-backward
     984                compatible changes require the GUID to change (resetting the version number to 1.0 is optional.)
     985            </xs:documentation>
    1014986        </xs:annotation>
    1015987        <xs:complexType>
     
    1021993                            <xs:element minOccurs="1" maxOccurs="1" name="Name">
    1022994                                <xs:annotation>
    1023                                     <xs:documentation xml:lang="en-us"> This is the User Interface
    1024                                         Name for this Module. </xs:documentation>
     995                                    <xs:documentation xml:lang="en-us"> This is the User Interface Name for this Module.
     996                                    </xs:documentation>
    1025997                                </xs:annotation>
    1026998                                <xs:complexType>
    1027999                                    <xs:simpleContent>
    10281000                                        <xs:extension base="xs:normalizedString">
    1029                                             <xs:attribute name="BaseName" type="xs:NMTOKEN"
    1030                                                 use="required">
     1001                                            <xs:attribute name="BaseName" type="xs:NMTOKEN" use="required">
    10311002                                                <xs:annotation>
    1032                                                   <xs:documentation xml:lang="en-us"> This is a
    1033                                                   single word BaseName that will be used to create a
    1034                                                   module meta-data file. </xs:documentation>
    1035                                                   <xs:documentation xml:lang="en-us"> This name
    1036                                                   should also be used to create output file names
    1037                                                   and directories. </xs:documentation>
     1003                                                    <xs:documentation xml:lang="en-us"> This is a single word BaseName
     1004                                                        that will be used to create a module meta-data file. </xs:documentation>
     1005                                                    <xs:documentation xml:lang="en-us"> This name should also be used to
     1006                                                        create output file names and directories. </xs:documentation>
    10381007                                                </xs:annotation>
    10391008                                            </xs:attribute>
     
    10441013                            <xs:element minOccurs="1" maxOccurs="1" name="GUID">
    10451014                                <xs:annotation>
    1046                                     <xs:documentation xml:lang="en-us"> This GUID and the Version
    1047                                         attribute uniquely identify a given Module.
    1048                                     </xs:documentation>
     1015                                    <xs:documentation xml:lang="en-us"> This GUID and the Version attribute uniquely
     1016                                        identify a given Module. </xs:documentation>
    10491017                                </xs:annotation>
    10501018                                <xs:complexType>
    10511019                                    <xs:simpleContent>
    10521020                                        <xs:extension base="RegistryFormatGuid">
    1053                                             <xs:attribute name="Version" type="xs:decimal"
    1054                                                 use="required">
     1021                                            <xs:attribute name="Version" type="xs:decimal" use="required">
    10551022                                                <xs:annotation>
    1056                                                   <xs:documentation xml:lang="en-us"> This value,
    1057                                                   along with the GUID, is used to uniquely identify
    1058                                                   this object. </xs:documentation>
    1059                                                   <xs:documentation xml:lang="en-us"> Backward
    1060                                                   compatible changes must make sure this number is
    1061                                                   incremented from the most recent version.
    1062                                                   Non-backward compatible changes require a new
    1063                                                   GUID, and the version can be reset.
    1064                                                   </xs:documentation>
     1023                                                    <xs:documentation xml:lang="en-us"> This value, along with the GUID,
     1024                                                        is used to uniquely identify this object. </xs:documentation>
     1025                                                    <xs:documentation xml:lang="en-us"> Backward compatible changes must
     1026                                                        make sure this number is incremented from the most recent
     1027                                                        version. Non-backward compatible changes require a new GUID, and
     1028                                                        the version can be reset. </xs:documentation>
    10651029                                                </xs:annotation>
    10661030                                            </xs:attribute>
     
    10691033                                </xs:complexType>
    10701034                            </xs:element>
    1071                             <xs:element minOccurs="0" maxOccurs="1" name="Copyright"
    1072                                 type="xs:string">
    1073                                 <xs:annotation>
    1074                                     <xs:documentation xml:lang="en-us"> This is only required if the
    1075                                         Copyright is different from either the Package or
    1076                                         Distribution copyright. Multiple copyright lines are
     1035                            <xs:element minOccurs="0" maxOccurs="unbounded" name="Copyright">
     1036                                <xs:annotation>
     1037                                    <xs:documentation xml:lang="en-us"> This is only required if the Copyright is
     1038                                        different from either the Package or Distribution copyright. Multiple copyright
     1039                                        lines are permitted within this section. </xs:documentation>
     1040                                </xs:annotation>
     1041                                <xs:complexType>
     1042                                    <xs:simpleContent>
     1043                                        <xs:extension base="xs:string">
     1044                                            <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"
     1045                                            />
     1046                                        </xs:extension>
     1047                                    </xs:simpleContent>
     1048                                </xs:complexType>
     1049                            </xs:element>
     1050                            <xs:element minOccurs="0" maxOccurs="unbounded" name="License">
     1051                                <xs:annotation>
     1052                                    <xs:documentation xml:lang="en-us"> This is only required if the license is
     1053                                        different from either the Package or Distribution license. Multiple licenses are
    10771054                                        permitted within this section. </xs:documentation>
    10781055                                </xs:annotation>
    1079                             </xs:element>
    1080                             <xs:element minOccurs="0" maxOccurs="1" name="License" type="xs:string">
    1081                                 <xs:annotation>
    1082                                     <xs:documentation xml:lang="en-us"> This is only required if the
    1083                                         license is different from either the Package or Distribution
    1084                                         license. Multiple licenses are permitted within this
    1085                                         section. </xs:documentation>
    1086                                 </xs:annotation>
    1087                             </xs:element>
    1088                             <xs:element minOccurs="0" maxOccurs="1" name="Abstract"
    1089                                 type="xs:normalizedString">
    1090                                 <xs:annotation>
    1091                                     <xs:documentation xml:lang="en-us"> A brief text description of
    1092                                         the module. </xs:documentation>
    1093                                 </xs:annotation>
    1094                             </xs:element>
    1095                             <xs:element minOccurs="0" maxOccurs="1" name="Description"
    1096                                 type="xs:string">
    1097                                 <xs:annotation>
    1098                                     <xs:documentation xml:lang="en-us"> A complete description of
    1099                                         the module contents and/or features including a description
    1100                                         of the updates since the previous module release.
     1056                                <xs:complexType>
     1057                                    <xs:simpleContent>
     1058                                        <xs:extension base="xs:string">
     1059                                            <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"
     1060                                            />
     1061                                        </xs:extension>
     1062                                    </xs:simpleContent>
     1063                                </xs:complexType>
     1064                            </xs:element>
     1065                            <xs:element minOccurs="0" maxOccurs="unbounded" name="Abstract">
     1066                                <xs:annotation>
     1067                                    <xs:documentation xml:lang="en-us"> A brief text description of the module.
    11011068                                    </xs:documentation>
    11021069                                </xs:annotation>
     1070                                <xs:complexType>
     1071                                    <xs:simpleContent>
     1072                                        <xs:extension base="xs:normalizedString">
     1073                                            <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"
     1074                                            />
     1075                                        </xs:extension>
     1076                                    </xs:simpleContent>
     1077                                </xs:complexType>
     1078                            </xs:element>
     1079                            <xs:element minOccurs="0" maxOccurs="unbounded" name="Description">
     1080                                <xs:annotation>
     1081                                    <xs:documentation xml:lang="en-us"> A complete description of the module contents
     1082                                        and/or features including a description of the updates since the previous module
     1083                                        release. </xs:documentation>
     1084                                </xs:annotation>
     1085                                <xs:complexType>
     1086                                    <xs:simpleContent>
     1087                                        <xs:extension base="xs:string">
     1088                                            <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"
     1089                                            />
     1090                                        </xs:extension>
     1091                                    </xs:simpleContent>
     1092                                </xs:complexType>
    11031093                            </xs:element>
    11041094                        </xs:sequence>
     
    11091099                <xs:element minOccurs="0" maxOccurs="1" name="ModuleProperties">
    11101100                    <xs:annotation>
    1111                         <xs:documentation xml:lang="en-us"> List general information about a module,
    1112                             including the Supported Architectures, this module's type,
    1113                             specifications the module is coded against, and other informational
    1114                             content. </xs:documentation>
    1115                     </xs:annotation>
    1116                     <xs:complexType>
    1117                         <xs:sequence>
    1118                             <xs:element minOccurs="1" maxOccurs="1" name="ModuleType"
    1119                                 type="ModuleTypes">
    1120                                 <xs:annotation>
    1121                                     <xs:documentation xml:lang="en-us"> One of the Enumerated module
    1122                                         types that limit the use of a module. </xs:documentation>
     1101                        <xs:documentation xml:lang="en-us"> List general information about a module, including the
     1102                            Supported Architectures, this module's type, specifications the module is coded against, and
     1103                            other informational content. </xs:documentation>
     1104                    </xs:annotation>
     1105                    <xs:complexType>
     1106                        <xs:sequence>
     1107                            <xs:element minOccurs="1" maxOccurs="1" name="ModuleType" type="ModuleTypes">
     1108                                <xs:annotation>
     1109                                    <xs:documentation xml:lang="en-us"> One of the Enumerated module types that limit
     1110                                        the use of a module. </xs:documentation>
    11231111                                </xs:annotation>
    11241112                            </xs:element>
    11251113                            <xs:element minOccurs="1" maxOccurs="1" name="Path" type="xs:anyURI">
    11261114                                <xs:annotation>
    1127                                     <xs:documentation xml:lang="en-us"> For stand-alone modules that
    1128                                         are NOT part of any package, this is the path to the root of
    1129                                         the module as listed in the ZIP file. For modules included
    1130                                         in a package, this is the location, relative to the root of
    1131                                         the package (PackagePath) this module belongs to.
     1115                                    <xs:documentation xml:lang="en-us"> For stand-alone modules that are NOT part of any
     1116                                        package, this is the path to the root of the module as listed in the ZIP file.
     1117                                        For modules included in a package, this is the location, relative to the root of
     1118                                        the package (PackagePath) this module belongs to. </xs:documentation>
     1119                                </xs:annotation>
     1120                            </xs:element>
     1121                            <xs:element minOccurs="0" maxOccurs="1" name="PcdIsDriver">
     1122                                <xs:annotation>
     1123                                    <xs:documentation xml:lang="en-us"> This element is only required for the PEIM that
     1124                                        produces the PCD PPI or the DXE Driver that produces the PCD Protocol.
    11321125                                    </xs:documentation>
    1133                                 </xs:annotation>
    1134                             </xs:element>
    1135                             <xs:element minOccurs="0" maxOccurs="1" name="PcdIsDriver">
    1136                                 <xs:annotation>
    1137                                     <xs:documentation xml:lang="en-us"> This element is only
    1138                                         required for the PEIM that produces the PCD PPI or the DXE
    1139                                         Driver that produces the PCD Protocol. </xs:documentation>
    11401126                                </xs:annotation>
    11411127                                <xs:simpleType>
     
    11471133                            </xs:element>
    11481134
    1149                             <xs:element minOccurs="0" maxOccurs="1" name="UefiSpecificationVersion"
    1150                                 type="xs:decimal"/>
    1151 
    1152                             <xs:element minOccurs="0" maxOccurs="1" name="PiSpecificationVersion"
    1153                                 type="xs:decimal"/>
     1135                            <xs:element minOccurs="0" maxOccurs="1" name="UefiSpecificationVersion" type="xs:decimal"/>
     1136
     1137                            <xs:element minOccurs="0" maxOccurs="1" name="PiSpecificationVersion" type="xs:decimal"/>
    11541138
    11551139                            <xs:element minOccurs="0" maxOccurs="unbounded" name="Specification">
    11561140                                <xs:annotation>
    1157                                     <xs:documentation xml:lang="en-us"> This is a list of other
    1158                                         specifications that this module is written against. These
    1159                                         entries can be used in #define statements (depending on the
    1160                                         build system implementation, they may be autogenerated.)
     1141                                    <xs:documentation xml:lang="en-us"> This is a list of other specifications that this
     1142                                        module is written against. These entries can be used in #define statements
     1143                                        (depending on the build system implementation, they may be autogenerated.)
    11611144                                    </xs:documentation>
    11621145                                </xs:annotation>
     
    11641147                                    <xs:simpleContent>
    11651148                                        <xs:extension base="xs:NCName">
    1166                                             <xs:attribute name="Version" type="xs:decimal"
    1167                                                 use="required"/>
     1149                                            <xs:attribute name="Version" type="xs:decimal" use="required"/>
    11681150                                        </xs:extension>
    11691151                                    </xs:simpleContent>
     
    11731155                            <xs:element minOccurs="0" maxOccurs="unbounded" name="BootMode">
    11741156                                <xs:annotation>
    1175                                     <xs:documentation xml:lang="en-us"> Different firmware execution
    1176                                         paths may be taken based on a given state of the hardware,
    1177                                         firmware, or through feature settings. A BootMode may be
    1178                                         declared (PRODUCES) or discovered (CONSUMES) based on these
    1179                                         states and feature settings. If the usage is UNDEFINE, it
    1180                                         implies that a Boot Mode is used, but the package creator
    1181                                         does not know how it is used. The supported boot modes map
    1182                                         to the PI specification Boot Modes. The boot modes listed
    1183                                         with Recovery are to indicate that the BootMode is valid
    1184                                         during a recovery boot. </xs:documentation>
     1157                                    <xs:documentation xml:lang="en-us"> Different firmware execution paths may be taken
     1158                                        based on a given state of the hardware, firmware, or through feature settings. A
     1159                                        BootMode may be declared (PRODUCES) or discovered (CONSUMES) based on these
     1160                                        states and feature settings. If the usage is UNDEFINE, it implies that a Boot
     1161                                        Mode is used, but the package creator does not know how it is used. The
     1162                                        supported boot modes map to the PI specification Boot Modes. The boot modes
     1163                                        listed with Recovery are to indicate that the BootMode is valid during a
     1164                                        recovery boot. </xs:documentation>
    11851165                                </xs:annotation>
    11861166                                <xs:complexType>
    11871167                                    <xs:sequence minOccurs="0">
    1188                                         <xs:element minOccurs="1" maxOccurs="1"
    1189                                             name="SupportedBootModes">
     1168                                        <xs:element minOccurs="1" maxOccurs="1" name="SupportedBootModes">
    11901169                                            <xs:simpleType>
    11911170                                                <xs:list>
    1192                                                   <xs:simpleType>
    1193                                                   <xs:restriction base="xs:NCName">
    1194                                                   <xs:enumeration value="FULL"/>
    1195                                                   <xs:enumeration value="MINIMAL"/>
    1196                                                   <xs:enumeration value="NO_CHANGE"/>
    1197                                                   <xs:enumeration value="DIAGNOSTICS"/>
    1198                                                   <xs:enumeration value="DEFAULT"/>
    1199                                                   <xs:enumeration value="S2_RESUME"/>
    1200                                                   <xs:enumeration value="S3_RESUME"/>
    1201                                                   <xs:enumeration value="S4_RESUME"/>
    1202                                                   <xs:enumeration value="S5_RESUME"/>
    1203                                                   <xs:enumeration value="FLASH_UPDATE"/>
    1204                                                   <xs:enumeration value="RECOVERY_FULL"/>
    1205                                                   <xs:enumeration value="RECOVERY_MINIMAL"/>
    1206                                                   <xs:enumeration value="RECOVERY_NO_CHANGE"/>
    1207                                                   <xs:enumeration value="RECOVERY_DIAGNOSTICS"/>
    1208                                                   <xs:enumeration value="RECOVERY_DEFAULT"/>
    1209                                                   <xs:enumeration value="RECOVERY_S2_RESUME"/>
    1210                                                   <xs:enumeration value="RECOVERY_S3_RESUME"/>
    1211                                                   <xs:enumeration value="RECOVERY_S4_RESUME"/>
    1212                                                   <xs:enumeration value="RECOVERY_S5_RESUME"/>
    1213                                                   <xs:enumeration value="RECOVERY_FLASH_UPDATE"/>
    1214                                                   <xs:enumeration value="UNDEFINED"/>
    1215                                                   </xs:restriction>
    1216                                                   </xs:simpleType>
     1171                                                    <xs:simpleType>
     1172                                                        <xs:restriction base="xs:NCName">
     1173                                                            <xs:enumeration value="FULL"/>
     1174                                                            <xs:enumeration value="MINIMAL"/>
     1175                                                            <xs:enumeration value="NO_CHANGE"/>
     1176                                                            <xs:enumeration value="DIAGNOSTICS"/>
     1177                                                            <xs:enumeration value="DEFAULT"/>
     1178                                                            <xs:enumeration value="S2_RESUME"/>
     1179                                                            <xs:enumeration value="S3_RESUME"/>
     1180                                                            <xs:enumeration value="S4_RESUME"/>
     1181                                                            <xs:enumeration value="S5_RESUME"/>
     1182                                                            <xs:enumeration value="FLASH_UPDATE"/>
     1183                                                            <xs:enumeration value="RECOVERY_FULL"/>
     1184                                                            <xs:enumeration value="RECOVERY_MINIMAL"/>
     1185                                                            <xs:enumeration value="RECOVERY_NO_CHANGE"/>
     1186                                                            <xs:enumeration value="RECOVERY_DIAGNOSTICS"/>
     1187                                                            <xs:enumeration value="RECOVERY_DEFAULT"/>
     1188                                                            <xs:enumeration value="RECOVERY_S2_RESUME"/>
     1189                                                            <xs:enumeration value="RECOVERY_S3_RESUME"/>
     1190                                                            <xs:enumeration value="RECOVERY_S4_RESUME"/>
     1191                                                            <xs:enumeration value="RECOVERY_S5_RESUME"/>
     1192                                                            <xs:enumeration value="RECOVERY_FLASH_UPDATE"/>
     1193                                                            <xs:enumeration value="UNDEFINED"/>
     1194                                                        </xs:restriction>
     1195                                                    </xs:simpleType>
    12171196                                                </xs:list>
    12181197                                            </xs:simpleType>
    12191198                                        </xs:element>
    12201199
    1221                                         <xs:element ref="HelpText" minOccurs="0"
    1222                                             maxOccurs="unbounded"/>
     1200                                        <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>
    12231201                                    </xs:sequence>
    12241202                                    <xs:attribute name="Usage" use="required">
     
    12261204                                            <xs:restriction base="xs:NCName">
    12271205                                                <xs:enumeration value="CONSUMES">
    1228                                                   <xs:annotation>
    1229                                                   <xs:documentation xml:lang="en-us"> The module
    1230                                                   always supports the given boot modes.
    1231                                                   </xs:documentation>
    1232                                                   </xs:annotation>
     1206                                                    <xs:annotation>
     1207                                                        <xs:documentation xml:lang="en-us"> The module always supports
     1208                                                            the given boot modes. </xs:documentation>
     1209                                                    </xs:annotation>
    12331210                                                </xs:enumeration>
    12341211                                                <xs:enumeration value="SOMETIMES_CONSUMES">
    1235                                                   <xs:annotation>
    1236                                                   <xs:documentation xml:lang="en-us"> The module may
    1237                                                   support a given mode on some execution paths.
    1238                                                   </xs:documentation>
    1239                                                   </xs:annotation>
     1212                                                    <xs:annotation>
     1213                                                        <xs:documentation xml:lang="en-us"> The module may support a
     1214                                                            given mode on some execution paths. </xs:documentation>
     1215                                                    </xs:annotation>
    12401216                                                </xs:enumeration>
    12411217                                                <xs:enumeration value="PRODUCES">
    1242                                                   <xs:annotation>
    1243                                                   <xs:documentation xml:lang="en-us"> The module
    1244                                                   will change the boot mode. </xs:documentation>
    1245                                                   </xs:annotation>
     1218                                                    <xs:annotation>
     1219                                                        <xs:documentation xml:lang="en-us"> The module will change the
     1220                                                            boot mode. </xs:documentation>
     1221                                                    </xs:annotation>
    12461222                                                </xs:enumeration>
    12471223                                                <xs:enumeration value="SOMETIME_PRODUCES">
    1248                                                   <xs:annotation>
    1249                                                   <xs:documentation xml:lang="en-us"> The module
    1250                                                   will change the boot mode on some exection paths.
    1251                                                   </xs:documentation>
    1252                                                   </xs:annotation>
     1224                                                    <xs:annotation>
     1225                                                        <xs:documentation xml:lang="en-us"> The module will change the
     1226                                                            boot mode on some exection paths. </xs:documentation>
     1227                                                    </xs:annotation>
    12531228                                                </xs:enumeration>
    12541229                                                <xs:enumeration value="UNDEFINED">
    1255                                                   <xs:annotation>
    1256                                                   <xs:documentation xml:lang="en-us"> The package
    1257                                                   creator does not know how the boot mode is used.
    1258                                                   </xs:documentation>
    1259                                                   </xs:annotation>
     1230                                                    <xs:annotation>
     1231                                                        <xs:documentation xml:lang="en-us"> The package creator does not
     1232                                                            know how the boot mode is used. </xs:documentation>
     1233                                                    </xs:annotation>
    12601234                                                </xs:enumeration>
    12611235                                            </xs:restriction>
    12621236                                        </xs:simpleType>
    12631237                                    </xs:attribute>
    1264                                     <xs:attribute name="SupArchList" type="ArchListType"
    1265                                         use="optional"/>
    1266                                     <xs:attribute name="FeatureFlag" type="xs:normalizedString"
    1267                                         use="optional"/>
    1268                                 </xs:complexType>
    1269                             </xs:element>
    1270 
    1271                             <xs:element minOccurs="0" maxOccurs="unbounded" name="Event"
    1272                                 nillable="true">
    1273                                 <xs:annotation>
    1274                                     <xs:documentation xml:lang="en-us"> The functions that make up
    1275                                         the Event, Timer, and Task Priority Services are used during
    1276                                         preboot to create, close, signal, and wait for events; to
    1277                                         set timers; and to raise and restore task priority levels as
    1278                                         defined in the UEFI specification. GUIDed events should be
    1279                                         listed in the Guids section. </xs:documentation>
     1238                                    <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
     1239                                    <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>
     1240                                </xs:complexType>
     1241                            </xs:element>
     1242
     1243                            <xs:element minOccurs="0" maxOccurs="unbounded" name="Event" nillable="true">
     1244                                <xs:annotation>
     1245                                    <xs:documentation xml:lang="en-us"> The functions that make up the Event, Timer, and
     1246                                        Task Priority Services are used during preboot to create, close, signal, and
     1247                                        wait for events; to set timers; and to raise and restore task priority levels as
     1248                                        defined in the UEFI specification. GUIDed events should be listed in the Guids
     1249                                        section. </xs:documentation>
    12801250                                </xs:annotation>
    12811251                                <xs:complexType>
    12821252                                    <xs:sequence>
    1283                                         <xs:element ref="HelpText" minOccurs="0"
    1284                                             maxOccurs="unbounded"/>
     1253                                        <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>
    12851254                                    </xs:sequence>
    12861255                                    <xs:attribute name="Usage" use="required">
     
    12881257                                            <xs:restriction base="xs:NCName">
    12891258                                                <xs:enumeration value="CONSUMES">
    1290                                                   <xs:annotation>
    1291                                                   <xs:documentation xml:lang="en-us"> The module
    1292                                                   will register a notification function and calls
    1293                                                   the function when it is signaled.
    1294                                                   </xs:documentation>
    1295                                                   </xs:annotation>
     1259                                                    <xs:annotation>
     1260                                                        <xs:documentation xml:lang="en-us"> The module will register a
     1261                                                            notification function and calls the function when it is
     1262                                                            signaled. </xs:documentation>
     1263                                                    </xs:annotation>
    12961264                                                </xs:enumeration>
    12971265                                                <xs:enumeration value="SOMETIMES_CONSUMES">
    1298                                                   <xs:annotation>
    1299                                                   <xs:documentation xml:lang="en-us"> The module
    1300                                                   will register a notification function and calls
    1301                                                   the function when it is signaled on some execution
    1302                                                   paths. </xs:documentation>
    1303                                                   </xs:annotation>
     1266                                                    <xs:annotation>
     1267                                                        <xs:documentation xml:lang="en-us"> The module will register a
     1268                                                            notification function and calls the function when it is
     1269                                                            signaled on some execution paths. </xs:documentation>
     1270                                                    </xs:annotation>
    13041271                                                </xs:enumeration>
    13051272                                                <xs:enumeration value="PRODUCES">
    1306                                                   <xs:annotation>
    1307                                                   <xs:documentation xml:lang="en-us"> The module
    1308                                                   will signal all events in an event group.
    1309                                                   </xs:documentation>
    1310                                                   </xs:annotation>
     1273                                                    <xs:annotation>
     1274                                                        <xs:documentation xml:lang="en-us"> The module will signal all
     1275                                                            events in an event group. </xs:documentation>
     1276                                                    </xs:annotation>
    13111277                                                </xs:enumeration>
    13121278                                                <xs:enumeration value="SOMETIMES_PRODUCES">
    1313                                                   <xs:annotation>
    1314                                                   <xs:documentation xml:lang="en-us"> The module
    1315                                                   will signal all events in an event group under
    1316                                                   some execution paths. </xs:documentation>
    1317                                                   </xs:annotation>
     1279                                                    <xs:annotation>
     1280                                                        <xs:documentation xml:lang="en-us"> The module will signal all
     1281                                                            events in an event group under some execution paths.
     1282                                                        </xs:documentation>
     1283                                                    </xs:annotation>
    13181284                                                </xs:enumeration>
    13191285                                                <xs:enumeration value="UNDEFINED">
    1320                                                   <xs:annotation>
    1321                                                   <xs:documentation xml:lang="en-us"> The package
    1322                                                   creator does not know how an event is used.
    1323                                                   </xs:documentation>
    1324                                                   </xs:annotation>
     1286                                                    <xs:annotation>
     1287                                                        <xs:documentation xml:lang="en-us"> The package creator does not
     1288                                                            know how an event is used. </xs:documentation>
     1289                                                    </xs:annotation>
    13251290                                                </xs:enumeration>
    13261291                                            </xs:restriction>
     
    13381303
    13391304                                    </xs:attribute>
    1340                                     <xs:attribute name="SupArchList" type="ArchListType"
    1341                                         use="optional"/>
    1342                                     <xs:attribute name="FeatureFlag" type="xs:normalizedString"
    1343                                         use="optional"/>
    1344                                 </xs:complexType>
    1345                             </xs:element>
    1346 
    1347                             <xs:element minOccurs="0" maxOccurs="unbounded" name="HOB"
    1348                                 nillable="false">
    1349                                 <xs:annotation>
    1350                                     <xs:documentation xml:lang="en-us"> This is a list of non-GUIDed
    1351                                         Hand Off Blocks (HOBs) produced or consumed by this module.
    1352                                     </xs:documentation>
     1305                                    <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
     1306                                    <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>
     1307                                </xs:complexType>
     1308                            </xs:element>
     1309
     1310                            <xs:element minOccurs="0" maxOccurs="unbounded" name="HOB" nillable="false">
     1311                                <xs:annotation>
     1312                                    <xs:documentation xml:lang="en-us"> This is a list of non-GUIDed Hand Off Blocks
     1313                                        (HOBs) produced or consumed by this module. </xs:documentation>
    13531314                                </xs:annotation>
    13541315                                <xs:complexType>
    13551316                                    <xs:sequence>
    1356                                         <xs:element ref="HelpText" minOccurs="0"
    1357                                             maxOccurs="unbounded"/>
     1317                                        <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>
    13581318                                    </xs:sequence>
    13591319                                    <xs:attribute name="HobType" use="required">
     
    13731333                                            <xs:restriction base="xs:NCName">
    13741334                                                <xs:enumeration value="CONSUMES">
    1375                                                   <xs:annotation>
    1376                                                   <xs:documentation xml:lang="en-us"> A HOB must be
    1377                                                   present in the system. </xs:documentation>
    1378                                                   </xs:annotation>
     1335                                                    <xs:annotation>
     1336                                                        <xs:documentation xml:lang="en-us"> A HOB must be present in the
     1337                                                            system. </xs:documentation>
     1338                                                    </xs:annotation>
    13791339                                                </xs:enumeration>
    13801340                                                <xs:enumeration value="SOMETIMES_CONSUMES">
    1381                                                   <xs:annotation>
    1382                                                   <xs:documentation xml:lang="en-us"> If present,
    1383                                                   the HOB will be used. </xs:documentation>
    1384                                                   </xs:annotation>
     1341                                                    <xs:annotation>
     1342                                                        <xs:documentation xml:lang="en-us"> If present, the HOB will be
     1343                                                            used. </xs:documentation>
     1344                                                    </xs:annotation>
    13851345                                                </xs:enumeration>
    13861346                                                <xs:enumeration value="PRODUCES">
    1387                                                   <xs:annotation>
    1388                                                   <xs:documentation xml:lang="en-us"> The HOB is
    1389                                                   always produced by the module. </xs:documentation>
    1390                                                   </xs:annotation>
     1347                                                    <xs:annotation>
     1348                                                        <xs:documentation xml:lang="en-us"> The HOB is always produced
     1349                                                            by the module. </xs:documentation>
     1350                                                    </xs:annotation>
    13911351                                                </xs:enumeration>
    13921352                                                <xs:enumeration value="SOMETIMES_PRODUCES">
    1393                                                   <xs:annotation>
    1394                                                   <xs:documentation xml:lang="en-us"> The HOB may be
    1395                                                   produced by the module under some execution paths.
    1396                                                   </xs:documentation>
    1397                                                   </xs:annotation>
     1353                                                    <xs:annotation>
     1354                                                        <xs:documentation xml:lang="en-us"> The HOB may be produced by
     1355                                                            the module under some execution paths. </xs:documentation>
     1356                                                    </xs:annotation>
    13981357                                                </xs:enumeration>
    13991358                                                <xs:enumeration value="UNDEFINED">
    1400                                                   <xs:annotation>
    1401                                                   <xs:documentation xml:lang="en-us"> The package
    1402                                                   creator knows that a HOB is used, but does not
    1403                                                   know how it is used. </xs:documentation>
    1404                                                   </xs:annotation>
     1359                                                    <xs:annotation>
     1360                                                        <xs:documentation xml:lang="en-us"> The package creator knows
     1361                                                            that a HOB is used, but does not know how it is used.
     1362                                                        </xs:documentation>
     1363                                                    </xs:annotation>
    14051364                                                </xs:enumeration>
    14061365                                            </xs:restriction>
    14071366                                        </xs:simpleType>
    14081367                                    </xs:attribute>
    1409                                     <xs:attribute name="SupArchList" type="ArchListType"
    1410                                         use="optional"/>
    1411                                     <xs:attribute name="FeatureFlag" type="xs:normalizedString"
    1412                                         use="optional"/>
     1368                                    <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
     1369                                    <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>
    14131370                                </xs:complexType>
    14141371                            </xs:element>
     
    14221379                <xs:element minOccurs="0" maxOccurs="1" name="ClonedFrom">
    14231380                    <xs:annotation>
    1424                         <xs:documentation xml:lang="en-us"> This section may be included for Modules
    1425                             that are copied from a different module. </xs:documentation>
     1381                        <xs:documentation xml:lang="en-us"> This section may be included for Modules that are copied
     1382                            from a different module. </xs:documentation>
    14261383                    </xs:annotation>
    14271384                    <xs:complexType>
     
    14291386                            <xs:element minOccurs="1" maxOccurs="1" name="GUID">
    14301387                                <xs:annotation>
    1431                                     <xs:documentation xml:lang="en-us"> This GUID and the Version
    1432                                         attribute uniquely identify the Module that this Module was
    1433                                         copied from. </xs:documentation>
     1388                                    <xs:documentation xml:lang="en-us"> This GUID and the Version attribute uniquely
     1389                                        identify the Module that this Module was copied from. </xs:documentation>
    14341390                                </xs:annotation>
    14351391                                <xs:complexType>
    14361392                                    <xs:simpleContent>
    14371393                                        <xs:extension base="RegistryFormatGuid">
    1438                                             <xs:attribute name="Version" type="xs:decimal"
    1439                                                 use="required">
     1394                                            <xs:attribute name="Version" type="xs:decimal" use="required">
    14401395                                                <xs:annotation>
    1441                                                   <xs:documentation xml:lang="en-us"> This value,
    1442                                                   along with the GUID, is used to uniquely identify
    1443                                                   this object. </xs:documentation>
     1396                                                    <xs:documentation xml:lang="en-us"> This value, along with the GUID,
     1397                                                        is used to uniquely identify this object. </xs:documentation>
    14441398                                                </xs:annotation>
    14451399                                            </xs:attribute>
     
    14551409                <xs:element minOccurs="0" maxOccurs="1" name="LibraryClassDefinitions">
    14561410                    <xs:annotation>
    1457                         <xs:documentation xml:lang="en-us"> A list of the different Library Classes
    1458                             consumed by a driver, core and/or application module, or produced by a
    1459                             Library module. </xs:documentation>
     1411                        <xs:documentation xml:lang="en-us"> A list of the different Library Classes consumed by a
     1412                            driver, core and/or application module, or produced by a Library module. </xs:documentation>
    14601413                    </xs:annotation>
    14611414                    <xs:complexType>
     
    14641417                                <xs:complexType>
    14651418                                    <xs:sequence>
    1466                                         <xs:element minOccurs="1" maxOccurs="1" name="Keyword"
    1467                                             type="xs:NCName">
     1419                                        <xs:element minOccurs="1" maxOccurs="1" name="Keyword" type="xs:NCName">
    14681420                                            <xs:annotation>
    1469                                                 <xs:documentation xml:lang="en-us "> Used by tools
    1470                                                   to identify different instances of libraries that
    1471                                                   provide the library class. This keyword identifies
    1472                                                   the library class this module needs to be linked
    1473                                                   against. </xs:documentation>
     1421                                                <xs:documentation xml:lang="en-us "> Used by tools to identify different
     1422                                                    instances of libraries that provide the library class. This keyword
     1423                                                    identifies the library class this module needs to be linked against.
     1424                                                </xs:documentation>
    14741425                                            </xs:annotation>
    14751426                                        </xs:element>
    1476                                         <xs:element minOccurs="0" maxOccurs="1"
    1477                                             name="RecommendedInstance">
     1427                                        <xs:element minOccurs="0" maxOccurs="1" name="RecommendedInstance">
    14781428                                            <xs:complexType>
    14791429                                                <xs:all>
    1480                                                   <xs:element minOccurs="1" maxOccurs="1"
    1481                                                   name="GUID">
    1482                                                   <xs:annotation>
    1483                                                   <xs:documentation xml:lang="en-us"> This GUID and
    1484                                                   the Version attribute uniquely identify the
    1485                                                   recommended Library Instance for this module .
    1486                                                   </xs:documentation>
    1487                                                   </xs:annotation>
    1488                                                   <xs:complexType>
    1489                                                   <xs:simpleContent>
    1490                                                   <xs:extension base="RegistryFormatGuid">
    1491                                                   <xs:attribute name="Version" type="xs:decimal"
    1492                                                   use="optional">
    1493                                                   <xs:annotation>
    1494                                                   <xs:documentation xml:lang="en-us"> This value,
    1495                                                   along with the GUID, is used to uniquely identify
    1496                                                   this object. </xs:documentation>
    1497                                                   </xs:annotation>
    1498                                                   </xs:attribute>
    1499                                                   </xs:extension>
    1500                                                   </xs:simpleContent>
    1501                                                   </xs:complexType>
    1502                                                   </xs:element>
     1430                                                    <xs:element minOccurs="1" maxOccurs="1" name="GUID">
     1431                                                        <xs:annotation>
     1432                                                            <xs:documentation xml:lang="en-us"> This GUID and the
     1433                                                            Version attribute uniquely identify the recommended Library
     1434                                                            Instance for this module . </xs:documentation>
     1435                                                        </xs:annotation>
     1436                                                        <xs:complexType>
     1437                                                            <xs:simpleContent>
     1438                                                            <xs:extension base="RegistryFormatGuid">
     1439                                                            <xs:attribute name="Version" type="xs:decimal"
     1440                                                            use="optional">
     1441                                                            <xs:annotation>
     1442                                                            <xs:documentation xml:lang="en-us"> This value, along with
     1443                                                            the GUID, is used to uniquely identify this object.
     1444                                                            </xs:documentation>
     1445                                                            </xs:annotation>
     1446                                                            </xs:attribute>
     1447                                                            </xs:extension>
     1448                                                            </xs:simpleContent>
     1449                                                        </xs:complexType>
     1450                                                    </xs:element>
    15031451                                                </xs:all>
    15041452                                            </xs:complexType>
    15051453                                        </xs:element>
    1506                                         <xs:element ref="HelpText" minOccurs="0"
    1507                                             maxOccurs="unbounded"/>
     1454                                        <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>
    15081455                                    </xs:sequence>
    15091456                                    <xs:attribute name="Usage" use="required">
    15101457                                        <xs:simpleType>
    15111458                                            <xs:annotation>
    1512                                                 <xs:documentation xml:lang="en-us"> Library
    1513                                                   instances can provide code for a library class, or
    1514                                                   may require other library instances themselves.
    1515                                                   Since different execution paths in a library (or
    1516                                                   module) may need different library classes based
    1517                                                   on some setting, library classes may not alway be
    1518                                                   required. </xs:documentation>
     1459                                                <xs:documentation xml:lang="en-us"> Library instances can provide code
     1460                                                    for a library class, or may require other library instances
     1461                                                    themselves. Since different execution paths in a library (or module)
     1462                                                    may need different library classes based on some setting, library
     1463                                                    classes may not alway be required. </xs:documentation>
    15191464                                            </xs:annotation>
    15201465                                            <xs:restriction base="xs:NCName">
     
    15281473
    15291474                                    <xs:attributeGroup ref="SupportedArchMod"/>
    1530                                     <xs:attribute name="FeatureFlag" type="xs:normalizedString"
    1531                                         use="optional">
     1475                                    <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional">
    15321476                                        <xs:annotation>
    1533                                             <xs:documentation xml:lang="en-us"> A FeatureFlag
    1534                                                 attribute must evaluate to either true or false - it
    1535                                                 may be a fixed value of true or false, a C name or
    1536                                                 an in-fix expression. </xs:documentation>
     1477                                            <xs:documentation xml:lang="en-us"> A FeatureFlag attribute must evaluate to
     1478                                                either true or false - it may be a fixed value of true or false, a C
     1479                                                name or an in-fix expression. </xs:documentation>
    15371480                                        </xs:annotation>
    15381481                                    </xs:attribute>
     
    15501493                                <xs:annotation>
    15511494                                    <xs:documentation xml:lang="en-us"> This is the module relative
    1552                                         (ModuleProperties.Path) path and filename location within
    1553                                         the ZIP file. </xs:documentation>
     1495                                        (ModuleProperties.Path) path and filename location within the ZIP file.
     1496                                    </xs:documentation>
    15541497                                </xs:annotation>
    15551498                                <xs:complexType>
    15561499                                    <xs:simpleContent>
    15571500                                        <xs:extension base="xs:anyURI">
    1558                                             <xs:attribute name="Family" type="FamilyTypes"
    1559                                                 use="optional">
     1501                                            <xs:attribute name="Family" type="FamilyTypes" use="optional">
    15601502                                                <xs:annotation>
    1561                                                   <xs:documentation xml:lang="en-us"> The Family
    1562                                                   attribute is used to restrict usage to a given
    1563                                                   family of compilers, such as GCC or MSFT. Since
    1564                                                   not all code processing tools use the same syntax,
    1565                                                   especially for assembly, this field can be used to
    1566                                                   identify different syntax. </xs:documentation>
     1503                                                    <xs:documentation xml:lang="en-us"> The Family attribute is used to
     1504                                                        restrict usage to a given family of compilers, such as GCC or
     1505                                                        MSFT. Since not all code processing tools use the same syntax,
     1506                                                        especially for assembly, this field can be used to identify
     1507                                                        different syntax. </xs:documentation>
    15671508                                                </xs:annotation>
    15681509                                            </xs:attribute>
    1569                                             <xs:attribute name="SupArchList" type="ArchListType"
    1570                                                 use="optional"/>
    1571                                             <xs:attribute name="SupModList" type="ModuleListType"
    1572                                                 use="optional"/>
    1573                                             <xs:attribute name="FeatureFlag"
    1574                                                 type="xs:normalizedString" use="optional"/>
     1510                                            <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
     1511                                            <xs:attribute name="SupModList" type="ModuleListType" use="optional"/>
     1512                                            <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>
    15751513                                        </xs:extension>
    15761514                                    </xs:simpleContent>
     
    15891527                                <xs:complexType>
    15901528                                    <xs:sequence>
    1591                                         <xs:element minOccurs="1" maxOccurs="unbounded"
    1592                                             name="Filename">
     1529                                        <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename">
    15931530                                            <xs:annotation>
    1594                                                 <xs:documentation xml:lang="en-us"> This is the
    1595                                                   module relative (ModuleProperties.Path) path and
    1596                                                   filename location within the ZIP file.
    1597                                                 </xs:documentation>
     1531                                                <xs:documentation xml:lang="en-us"> This is the module relative
     1532                                                    (ModuleProperties.Path) path and filename location within the ZIP
     1533                                                    file. </xs:documentation>
    15981534                                            </xs:annotation>
    15991535                                            <xs:complexType>
    16001536                                                <xs:simpleContent>
    1601                                                   <xs:extension base="xs:anyURI">
    1602                                                   <xs:attribute name="FileType" use="optional">
    1603                                                   <xs:simpleType>
    1604                                                   <xs:restriction base="xs:NCName">
    1605                                                   <xs:annotation>
    1606                                                   <xs:documentation xml:lang="en-us"> Binary file
    1607                                                   distribution is limited to UEFI/PI FFS leaf
    1608                                                   section file types. </xs:documentation>
    1609                                                   </xs:annotation>
    1610                                                   <xs:enumeration value="GUID"/>
    1611                                                   <xs:enumeration value="FREEFORM"/>
    1612                                                   <xs:enumeration value="UEFI_IMAGE"/>
    1613                                                   <xs:enumeration value="PE32">
    1614                                                   <xs:annotation>
    1615                                                   <xs:documentation xml:lang="en-us"> A UEFI/PI FFS
    1616                                                   Leaf section file type, not a raw PE32 file.
    1617                                                   </xs:documentation>
    1618                                                   </xs:annotation>
    1619                                                   </xs:enumeration>
    1620                                                   <xs:enumeration value="PIC"/>
    1621                                                   <xs:enumeration value="PEI_DEPEX"/>
    1622                                                   <xs:enumeration value="DXE_DEPEX"/>
    1623                                                   <xs:enumeration value="SMM_DEPEX"/>
    1624                                                   <xs:enumeration value="COMPAT16"/>
    1625                                                   <xs:enumeration value="DISPOSABLE"/>
    1626                                                   <xs:enumeration value="TE"/>
    1627                                                   <xs:enumeration value="VER"/>
    1628                                                   <xs:enumeration value="UI"/>
    1629                                                   <xs:enumeration value="BIN"/>
    1630                                                   <xs:enumeration value="FV"/>
    1631                                                   </xs:restriction>
    1632                                                   </xs:simpleType>
    1633                                                   </xs:attribute>
    1634                                                   <xs:attribute name="SupArchList"
    1635                                                   type="ArchListType" use="optional"/>
    1636                                                   <xs:attribute name="SupModList"
    1637                                                   type="ModuleListType" use="optional"/>
    1638                                                   <xs:attribute name="FeatureFlag"
    1639                                                   type="xs:normalizedString" use="optional"/>
    1640                                                   </xs:extension>
     1537                                                    <xs:extension base="xs:anyURI">
     1538                                                        <xs:attribute name="FileType" use="optional">
     1539                                                            <xs:simpleType>
     1540                                                            <xs:restriction base="xs:NCName">
     1541                                                            <xs:annotation>
     1542                                                            <xs:documentation xml:lang="en-us"> Binary file distribution
     1543                                                            is limited to UEFI/PI FFS leaf section file types.
     1544                                                            </xs:documentation>
     1545                                                            </xs:annotation>
     1546                                                            <xs:enumeration value="GUID"/>
     1547                                                            <xs:enumeration value="FREEFORM"/>
     1548                                                            <xs:enumeration value="UEFI_IMAGE"/>
     1549                                                            <xs:enumeration value="PE32">
     1550                                                            <xs:annotation>
     1551                                                            <xs:documentation xml:lang="en-us"> A UEFI/PI FFS Leaf
     1552                                                            section file type, not a raw PE32 file. </xs:documentation>
     1553                                                            </xs:annotation>
     1554                                                            </xs:enumeration>
     1555                                                            <xs:enumeration value="PIC"/>
     1556                                                            <xs:enumeration value="PEI_DEPEX"/>
     1557                                                            <xs:enumeration value="DXE_DEPEX"/>
     1558                                                            <xs:enumeration value="SMM_DEPEX"/>
     1559                                                            <xs:enumeration value="COMPAT16"/>
     1560                                                            <xs:enumeration value="DISPOSABLE"/>
     1561                                                            <xs:enumeration value="TE"/>
     1562                                                            <xs:enumeration value="VER"/>
     1563                                                            <xs:enumeration value="UI"/>
     1564                                                            <xs:enumeration value="BIN"/>
     1565                                                            <xs:enumeration value="FV"/>
     1566                                                            </xs:restriction>
     1567                                                            </xs:simpleType>
     1568                                                        </xs:attribute>
     1569                                                        <xs:attribute name="GUID" use="optional"
     1570                                                            type="RegistryFormatGuid"/>
     1571                                                        <xs:attribute name="SupArchList" type="ArchListType"
     1572                                                            use="optional"/>
     1573                                                        <xs:attribute name="SupModList" type="ModuleListType"
     1574                                                            use="optional"/>
     1575                                                        <xs:attribute name="FeatureFlag" type="xs:normalizedString"
     1576                                                            use="optional"/>
     1577                                                    </xs:extension>
    16411578                                                </xs:simpleContent>
    16421579                                            </xs:complexType>
    16431580                                        </xs:element>
    1644                                         <xs:element minOccurs="0" maxOccurs="unbounded"
    1645                                             name="AsBuilt">
     1581                                        <xs:element minOccurs="0" maxOccurs="unbounded" name="AsBuilt">
    16461582                                            <xs:annotation>
    1647                                                 <xs:documentation xml:lang="en-us"> This section
    1648                                                   contains information about how the module was
    1649                                                   coded, such as Compiler Tools, Flags, PCDs (only
    1650                                                   PatchPcd and/or PcdEx) and Library Class Instances
    1651                                                   used to build the binary. </xs:documentation>
     1583                                                <xs:documentation xml:lang="en-us"> This section contains information
     1584                                                    about how the module was coded, such as Compiler Tools, Flags, PCDs
     1585                                                    (only PatchPcd and/or PcdEx) and Library Class Instances used to
     1586                                                    build the binary. </xs:documentation>
    16521587                                            </xs:annotation>
    16531588                                            <xs:complexType>
    16541589                                                <xs:sequence>
    16551590
    1656                                                   <xs:element minOccurs="0" maxOccurs="unbounded"
    1657                                                   name="PatchPcdValue">
    1658                                                   <xs:annotation>
    1659                                                   <xs:documentation xml:lang="en-us"> The element is
    1660                                                   the Patchable PCD Value that was used during the
    1661                                                   build. </xs:documentation>
    1662                                                   </xs:annotation>
    1663                                                   <xs:complexType>
    1664                                                   <xs:sequence>
    1665                                                   <xs:element minOccurs="1" maxOccurs="1"
    1666                                                   name="TokenSpaceGuidValue"
    1667                                                   type="RegistryFormatGuid"/>
    1668                                                   <xs:element minOccurs="1" maxOccurs="1"
    1669                                                   name="PcdCName" type="xs:NCName"/>
    1670                                                   <xs:element minOccurs="1" maxOccurs="1"
    1671                                                   name="Token">
    1672                                                   <xs:annotation>
    1673                                                   <xs:documentation xml:lang="en-us"> The minLength
    1674                                                   of 3 is required to handle the "0x" prefix to the
    1675                                                   hex number. </xs:documentation>
    1676                                                   </xs:annotation>
    1677                                                   <xs:simpleType>
    1678                                                   <xs:restriction base="HexNumber">
    1679                                                   <xs:minLength value="3"/>
    1680                                                   <xs:maxLength value="10"/>
    1681                                                   </xs:restriction>
    1682                                                   </xs:simpleType>
    1683                                                   </xs:element>
    1684                                                   <xs:element minOccurs="1" maxOccurs="1"
    1685                                                   name="DatumType" type="PcdDatumTypes"/>
    1686                                                   <xs:element minOccurs="0" maxOccurs="1"
    1687                                                   name="MaxDatumSize">
    1688                                                   <xs:annotation>
    1689                                                   <xs:documentation xml:lang="en-us"> This field is
    1690                                                   required if the Pcd Datum Type is VOID* </xs:documentation>
    1691                                                   <xs:documentation xml:lang="en-us"> The minLength
    1692                                                   of 3 is required to handle the "0x" prefix to the
    1693                                                   hex number. </xs:documentation>
    1694                                                   </xs:annotation>
    1695                                                   <xs:simpleType>
    1696                                                   <xs:restriction base="HexNumber">
    1697                                                   <xs:minLength value="3"/>
    1698                                                   </xs:restriction>
    1699                                                   </xs:simpleType>
    1700                                                   </xs:element>
    1701                                                   <xs:element minOccurs="1" maxOccurs="1"
    1702                                                   name="Value" type="xs:normalizedString"/>
    1703                                                   <xs:element minOccurs="1" maxOccurs="1"
    1704                                                   name="Offset">
    1705                                                   <xs:annotation>
    1706                                                   <xs:documentation xml:lang="en-us"> The minLength
    1707                                                   of 3 is required to handle the "0x" prefix to the
    1708                                                   hex number. </xs:documentation>
    1709                                                   </xs:annotation>
    1710                                                   <xs:simpleType>
    1711                                                   <xs:restriction base="HexNumber">
    1712                                                   <xs:minLength value="3"/>
    1713                                                   </xs:restriction>
    1714                                                   </xs:simpleType>
    1715                                                   </xs:element>
    1716                                                   <xs:element ref="HelpText" minOccurs="0"
    1717                                                   maxOccurs="unbounded"/>
    1718                                                   <xs:element minOccurs="0" maxOccurs="unbounded"
    1719                                                   name="PcdError">
    1720                                                   <xs:annotation>
    1721                                                   <xs:documentation xml:lang="en-us"> Error
    1722                                                   information implemented by the module.
    1723                                                   </xs:documentation>
    1724                                                   </xs:annotation>
    1725                                                   <xs:complexType>
    1726                                                   <xs:sequence>
    1727                                                   <xs:element minOccurs="1" maxOccurs="1"
    1728                                                   name="ErrorNumber">
    1729                                                   <xs:annotation>
    1730                                                   <xs:documentation xml:lang="en-us"> The minLength
    1731                                                   of 3 is required to handle the "0x" prefix to the
    1732                                                   hex number. </xs:documentation>
    1733                                                   </xs:annotation>
    1734                                                   <xs:simpleType>
    1735                                                   <xs:restriction base="HexNumber">
    1736                                                   <xs:minLength value="3"/>
    1737                                                   </xs:restriction>
    1738                                                   </xs:simpleType>
    1739                                                   </xs:element>
    1740                                                   <xs:element minOccurs="0" maxOccurs="unbounded"
    1741                                                   name="ErrorMessage">
    1742                                                   <xs:complexType>
    1743                                                   <xs:simpleContent>
    1744                                                   <xs:extension base="xs:string">
    1745                                                   <xs:attribute name="Lang" type="xs:language"
    1746                                                   default="en-us" use="optional"/>
    1747                                                   </xs:extension>
    1748                                                   </xs:simpleContent>
    1749                                                   </xs:complexType>
    1750                                                   </xs:element>
    1751                                                   </xs:sequence>
    1752                                                   </xs:complexType>
    1753                                                   </xs:element>
    1754                                                   </xs:sequence>
    1755                                                   </xs:complexType>
    1756                                                   </xs:element>
    1757 
    1758                                                   <xs:element minOccurs="0" maxOccurs="unbounded"
    1759                                                   name="PcdExValue">
    1760                                                   <xs:annotation>
    1761                                                   <xs:documentation xml:lang="en-us"> The element is
    1762                                                   the DynamicEx PCD Value that was used during the
    1763                                                   build. </xs:documentation>
    1764                                                   </xs:annotation>
    1765                                                   <xs:complexType>
    1766                                                   <xs:sequence>
    1767                                                   <xs:element minOccurs="1" maxOccurs="1"
    1768                                                   name="TokenSpaceGuidValue"
    1769                                                   type="RegistryFormatGuid"/>
    1770                                                   <xs:element minOccurs="1" maxOccurs="1"
    1771                                                   name="Token">
    1772                                                   <xs:annotation>
    1773                                                   <xs:documentation xml:lang="en-us"> The minLength
    1774                                                   of 3 is required to handle the "0x" prefix to the
    1775                                                   hex number. </xs:documentation>
    1776                                                   </xs:annotation>
    1777                                                   <xs:simpleType>
    1778                                                   <xs:restriction base="HexNumber">
    1779                                                   <xs:minLength value="3"/>
    1780                                                   <xs:maxLength value="10"/>
    1781                                                   </xs:restriction>
    1782                                                   </xs:simpleType>
    1783                                                   </xs:element>
    1784                                                   <xs:element minOccurs="1" maxOccurs="1"
    1785                                                   name="DatumType" type="PcdDatumTypes"/>
    1786                                                   <xs:element minOccurs="0" maxOccurs="1"
    1787                                                   name="MaxDatumSize">
    1788                                                   <xs:annotation>
    1789                                                   <xs:documentation xml:lang="en-us"> This field is
    1790                                                   required if the Pcd Datum Type is VOID*
    1791                                                   </xs:documentation>
    1792                                                   </xs:annotation>
    1793                                                   <xs:simpleType>
    1794                                                   <xs:restriction base="HexNumber">
    1795                                                   <xs:minLength value="3"/>
    1796                                                   </xs:restriction>
    1797                                                   </xs:simpleType>
    1798                                                   </xs:element>
    1799                                                   <xs:element minOccurs="1" maxOccurs="1"
    1800                                                   name="Value" type="xs:normalizedString"/>
    1801                                                   <xs:element ref="HelpText" minOccurs="0"
    1802                                                   maxOccurs="unbounded"/>
    1803                                                   <xs:element minOccurs="0" maxOccurs="unbounded"
    1804                                                   name="PcdError">
    1805                                                   <xs:annotation>
    1806                                                   <xs:documentation xml:lang="en-us"> Error
    1807                                                   information implemented by the module.
    1808                                                   </xs:documentation>
    1809                                                   </xs:annotation>
    1810                                                   <xs:complexType>
    1811                                                   <xs:sequence>
    1812                                                   <xs:element minOccurs="1" maxOccurs="1"
    1813                                                   name="ErrorNumber">
    1814                                                   <xs:annotation>
    1815                                                   <xs:documentation xml:lang="en-us"> The minLength
    1816                                                   of 3 is required to handle the "0x" prefix to the
    1817                                                   hex number. </xs:documentation>
    1818                                                   </xs:annotation>
    1819                                                   <xs:simpleType>
    1820                                                   <xs:restriction base="HexNumber">
    1821                                                   <xs:minLength value="3"/>
    1822                                                   </xs:restriction>
    1823                                                   </xs:simpleType>
    1824                                                   </xs:element>
    1825                                                   <xs:element minOccurs="0" maxOccurs="unbounded"
    1826                                                   name="ErrorMessage">
    1827                                                   <xs:complexType>
    1828                                                   <xs:simpleContent>
    1829                                                   <xs:extension base="xs:string">
    1830                                                   <xs:attribute name="Lang" type="xs:language"
    1831                                                   default="en-us" use="optional"/>
    1832                                                   </xs:extension>
    1833                                                   </xs:simpleContent>
    1834                                                   </xs:complexType>
    1835                                                   </xs:element>
    1836                                                   </xs:sequence>
    1837                                                   </xs:complexType>
    1838                                                   </xs:element>
    1839                                                   </xs:sequence>
    1840                                                   </xs:complexType>
    1841                                                   </xs:element>
    1842 
    1843                                                   <xs:element minOccurs="0" maxOccurs="1"
    1844                                                   name="LibraryInstances">
    1845                                                   <xs:annotation>
    1846                                                   <xs:documentation xml:lang="en-us"> This is the
    1847                                                   actual library instance that was used to link
    1848                                                   against the module. </xs:documentation>
    1849                                                   </xs:annotation>
    1850                                                   <xs:complexType>
    1851                                                   <xs:sequence>
    1852                                                   <xs:element minOccurs="1" maxOccurs="unbounded"
    1853                                                   name="GUID">
    1854                                                   <xs:annotation>
    1855                                                   <xs:documentation xml:lang="en-us"> This GUID and
    1856                                                   the Version attribute uniquely identify the actual
    1857                                                   Library Instance linked in this module.
    1858                                                   </xs:documentation>
    1859                                                   </xs:annotation>
    1860                                                   <xs:complexType>
    1861                                                   <xs:simpleContent>
    1862                                                   <xs:extension base="RegistryFormatGuid">
    1863                                                   <xs:attribute name="Version" type="xs:decimal"
    1864                                                   use="required">
    1865                                                   <xs:annotation>
    1866                                                   <xs:documentation xml:lang="en-us"> This value,
    1867                                                   along with the GUID, is used to uniquely identify
    1868                                                   this object. </xs:documentation>
    1869                                                   </xs:annotation>
    1870                                                   </xs:attribute>
    1871                                                   </xs:extension>
    1872                                                   </xs:simpleContent>
    1873                                                   </xs:complexType>
    1874                                                   </xs:element>
    1875                                                   </xs:sequence>
    1876                                                   </xs:complexType>
    1877                                                   </xs:element>
    1878 
    1879                                                   <xs:element minOccurs="0" maxOccurs="unbounded"
    1880                                                   name="BuildFlags">
    1881                                                   <xs:complexType mixed="true">
    1882                                                   <xs:simpleContent>
    1883                                                   <xs:annotation>
    1884                                                   <xs:documentation xml:lang="en-us"> Any
    1885                                                   description of OS, Tool, and flags for the
    1886                                                   individual tool can go in this section.
    1887                                                   </xs:documentation>
    1888                                                   </xs:annotation>
    1889                                                   <xs:extension base="xs:string">
    1890                                                   <xs:anyAttribute processContents="lax"/>
    1891                                                   </xs:extension>
    1892                                                   </xs:simpleContent>
    1893                                                   </xs:complexType>
    1894                                                   </xs:element>
     1591                                                    <xs:element minOccurs="0" maxOccurs="unbounded" name="PatchPcdValue">
     1592                                                        <xs:annotation>
     1593                                                            <xs:documentation xml:lang="en-us"> The element is the
     1594                                                            Patchable PCD Value that was used during the build.
     1595                                                            </xs:documentation>
     1596                                                        </xs:annotation>
     1597                                                        <xs:complexType>
     1598                                                            <xs:sequence>
     1599                                                            <xs:element minOccurs="1" maxOccurs="1"
     1600                                                            name="TokenSpaceGuidValue" type="RegistryFormatGuid"/>
     1601                                                            <xs:element minOccurs="1" maxOccurs="1" name="PcdCName"
     1602                                                            type="xs:NCName"/>
     1603                                                            <xs:element minOccurs="1" maxOccurs="1" name="Token">
     1604                                                            <xs:annotation>
     1605                                                            <xs:documentation xml:lang="en-us"> The minLength of 3 is
     1606                                                            required to handle the "0x" prefix to the hex number.
     1607                                                            </xs:documentation>
     1608                                                            </xs:annotation>
     1609                                                            <xs:simpleType>
     1610                                                            <xs:restriction base="HexNumber">
     1611                                                            <xs:minLength value="3"/>
     1612                                                            <xs:maxLength value="10"/>
     1613                                                            </xs:restriction>
     1614                                                            </xs:simpleType>
     1615                                                            </xs:element>
     1616                                                            <xs:element minOccurs="1" maxOccurs="1" name="DatumType"
     1617                                                            type="PcdDatumTypes"/>
     1618                                                            <xs:element minOccurs="0" maxOccurs="1" name="MaxDatumSize">
     1619                                                            <xs:annotation>
     1620                                                            <xs:documentation xml:lang="en-us"> This field is required
     1621                                                            if the Pcd Datum Type is VOID* </xs:documentation>
     1622                                                            <xs:documentation xml:lang="en-us"> The minLength of 3 is
     1623                                                            required to handle the "0x" prefix to the hex number.
     1624                                                            </xs:documentation>
     1625                                                            </xs:annotation>
     1626                                                            <xs:simpleType>
     1627                                                            <xs:restriction base="HexNumber">
     1628                                                            <xs:minLength value="3"/>
     1629                                                            </xs:restriction>
     1630                                                            </xs:simpleType>
     1631                                                            </xs:element>
     1632                                                            <xs:element minOccurs="1" maxOccurs="1" name="Value"
     1633                                                            type="xs:normalizedString"/>
     1634                                                            <xs:element minOccurs="1" maxOccurs="1" name="Offset">
     1635                                                            <xs:annotation>
     1636                                                            <xs:documentation xml:lang="en-us"> The minLength of 3 is
     1637                                                            required to handle the "0x" prefix to the hex number.
     1638                                                            </xs:documentation>
     1639                                                            </xs:annotation>
     1640                                                            <xs:simpleType>
     1641                                                            <xs:restriction base="HexNumber">
     1642                                                            <xs:minLength value="3"/>
     1643                                                            </xs:restriction>
     1644                                                            </xs:simpleType>
     1645                                                            </xs:element>
     1646                                                            <xs:element ref="HelpText" minOccurs="0"
     1647                                                            maxOccurs="unbounded"/>
     1648                                                            <xs:element minOccurs="0" maxOccurs="unbounded"
     1649                                                            name="PcdError">
     1650                                                            <xs:annotation>
     1651                                                            <xs:documentation xml:lang="en-us"> Error information
     1652                                                            implemented by the module. </xs:documentation>
     1653                                                            </xs:annotation>
     1654                                                            <xs:complexType>
     1655                                                            <xs:sequence>
     1656                                                            <xs:choice>
     1657                                                              <xs:element minOccurs="0" maxOccurs="1" name="ValidValueList">
     1658                                                                <xs:complexType>
     1659                                                                  <xs:simpleContent>
     1660                                                                    <xs:extension base="xs:normalizedString">
     1661                                                                    <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"/>
     1662                                                                    </xs:extension>
     1663                                                                  </xs:simpleContent>
     1664                                                                </xs:complexType>
     1665                                                              </xs:element>
     1666                                                              <xs:element minOccurs="0" maxOccurs="1" name="ValidValueRange" type="xs:normalizedString"/>
     1667                                                              <xs:element minOccurs="0" maxOccurs="1" name="Expression" type="xs:normalizedString"/>
     1668                                                            </xs:choice>
     1669                                                            <xs:element minOccurs="1" maxOccurs="1" name="ErrorNumber">
     1670                                                            <xs:annotation>
     1671                                                            <xs:documentation xml:lang="en-us"> The minLength of 3 is
     1672                                                            required to handle the "0x" prefix to the hex number.
     1673                                                            </xs:documentation>
     1674                                                            </xs:annotation>
     1675                                                            <xs:simpleType>
     1676                                                            <xs:restriction base="HexNumber">
     1677                                                            <xs:minLength value="3"/>
     1678                                                            </xs:restriction>
     1679                                                            </xs:simpleType>
     1680                                                            </xs:element>
     1681                                                            <xs:element minOccurs="0" maxOccurs="unbounded"
     1682                                                            name="ErrorMessage">
     1683                                                            <xs:complexType>
     1684                                                            <xs:simpleContent>
     1685                                                            <xs:extension base="xs:string">
     1686                                                            <xs:attribute name="Lang" type="xs:language" default="en-us"
     1687                                                            use="optional"/>
     1688                                                            </xs:extension>
     1689                                                            </xs:simpleContent>
     1690                                                            </xs:complexType>
     1691                                                            </xs:element>
     1692                                                            </xs:sequence>
     1693                                                            </xs:complexType>
     1694                                                            </xs:element>
     1695                                                            </xs:sequence>
     1696                                                        </xs:complexType>
     1697                                                    </xs:element>
     1698
     1699                                                    <xs:element minOccurs="0" maxOccurs="unbounded" name="PcdExValue">
     1700                                                        <xs:annotation>
     1701                                                            <xs:documentation xml:lang="en-us"> The element is the
     1702                                                            DynamicEx PCD Value that was used during the build.
     1703                                                            </xs:documentation>
     1704                                                        </xs:annotation>
     1705                                                        <xs:complexType>
     1706                                                            <xs:sequence>
     1707                                                            <xs:element minOccurs="1" maxOccurs="1"
     1708                                                            name="TokenSpaceGuidValue" type="RegistryFormatGuid"/>
     1709                                                            <xs:element minOccurs="1" maxOccurs="1" name="Token">
     1710                                                            <xs:annotation>
     1711                                                            <xs:documentation xml:lang="en-us"> The minLength of 3 is
     1712                                                            required to handle the "0x" prefix to the hex number.
     1713                                                            </xs:documentation>
     1714                                                            </xs:annotation>
     1715                                                            <xs:simpleType>
     1716                                                            <xs:restriction base="HexNumber">
     1717                                                            <xs:minLength value="3"/>
     1718                                                            <xs:maxLength value="10"/>
     1719                                                            </xs:restriction>
     1720                                                            </xs:simpleType>
     1721                                                            </xs:element>
     1722                                                            <xs:element minOccurs="1" maxOccurs="1" name="DatumType"
     1723                                                            type="PcdDatumTypes"/>
     1724                                                            <xs:element minOccurs="0" maxOccurs="1" name="MaxDatumSize">
     1725                                                            <xs:annotation>
     1726                                                            <xs:documentation xml:lang="en-us"> This field is required
     1727                                                            if the Pcd Datum Type is VOID* </xs:documentation>
     1728                                                            </xs:annotation>
     1729                                                            <xs:simpleType>
     1730                                                            <xs:restriction base="HexNumber">
     1731                                                            <xs:minLength value="3"/>
     1732                                                            </xs:restriction>
     1733                                                            </xs:simpleType>
     1734                                                            </xs:element>
     1735                                                            <xs:element minOccurs="1" maxOccurs="1" name="Value"
     1736                                                            type="xs:normalizedString"/>
     1737                                                            <xs:element ref="HelpText" minOccurs="0"
     1738                                                            maxOccurs="unbounded"/>
     1739                                                            <xs:element minOccurs="0" maxOccurs="unbounded"
     1740                                                            name="PcdError">
     1741                                                            <xs:annotation>
     1742                                                            <xs:documentation xml:lang="en-us"> Error information
     1743                                                            implemented by the module. </xs:documentation>
     1744                                                            </xs:annotation>
     1745                                                            <xs:complexType>
     1746                                                            <xs:sequence>
     1747                                                            <xs:choice>
     1748                                                              <xs:element minOccurs="0" maxOccurs="1" name="ValidValueList">
     1749                                                                <xs:complexType>
     1750                                                                  <xs:simpleContent>
     1751                                                                    <xs:extension base="xs:normalizedString">
     1752                                                                    <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"/>
     1753                                                                      </xs:extension>
     1754                                                                  </xs:simpleContent>
     1755                                                                </xs:complexType>
     1756                                                              </xs:element>
     1757                                                              <xs:element minOccurs="0" maxOccurs="1" name="ValidValueRange" type="xs:normalizedString"/>
     1758                                                              <xs:element minOccurs="0" maxOccurs="1" name="Expression" type="xs:normalizedString"/>
     1759                                                            </xs:choice>
     1760                                                            <xs:element minOccurs="1" maxOccurs="1" name="ErrorNumber">
     1761                                                            <xs:annotation>
     1762                                                            <xs:documentation xml:lang="en-us"> The minLength of 3 is
     1763                                                            required to handle the "0x" prefix to the hex number.
     1764                                                            </xs:documentation>
     1765                                                            </xs:annotation>
     1766                                                            <xs:simpleType>
     1767                                                            <xs:restriction base="HexNumber">
     1768                                                            <xs:minLength value="3"/>
     1769                                                            </xs:restriction>
     1770                                                            </xs:simpleType>
     1771                                                            </xs:element>
     1772                                                            <xs:element minOccurs="0" maxOccurs="unbounded"
     1773                                                            name="ErrorMessage">
     1774                                                            <xs:complexType>
     1775                                                            <xs:simpleContent>
     1776                                                            <xs:extension base="xs:string">
     1777                                                            <xs:attribute name="Lang" type="xs:language" default="en-us"
     1778                                                            use="optional"/>
     1779                                                            </xs:extension>
     1780                                                            </xs:simpleContent>
     1781                                                            </xs:complexType>
     1782                                                            </xs:element>
     1783                                                            </xs:sequence>
     1784                                                            </xs:complexType>
     1785                                                            </xs:element>
     1786                                                            </xs:sequence>
     1787                                                        </xs:complexType>
     1788                                                    </xs:element>
     1789
     1790                                                    <xs:element minOccurs="0" maxOccurs="1" name="LibraryInstances">
     1791                                                        <xs:annotation>
     1792                                                            <xs:documentation xml:lang="en-us"> This is the actual
     1793                                                            library instance that was used to link against the module.
     1794                                                            </xs:documentation>
     1795                                                        </xs:annotation>
     1796                                                        <xs:complexType>
     1797                                                            <xs:sequence>
     1798                                                            <xs:element minOccurs="1" maxOccurs="unbounded" name="GUID">
     1799                                                            <xs:annotation>
     1800                                                            <xs:documentation xml:lang="en-us"> This GUID and the
     1801                                                            Version attribute uniquely identify the actual Library
     1802                                                            Instance linked in this module. </xs:documentation>
     1803                                                            </xs:annotation>
     1804                                                            <xs:complexType>
     1805                                                            <xs:simpleContent>
     1806                                                            <xs:extension base="RegistryFormatGuid">
     1807                                                            <xs:attribute name="Version" type="xs:decimal"
     1808                                                            use="required">
     1809                                                            <xs:annotation>
     1810                                                            <xs:documentation xml:lang="en-us"> This value, along with
     1811                                                            the GUID, is used to uniquely identify this object.
     1812                                                            </xs:documentation>
     1813                                                            </xs:annotation>
     1814                                                            </xs:attribute>
     1815                                                            </xs:extension>
     1816                                                            </xs:simpleContent>
     1817                                                            </xs:complexType>
     1818                                                            </xs:element>
     1819                                                            </xs:sequence>
     1820                                                        </xs:complexType>
     1821                                                    </xs:element>
     1822
     1823                                                    <xs:element minOccurs="0" maxOccurs="unbounded" name="BuildFlags">
     1824                                                        <xs:complexType mixed="true">
     1825                                                            <xs:simpleContent>
     1826                                                            <xs:annotation>
     1827                                                            <xs:documentation xml:lang="en-us"> Any description of OS,
     1828                                                            Tool, and flags for the individual tool can go in this
     1829                                                            section. </xs:documentation>
     1830                                                            </xs:annotation>
     1831                                                            <xs:extension base="xs:string">
     1832                                                            <xs:anyAttribute processContents="lax"/>
     1833                                                            </xs:extension>
     1834                                                            </xs:simpleContent>
     1835                                                        </xs:complexType>
     1836                                                    </xs:element>
    18951837                                                </xs:sequence>
    18961838                                            </xs:complexType>
    18971839                                        </xs:element>
    18981840                                        <!-- End of AsBuilt -->
    1899                                         <xs:element ref="HelpText" minOccurs="0"
    1900                                             maxOccurs="unbounded"/>
     1841                                        <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>
    19011842                                    </xs:sequence>
    19021843                                </xs:complexType>
     
    19141855                                <xs:complexType>
    19151856                                    <xs:sequence>
    1916                                         <xs:element minOccurs="0" maxOccurs="unbounded"
    1917                                             name="Description">
     1857                                        <xs:element minOccurs="0" maxOccurs="unbounded" name="Description">
    19181858                                            <xs:complexType>
    19191859                                                <xs:simpleContent>
    1920                                                   <xs:extension base="xs:string">
    1921                                                   <xs:attribute name="Lang" type="xs:language"
    1922                                                   default="en-us" use="optional"/>
    1923                                                   </xs:extension>
     1860                                                    <xs:extension base="xs:string">
     1861                                                        <xs:attribute name="Lang" type="xs:language" default="en-us"
     1862                                                            use="optional"/>
     1863                                                    </xs:extension>
    19241864                                                </xs:simpleContent>
    19251865                                            </xs:complexType>
     
    19271867                                        <xs:element minOccurs="1" maxOccurs="1" name="GUID">
    19281868                                            <xs:annotation>
    1929                                                 <xs:documentation xml:lang="en-us"> This GUID and
    1930                                                   the Version attribute uniquely identify Package
    1931                                                   that this Module depends on. </xs:documentation>
     1869                                                <xs:documentation xml:lang="en-us"> This GUID and the Version attribute
     1870                                                    uniquely identify Package that this Module depends on.
     1871                                                </xs:documentation>
    19321872                                            </xs:annotation>
    19331873                                            <xs:complexType>
    19341874                                                <xs:simpleContent>
    1935                                                   <xs:extension base="RegistryFormatGuid">
    1936                                                   <xs:attribute name="Version" type="xs:decimal"
    1937                                                   use="optional">
    1938                                                   <xs:annotation>
    1939                                                   <xs:documentation xml:lang="en-us"> This value,
    1940                                                   along with the GUID, is used to uniquely identify
    1941                                                   this object. If the version attribute is not
    1942                                                   specified, the most recent version of the package
    1943                                                   can be used. </xs:documentation>
    1944                                                   </xs:annotation>
    1945                                                   </xs:attribute>
    1946                                                   </xs:extension>
     1875                                                    <xs:extension base="RegistryFormatGuid">
     1876                                                        <xs:attribute name="Version" type="xs:decimal" use="optional">
     1877                                                            <xs:annotation>
     1878                                                            <xs:documentation xml:lang="en-us"> This value, along with
     1879                                                            the GUID, is used to uniquely identify this object. If the
     1880                                                            version attribute is not specified, the most recent version
     1881                                                            of the package can be used. </xs:documentation>
     1882                                                            </xs:annotation>
     1883                                                        </xs:attribute>
     1884                                                    </xs:extension>
    19471885                                                </xs:simpleContent>
    19481886                                            </xs:complexType>
    19491887                                        </xs:element>
    19501888                                    </xs:sequence>
    1951                                     <xs:attribute name="SupArchList" type="ArchListType"
    1952                                         use="optional"/>
    1953                                     <xs:attribute name="SupModList" type="ModuleListType"
    1954                                         use="optional"/>
    1955                                     <xs:attribute name="FeatureFlag" type="xs:normalizedString"
    1956                                         use="optional"/>
     1889                                    <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
     1890                                    <xs:attribute name="SupModList" type="ModuleListType" use="optional"/>
     1891                                    <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>
    19571892                                </xs:complexType>
    19581893                            </xs:element>
     
    19681903                                <xs:complexType>
    19691904                                    <xs:sequence>
    1970                                         <xs:element minOccurs="1" maxOccurs="1" name="CName"
    1971                                             type="xs:NCName"/>
     1905                                        <xs:element minOccurs="1" maxOccurs="1" name="CName" type="xs:NCName"/>
     1906                                        <xs:element minOccurs="0" maxOccurs="1" name="GUID" type="RegistryFormatGuid"/>
    19721907                                        <xs:element minOccurs="0" maxOccurs="1" name="VariableName"
    19731908                                            type="xs:normalizedString">
    19741909                                            <xs:annotation>
    1975                                                 <xs:documentation xml:lang="en-us"> Only valid for
    1976                                                   Variable GUID types. </xs:documentation>
    1977                                                 <xs:documentation> This can be either a Hex Array or
    1978                                                   C string in unicode format: L"string" Data.
    1979                                                 </xs:documentation>
     1910                                                <xs:documentation xml:lang="en-us"> Only valid for Variable GUID types. </xs:documentation>
     1911                                                <xs:documentation> This can be either a Hex Array or C string in unicode
     1912                                                    format: L"string" Data. </xs:documentation>
    19801913                                            </xs:annotation>
    19811914                                        </xs:element>
    1982                                         <xs:element ref="HelpText" minOccurs="0"
    1983                                             maxOccurs="unbounded"/>
     1915                                        <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>
    19841916                                    </xs:sequence>
    19851917                                    <xs:attribute name="Usage" use="required">
     
    19871919                                            <xs:restriction base="xs:NCName">
    19881920                                                <xs:enumeration value="CONSUMES">
    1989                                                   <xs:annotation>
    1990                                                   <xs:documentation xml:lang="en-us">The module does
    1991                                                   not install the GUID, and the GUID must be present
    1992                                                   for the module to execute. </xs:documentation>
    1993                                                   </xs:annotation>
     1921                                                    <xs:annotation>
     1922                                                        <xs:documentation xml:lang="en-us">The module does not install
     1923                                                            the GUID, and the GUID must be present for the module to
     1924                                                            execute. </xs:documentation>
     1925                                                    </xs:annotation>
    19941926                                                </xs:enumeration>
    19951927                                                <xs:enumeration value="SOMETIMES_CONSUMES">
    1996                                                   <xs:annotation>
    1997                                                   <xs:documentation xml:lang="en-us"> The module
    1998                                                   does not install the GUID, however, the GUID will
    1999                                                   be used if it is present. </xs:documentation>
    2000                                                   </xs:annotation>
     1928                                                    <xs:annotation>
     1929                                                        <xs:documentation xml:lang="en-us"> The module does not install
     1930                                                            the GUID, however, the GUID will be used if it is present.
     1931                                                        </xs:documentation>
     1932                                                    </xs:annotation>
    20011933                                                </xs:enumeration>
    20021934                                                <xs:enumeration value="PRODUCES">
    2003                                                   <xs:annotation>
    2004                                                   <xs:documentation xml:lang="en-us"> The module
    2005                                                   always installs the GUID. </xs:documentation>
    2006                                                   </xs:annotation>
     1935                                                    <xs:annotation>
     1936                                                        <xs:documentation xml:lang="en-us"> The module always installs
     1937                                                            the GUID. </xs:documentation>
     1938                                                    </xs:annotation>
    20071939                                                </xs:enumeration>
    20081940                                                <xs:enumeration value="SOMETIMES_PRODUCES">
    2009                                                   <xs:annotation>
    2010                                                   <xs:documentation xml:lang="en-us"> The Module
    2011                                                   will install the GUID under certain execution
    2012                                                   paths. </xs:documentation>
    2013                                                   </xs:annotation>
     1941                                                    <xs:annotation>
     1942                                                        <xs:documentation xml:lang="en-us"> The Module will install the
     1943                                                            GUID under certain execution paths. </xs:documentation>
     1944                                                    </xs:annotation>
    20141945                                                </xs:enumeration>
    20151946                                                <xs:enumeration value="UNDEFINED">
    2016                                                   <xs:annotation>
    2017                                                   <xs:documentation xml:lang="en-us"> The package
    2018                                                   creator knows that a GUID is used, but does not
    2019                                                   know how it is used. </xs:documentation>
    2020                                                   </xs:annotation>
     1947                                                    <xs:annotation>
     1948                                                        <xs:documentation xml:lang="en-us"> The package creator knows
     1949                                                            that a GUID is used, but does not know how it is used.
     1950                                                        </xs:documentation>
     1951                                                    </xs:annotation>
    20211952                                                </xs:enumeration>
    20221953                                            </xs:restriction>
     
    20241955                                    </xs:attribute>
    20251956                                    <xs:attribute name="GuidType" type="GuidListType" use="required"/>
    2026                                     <xs:attribute name="SupArchList" type="ArchListType"
    2027                                         use="optional"/>
    2028                                     <xs:attribute name="SupModList" type="ModuleListType"
    2029                                         use="optional"/>
    2030                                     <xs:attribute name="FeatureFlag" type="xs:normalizedString"
    2031                                         use="optional"/>
     1957                                    <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
     1958                                    <xs:attribute name="SupModList" type="ModuleListType" use="optional"/>
     1959                                    <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>
    20321960                                </xs:complexType>
    20331961                            </xs:element>
     
    20391967                <xs:element minOccurs="0" maxOccurs="1" name="Protocols">
    20401968                    <xs:annotation>
    2041                         <xs:documentation xml:lang="en-us"> A listing of protocols required or
    2042                             produced by this module. </xs:documentation>
    2043                     </xs:annotation>
    2044                     <xs:complexType>
    2045                         <xs:sequence>
    2046                             <xs:element minOccurs="1" maxOccurs="unbounded" name="Protocol"
    2047                                 nillable="true">
     1969                        <xs:documentation xml:lang="en-us"> A listing of protocols required or produced by this module.
     1970                        </xs:documentation>
     1971                    </xs:annotation>
     1972                    <xs:complexType>
     1973                        <xs:sequence>
     1974                            <xs:element minOccurs="1" maxOccurs="unbounded" name="Protocol" nillable="true">
    20481975                                <xs:complexType>
    20491976                                    <xs:sequence>
    2050                                         <xs:element minOccurs="1" maxOccurs="1" name="CName"
    2051                                             type="xs:NCName"/>
    2052                                         <xs:element ref="HelpText" minOccurs="0"
    2053                                             maxOccurs="unbounded"/>
     1977                                        <xs:element minOccurs="1" maxOccurs="1" name="CName" type="xs:NCName"/>
     1978                                        <xs:element minOccurs="0" maxOccurs="1" name="GUID" type="RegistryFormatGuid"/>                                       
     1979                                        <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>
    20541980                                    </xs:sequence>
    20551981                                    <xs:attribute name="Usage" use="required">
     
    20671993                                    </xs:attribute>
    20681994                                    <xs:attribute name="Notify" type="xs:boolean" use="optional"/>
    2069                                     <xs:attribute name="SupArchList" type="ArchListType"
    2070                                         use="optional"/>
    2071                                     <xs:attribute name="SupModList" type="ModuleListType"
    2072                                         use="optional"/>
    2073                                     <xs:attribute name="FeatureFlag" type="xs:normalizedString"
    2074                                         use="optional"/>
     1995                                    <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
     1996                                    <xs:attribute name="SupModList" type="ModuleListType" use="optional"/>
     1997                                    <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>
    20751998                                </xs:complexType>
    20761999                            </xs:element>
     
    20822005                <xs:element minOccurs="0" maxOccurs="1" name="PPIs">
    20832006                    <xs:annotation>
    2084                         <xs:documentation xml:lang="en-us"> A listing of PPIs required or produced
    2085                             by this module. </xs:documentation>
    2086                     </xs:annotation>
    2087                     <xs:complexType>
    2088                         <xs:sequence>
    2089                             <xs:element minOccurs="1" maxOccurs="unbounded" name="Ppi"
    2090                                 nillable="true">
     2007                        <xs:documentation xml:lang="en-us"> A listing of PPIs required or produced by this module.
     2008                        </xs:documentation>
     2009                    </xs:annotation>
     2010                    <xs:complexType>
     2011                        <xs:sequence>
     2012                            <xs:element minOccurs="1" maxOccurs="unbounded" name="Ppi" nillable="true">
    20912013                                <xs:complexType>
    20922014                                    <xs:sequence>
    2093                                         <xs:element minOccurs="1" maxOccurs="1" name="CName"
    2094                                             type="xs:NCName"/>
    2095                                         <xs:element ref="HelpText" minOccurs="0"
    2096                                             maxOccurs="unbounded"/>
     2015                                        <xs:element minOccurs="1" maxOccurs="1" name="CName" type="xs:NCName"/>
     2016                                        <xs:element minOccurs="0" maxOccurs="1" name="GUID" type="RegistryFormatGuid"/>                                       
     2017                                        <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>
    20972018                                    </xs:sequence>
    20982019                                    <xs:attribute name="Usage" use="required">
     
    21082029                                    </xs:attribute>
    21092030                                    <xs:attribute name="Notify" type="xs:boolean" use="optional"/>
    2110                                     <xs:attribute name="SupArchList" type="ArchListType"
    2111                                         use="optional"/>
    2112                                     <xs:attribute name="SupModList" type="ModuleListType"
    2113                                         use="optional"/>
    2114                                     <xs:attribute name="FeatureFlag" type="xs:normalizedString"
    2115                                         use="optional"/>
     2031                                    <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
     2032                                    <xs:attribute name="SupModList" type="ModuleListType" use="optional"/>
     2033                                    <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>
    21162034                                </xs:complexType>
    21172035                            </xs:element>
     
    21232041                <xs:element minOccurs="0" maxOccurs="1" name="Externs">
    21242042                    <xs:annotation>
    2125                         <xs:documentation xml:lang="en-us"> These elements specify additional
    2126                             information about the module. This area may be used by tools to generate
    2127                             code. </xs:documentation>
     2043                        <xs:documentation xml:lang="en-us"> These elements specify additional information about the
     2044                            module. This area may be used by tools to generate code. </xs:documentation>
    21282045                    </xs:annotation>
    21292046                    <xs:complexType>
     
    21342051                                        <xs:choice minOccurs="1">
    21352052                                            <xs:sequence>
    2136                                                 <xs:element minOccurs="0" maxOccurs="1"
    2137                                                   name="EntryPoint" type="xs:NCName"/>
    2138                                                 <xs:element minOccurs="0" maxOccurs="1"
    2139                                                   name="UnloadImage" type="xs:NCName"/>
     2053                                                <xs:element minOccurs="0" maxOccurs="1" name="EntryPoint"
     2054                                                    type="xs:NCName"/>
     2055                                                <xs:element minOccurs="0" maxOccurs="1" name="UnloadImage"
     2056                                                    type="xs:NCName"/>
    21402057                                            </xs:sequence>
    21412058                                            <xs:sequence>
    2142                                                 <xs:element minOccurs="0" maxOccurs="1"
    2143                                                   name="Constructor" type="xs:NCName"/>
    2144                                                 <xs:element minOccurs="0" maxOccurs="1"
    2145                                                   name="Destructor" type="xs:NCName"/>
     2059                                                <xs:element minOccurs="0" maxOccurs="1" name="Constructor"
     2060                                                    type="xs:NCName"/>
     2061                                                <xs:element minOccurs="0" maxOccurs="1" name="Destructor"
     2062                                                    type="xs:NCName"/>
    21462063                                            </xs:sequence>
    21472064                                        </xs:choice>
    21482065                                        <xs:element ref="HelpText" minOccurs="0" maxOccurs="1"/>
    21492066                                    </xs:sequence>
    2150                                     <xs:attribute name="SupArchList" type="ArchListType"
    2151                                         use="optional"/>
    2152                                     <xs:attribute name="SupModList" type="ModuleListType"
    2153                                         use="optional"/>
    2154                                     <xs:attribute name="FeatureFlag" type="xs:normalizedString"
    2155                                         use="optional"/>
     2067                                    <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
     2068                                    <xs:attribute name="SupModList" type="ModuleListType" use="optional"/>
     2069                                    <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>
    21562070                                </xs:complexType>
    21572071                            </xs:element>
     
    21632077                <xs:element minOccurs="0" maxOccurs="1" name="PcdCoded">
    21642078                    <xs:annotation>
    2165                         <xs:documentation xml:lang="en-us"> This section describes how a platform is
    2166                             coded with respect to the platform configuration knobs.
    2167                         </xs:documentation>
     2079                        <xs:documentation xml:lang="en-us"> This section describes how a platform is coded with respect
     2080                            to the platform configuration knobs. </xs:documentation>
    21682081                    </xs:annotation>
    21692082                    <xs:complexType>
     
    21722085                                <xs:complexType>
    21732086                                    <xs:sequence>
    2174                                         <xs:element minOccurs="1" maxOccurs="1" name="CName"
     2087                                        <xs:element minOccurs="1" maxOccurs="1" name="CName" type="xs:NCName"/>
     2088                                        <xs:element minOccurs="1" maxOccurs="1" name="TokenSpaceGuidCName"
    21752089                                            type="xs:NCName"/>
    2176                                         <xs:element minOccurs="1" maxOccurs="1"
    2177                                             name="TokenSpaceGuidCName" type="xs:NCName"/>
    21782090                                        <xs:element minOccurs="0" maxOccurs="1" name="DefaultValue"
    21792091                                            type="xs:normalizedString"/>
    2180                                         <xs:element ref="HelpText" minOccurs="0"
    2181                                             maxOccurs="unbounded"/>
     2092                                        <xs:element ref="HelpText" minOccurs="0" maxOccurs="unbounded"/>
    21822093                                    </xs:sequence>
    2183                                     <xs:attribute name="PcdItemType" type="PcdItemTypes"
    2184                                         use="required"/>
     2094                                    <xs:attribute name="PcdItemType" type="PcdItemTypes" use="required"/>
    21852095                                    <xs:attribute name="PcdUsage" use="required">
    21862096                                        <xs:simpleType>
     
    21962106
    21972107                                    </xs:attribute>
    2198                                     <xs:attribute name="SupArchList" type="ArchListType"
    2199                                         use="optional"/>
    2200                                     <xs:attribute name="SupModList" type="ModuleListType"
    2201                                         use="optional"/>
    2202                                     <xs:attribute name="FeatureFlag" type="xs:normalizedString"
    2203                                         use="optional"/>
     2108                                    <xs:attribute name="SupArchList" type="ArchListType" use="optional"/>
     2109                                    <xs:attribute name="SupModList" type="ModuleListType" use="optional"/>
     2110                                    <xs:attribute name="FeatureFlag" type="xs:normalizedString" use="optional"/>
    22042111                                </xs:complexType>
    22052112                            </xs:element>
     
    22112118                <xs:element minOccurs="0" maxOccurs="unbounded" name="PeiDepex">
    22122119                    <xs:annotation>
    2213                         <xs:documentation xml:lang="en-us"> This is the PEI dependency expression
    2214                             for a Dependency Section. </xs:documentation>
    2215                     </xs:annotation>
    2216                     <xs:complexType>
    2217                         <xs:sequence>
    2218                             <xs:element name="Expression" type="xs:string" minOccurs="1"
    2219                                 maxOccurs="1">
    2220                                 <xs:annotation>
    2221                                     <xs:documentation xml:lang="en-us"> An in-fix expression, of C
    2222                                         identifiers and TRUE, FALSE, AND, OR, NOT, BEFORE, and AFTER
    2223                                         as well as parenthesis () in the in-fix notation. The
    2224                                         operators are restricted to grammar defined in the PI
     2120                        <xs:documentation xml:lang="en-us"> This is the PEI dependency expression for a Dependency
     2121                            Section. </xs:documentation>
     2122                    </xs:annotation>
     2123                    <xs:complexType>
     2124                        <xs:sequence>
     2125                            <xs:element name="Expression" type="xs:string" minOccurs="1" maxOccurs="1">
     2126                                <xs:annotation>
     2127                                    <xs:documentation xml:lang="en-us"> An in-fix expression, of C identifiers and TRUE,
     2128                                        FALSE, AND, OR, NOT, BEFORE, and AFTER as well as parenthesis () in the in-fix
     2129                                        notation. The operators are restricted to grammar defined in the PI
    22252130                                        specification. </xs:documentation>
    22262131                                </xs:annotation>
     
    22372142                <xs:element minOccurs="0" maxOccurs="unbounded" name="DxeDepex">
    22382143                    <xs:annotation>
    2239                         <xs:documentation xml:lang="en-us"> This is the DXE dependency expression
    2240                             for a Dependency Section. </xs:documentation>
    2241                     </xs:annotation>
    2242                     <xs:complexType>
    2243                         <xs:sequence>
    2244                             <xs:element name="Expression" type=" xs:string " minOccurs="1"
    2245                                 maxOccurs="1">
    2246                                 <xs:annotation>
    2247                                     <xs:documentation xml:lang="en-us"> An in-fix expression, of C
    2248                                         identifiers and TRUE, FALSE, AND, OR, NOT, BEFORE, and AFTER
    2249                                         as well as parenthesis () in the in-fix notation. The
    2250                                         operators are restricted to grammar defined in the PI
     2144                        <xs:documentation xml:lang="en-us"> This is the DXE dependency expression for a Dependency
     2145                            Section. </xs:documentation>
     2146                    </xs:annotation>
     2147                    <xs:complexType>
     2148                        <xs:sequence>
     2149                            <xs:element name="Expression" type=" xs:string " minOccurs="1" maxOccurs="1">
     2150                                <xs:annotation>
     2151                                    <xs:documentation xml:lang="en-us"> An in-fix expression, of C identifiers and TRUE,
     2152                                        FALSE, AND, OR, NOT, BEFORE, and AFTER as well as parenthesis () in the in-fix
     2153                                        notation. The operators are restricted to grammar defined in the PI
    22512154                                        specification. </xs:documentation>
    22522155                                </xs:annotation>
     
    22632166                <xs:element minOccurs="0" maxOccurs="unbounded" name="SmmDepex">
    22642167                    <xs:annotation>
    2265                         <xs:documentation xml:lang="en-us"> This is the SMM dependency expression
    2266                             for a Dependency Section. </xs:documentation>
    2267                     </xs:annotation>
    2268                     <xs:complexType>
    2269                         <xs:sequence>
    2270                             <xs:element name="Expression" type=" xs:string " minOccurs="1"
    2271                                 maxOccurs="1">
    2272                                 <xs:annotation>
    2273                                     <xs:documentation xml:lang="en-us"> An in-fix expression, of C
    2274                                         identifiers and TRUE, FALSE, AND, OR, NOT, BEFORE, and AFTER
    2275                                         as well as parenthesis () in the in-fix notation. The
    2276                                         operators are restricted to grammar defined in the PI
     2168                        <xs:documentation xml:lang="en-us"> This is the SMM dependency expression for a Dependency
     2169                            Section. </xs:documentation>
     2170                    </xs:annotation>
     2171                    <xs:complexType>
     2172                        <xs:sequence>
     2173                            <xs:element name="Expression" type=" xs:string " minOccurs="1" maxOccurs="1">
     2174                                <xs:annotation>
     2175                                    <xs:documentation xml:lang="en-us"> An in-fix expression, of C identifiers and TRUE,
     2176                                        FALSE, AND, OR, NOT, BEFORE, and AFTER as well as parenthesis () in the in-fix
     2177                                        notation. The operators are restricted to grammar defined in the PI
    22772178                                        specification. </xs:documentation>
    22782179                                </xs:annotation>
     
    22902191                <xs:element minOccurs="0" maxOccurs="1" name="MiscellaneousFiles">
    22912192                    <xs:annotation>
    2292                         <xs:documentation xml:lang="en-us"> This section is used to provide comments
    2293                             and/or list auxiliary files, such as pdb or map files.
    2294                         </xs:documentation>
     2193                        <xs:documentation xml:lang="en-us"> This section is used to provide comments and/or list
     2194                            auxiliary files, such as pdb or map files. </xs:documentation>
    22952195                    </xs:annotation>
    22962196                    <xs:complexType>
     
    23002200                                    <xs:simpleContent>
    23012201                                        <xs:extension base="xs:string">
    2302                                             <xs:attribute name="Lang" type="xs:language"
    2303                                                 default="en-us" use="optional"/>
     2202                                            <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"
     2203                                            />
    23042204                                        </xs:extension>
    23052205                                    </xs:simpleContent>
     
    23082208                            <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename">
    23092209                                <xs:annotation>
    2310                                     <xs:documentation xml:lang="en-us"> This is the path and
    2311                                         filename location within the ZIP file. </xs:documentation>
     2210                                    <xs:documentation xml:lang="en-us"> This is the path and filename location within
     2211                                        the ZIP file. </xs:documentation>
    23122212                                </xs:annotation>
    23132213                                <xs:complexType>
    23142214                                    <xs:simpleContent>
    23152215                                        <xs:extension base="xs:anyURI">
    2316                                             <xs:attribute name="Executable" type="xs:boolean"
    2317                                                 default="false" use="optional">
     2216                                            <xs:attribute name="Executable" type="xs:boolean" default="false"
     2217                                                use="optional">
    23182218                                                <xs:annotation>
    2319                                                   <xs:documentation xml:lang="en-us"> If true, used
    2320                                                   by installation tools to ensure that a file that
    2321                                                   must be executable has the correct properties to
    2322                                                   permit execution. </xs:documentation>
     2219                                                    <xs:documentation xml:lang="en-us"> If true, used by installation
     2220                                                        tools to ensure that a file that must be executable has the
     2221                                                        correct properties to permit execution. </xs:documentation>
    23232222                                                </xs:annotation>
    23242223                                            </xs:attribute>
     
    23342233                <xs:element minOccurs="0" maxOccurs="unbounded" name="UserExtensions">
    23352234                    <xs:annotation>
    2336                         <xs:documentation xml:lang="en-us"> This section is used for any processing
    2337                             instructions that may be custom to the content provided by the
    2338                             distribution that are common to module. </xs:documentation>
     2235                        <xs:documentation xml:lang="en-us"> This section is used for any processing instructions that
     2236                            may be custom to the content provided by the distribution that are common to module. </xs:documentation>
    23392237                        <xs:documentation xml:lang="en-us"> The content is vendor specific. </xs:documentation>
    2340                         <xs:documentation xml:lang="en-us"> The content can be plain text as well as
    2341                             any user-defined, properly formatted XML structure. </xs:documentation>
     2238                        <xs:documentation xml:lang="en-us"> The content can be plain text as well as any user-defined,
     2239                            properly formatted XML structure. </xs:documentation>
    23422240                    </xs:annotation>
    23432241                    <xs:complexType mixed="true">
    23442242                        <xs:attribute name="UserId" type="xs:NCName" use="required">
    23452243                            <xs:annotation>
    2346                                 <xs:documentation xml:lang="en-us"> This is a single word identifier
    2347                                     for grouping similar content. For example, ReferenceBuild might
    2348                                     be used to identify non-PI compliant build steps, with two
    2349                                     different UserExtensions sections, one with an Identifier of
    2350                                     Prebuild, and another of PostBuild. Both UserExtensions sections
    2351                                     would use the same UserId. </xs:documentation>
     2244                                <xs:documentation xml:lang="en-us"> This is a single word identifier for grouping
     2245                                    similar content. For example, ReferenceBuild might be used to identify non-PI
     2246                                    compliant build steps, with two different UserExtensions sections, one with an
     2247                                    Identifier of Prebuild, and another of PostBuild. Both UserExtensions sections would
     2248                                    use the same UserId. </xs:documentation>
    23522249                            </xs:annotation>
    23532250                        </xs:attribute>
    23542251                        <xs:attribute name="Identifier" type="xs:string" use="required">
    23552252                            <xs:annotation>
    2356                                 <xs:documentation xml:lang="en-us"> This can be any string used to
    2357                                     differentiate or identify this section from other UserExtensions
    2358                                     sections. </xs:documentation>
    2359                                 <xs:documentation xml:lang="en-us"> For example, a PRE_PROCESS
    2360                                     Identifier might indicate specific steps and tools required
    2361                                     before processing module content, while a different
    2362                                     UserExtensions section with a POST_PROCESS Identifier might
    2363                                     describe steps that need to be executed after operations on this
    2364                                     module. </xs:documentation>
     2253                                <xs:documentation xml:lang="en-us"> This can be any string used to differentiate or
     2254                                    identify this section from other UserExtensions sections. </xs:documentation>
     2255                                <xs:documentation xml:lang="en-us"> For example, a PRE_PROCESS Identifier might indicate
     2256                                    specific steps and tools required before processing module content, while a
     2257                                    different UserExtensions section with a POST_PROCESS Identifier might describe steps
     2258                                    that need to be executed after operations on this module. </xs:documentation>
    23652259                            </xs:annotation>
    23662260                        </xs:attribute>
     
    23732267            <xs:attribute name="BinaryModule" type="xs:boolean" default="false" use="optional">
    23742268                <xs:annotation>
    2375                     <xs:documentation xml:lang="en-us"> This attribute is used when the binaries are
    2376                         distributed for this module and no code generation from source files is
    2377                         required. If set, then the BinaryFiles section should be used, and any files
    2378                         listed in the SourceFiles section do not have to be built. Additionally, the
    2379                         AsBuilt section for each binary file must be included. </xs:documentation>
     2269                    <xs:documentation xml:lang="en-us"> This attribute is used when the binaries are distributed for
     2270                        this module and no code generation from source files is required. If set, then the BinaryFiles
     2271                        section should be used, and any files listed in the SourceFiles section do not have to be built.
     2272                        Additionally, the AsBuilt section for each binary file must be included. </xs:documentation>
    23802273                </xs:annotation>
    23812274            </xs:attribute>
     
    23912284                    <xs:complexType>
    23922285                        <xs:sequence>
    2393                             <xs:element minOccurs="1" maxOccurs="1" name="Name"
    2394                                 type="xs:normalizedString">
    2395                                 <xs:annotation>
    2396                                     <xs:documentation xml:lang="en-us">This is the User Interface
    2397                                         Name for this Tools Distribution.</xs:documentation>
    2398                                 </xs:annotation>
    2399                             </xs:element>
    2400                             <xs:element minOccurs="0" maxOccurs="1" name="Copyright"
    2401                                 type="xs:string">
    2402                                 <xs:annotation>
    2403                                     <xs:documentation xml:lang="en-us"> This is only required if the
    2404                                         Copyright is different from the Distribution Package
    2405                                         copyright. </xs:documentation>
     2286                            <xs:element minOccurs="1" maxOccurs="1" name="Name" type="xs:normalizedString">
     2287                                <xs:annotation>
     2288                                    <xs:documentation xml:lang="en-us">This is the User Interface Name for this Tools
     2289                                        Distribution.</xs:documentation>
     2290                                </xs:annotation>
     2291                            </xs:element>
     2292                            <xs:element minOccurs="0" maxOccurs="1" name="Copyright" type="xs:string">
     2293                                <xs:annotation>
     2294                                    <xs:documentation xml:lang="en-us"> This is only required if the Copyright is
     2295                                        different from the Distribution Package copyright. </xs:documentation>
    24062296                                </xs:annotation>
    24072297                            </xs:element>
    24082298                            <xs:element minOccurs="0" maxOccurs="1" name="License" type="xs:string">
    24092299                                <xs:annotation>
    2410                                     <xs:documentation xml:lang="en-us"> This is only required if the
    2411                                         License is different from the Distribution Package license.
    2412                                     </xs:documentation>
    2413                                 </xs:annotation>
    2414                             </xs:element>
    2415                             <xs:element minOccurs="0" maxOccurs="1" name="Abstract"
    2416                                 type="xs:normalizedString">
    2417                                 <xs:annotation>
    2418                                     <xs:documentation xml:lang="en-us"> This is only required if the
    2419                                         Abstract is different from the Distribution Package
    2420                                         Abstract. </xs:documentation>
    2421                                 </xs:annotation>
    2422                             </xs:element>
    2423                             <xs:element minOccurs="0" maxOccurs="1" name="Description"
    2424                                 type="xs:string">
    2425                                 <xs:annotation>
    2426                                     <xs:documentation xml:lang="en-us"> This is only required if the
    2427                                         Description is different from the Distribution Package
    2428                                         Description. </xs:documentation>
    2429                                 </xs:annotation>
     2300                                    <xs:documentation xml:lang="en-us"> This is only required if the License is
     2301                                        different from the Distribution Package license. </xs:documentation>
     2302                                </xs:annotation>
     2303                            </xs:element>
     2304                            <xs:element minOccurs="0" maxOccurs="1" name="Abstract">
     2305                                <xs:annotation>
     2306                                    <xs:documentation xml:lang="en-us"> This is only required if the Abstract is
     2307                                        different from the Distribution Package Abstract. </xs:documentation>
     2308                                </xs:annotation>
     2309                                <xs:complexType>
     2310                                    <xs:simpleContent>
     2311                                        <xs:extension base="xs:normalizedString">
     2312                                            <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"/>
     2313                                        </xs:extension>                                       
     2314                                    </xs:simpleContent>
     2315                                </xs:complexType>
     2316                            </xs:element>
     2317                            <xs:element minOccurs="0" maxOccurs="1" name="Description">
     2318                                <xs:annotation>
     2319                                    <xs:documentation xml:lang="en-us"> This is only required if the Description is
     2320                                        different from the Distribution Package Description. </xs:documentation>
     2321                                </xs:annotation>
     2322                                <xs:complexType>
     2323                                    <xs:simpleContent>
     2324                                        <xs:extension base="xs:string">
     2325                                            <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"/>
     2326                                        </xs:extension>                                       
     2327                                    </xs:simpleContent>
     2328                                </xs:complexType>
     2329                               
    24302330                            </xs:element>
    24312331                        </xs:sequence>
     
    24342334                <xs:element minOccurs="1" maxOccurs="unbounded" name="Filename">
    24352335                    <xs:annotation>
    2436                         <xs:documentation xml:lang="en-us"> This is the path and filename location
    2437                             within the ZIP file. </xs:documentation>
     2336                        <xs:documentation xml:lang="en-us"> This is the path and filename location within the ZIP file.
     2337                        </xs:documentation>
    24382338                    </xs:annotation>
    24392339                    <xs:complexType>
     
    24422342                                <xs:attribute name="OS" type="SupportedOs" use="optional">
    24432343                                    <xs:annotation>
    2444                                         <xs:documentation xml:lang="en-us"> This is required for
    2445                                             tools that execute; it should not be used for
    2446                                             configuration files. </xs:documentation>
     2344                                        <xs:documentation xml:lang="en-us"> This is required for tools that execute; it
     2345                                            should not be used for configuration files. </xs:documentation>
    24472346                                    </xs:annotation>
    24482347                                </xs:attribute>
    2449                                 <xs:attribute name="Executable" type="xs:boolean" default="false"
    2450                                     use="optional">
     2348                                <xs:attribute name="Executable" type="xs:boolean" default="false" use="optional">
    24512349                                    <xs:annotation>
    2452                                         <xs:documentation xml:lang="en-us"> If true, used by
    2453                                             installation tools to ensure that a file that must be
    2454                                             executable has the correct properties to permit
    2455                                             execution. </xs:documentation>
     2350                                        <xs:documentation xml:lang="en-us"> If true, used by installation tools to
     2351                                            ensure that a file that must be executable has the correct properties to
     2352                                            permit execution. </xs:documentation>
    24562353                                    </xs:annotation>
    24572354                                </xs:attribute>
     
    24672364    <xs:element name="MiscellaneousFiles">
    24682365        <xs:annotation>
    2469             <xs:documentation xml:lang="en-us"> This section contains a list of files that are not
    2470                 part of the code distributed with modules, packages or tools. </xs:documentation>
     2366            <xs:documentation xml:lang="en-us"> This section contains a list of files that are not part of the code
     2367                distributed with modules, packages or tools. </xs:documentation>
    24712368        </xs:annotation>
    24722369        <xs:complexType>
     
    24752372                    <xs:complexType>
    24762373                        <xs:sequence>
    2477                             <xs:element minOccurs="0" maxOccurs="1" name="Name"
    2478                                 type="xs:normalizedString">
    2479                                 <xs:annotation>
    2480                                     <xs:documentation xml:lang="en-us"> The User interface name for
    2481                                         this content. </xs:documentation>
    2482                                 </xs:annotation>
    2483                             </xs:element>
    2484                             <xs:element minOccurs="0" maxOccurs="1" name="Copyright"
    2485                                 type="xs:string">
    2486                                 <xs:annotation>
    2487                                     <xs:documentation xml:lang="en-us"> This is only required if the
    2488                                         Copyright is different from the Distribution Package
    2489                                         Copyright. </xs:documentation>
     2374                            <xs:element minOccurs="0" maxOccurs="1" name="Name" type="xs:normalizedString">
     2375                                <xs:annotation>
     2376                                    <xs:documentation xml:lang="en-us"> The User interface name for this content.
     2377                                    </xs:documentation>
     2378                                </xs:annotation>
     2379                            </xs:element>
     2380                            <xs:element minOccurs="0" maxOccurs="1" name="Copyright" type="xs:string">
     2381                                <xs:annotation>
     2382                                    <xs:documentation xml:lang="en-us"> This is only required if the Copyright is
     2383                                        different from the Distribution Package Copyright. </xs:documentation>
    24902384                                </xs:annotation>
    24912385                            </xs:element>
    24922386                            <xs:element minOccurs="0" maxOccurs="1" name="License" type="xs:string">
    24932387                                <xs:annotation>
    2494                                     <xs:documentation xml:lang="en-us"> This is only required if the
    2495                                         License is different from the Distribution Package License.
    2496                                     </xs:documentation>
    2497                                 </xs:annotation>
    2498                             </xs:element>
    2499                             <xs:element minOccurs="0" maxOccurs="1" name="Abstract"
    2500                                 type="xs:normalizedString"/>
     2388                                    <xs:documentation xml:lang="en-us"> This is only required if the License is
     2389                                        different from the Distribution Package License. </xs:documentation>
     2390                                </xs:annotation>
     2391                            </xs:element>
     2392                            <xs:element minOccurs="0" maxOccurs="1" name="Abstract" type="xs:normalizedString"/>
    25012393                            <xs:element minOccurs="0" maxOccurs="unbounded" name="Description">
    25022394                                <xs:complexType>
    25032395                                    <xs:simpleContent>
    25042396                                        <xs:extension base="xs:string">
    2505                                             <xs:attribute name="Lang" type="xs:language"
    2506                                                 default="en-us" use="optional"/>
     2397                                            <xs:attribute name="Lang" type="xs:language" default="en-us" use="optional"
     2398                                            />
    25072399                                        </xs:extension>
    25082400                                    </xs:simpleContent>
     
    25142406                <xs:element minOccurs="0" maxOccurs="unbounded" name="Filename">
    25152407                    <xs:annotation>
    2516                         <xs:documentation xml:lang="en-us"> This is the path and filename location
    2517                             within the ZIP file. </xs:documentation>
     2408                        <xs:documentation xml:lang="en-us"> This is the path and filename location within the ZIP file.
     2409                        </xs:documentation>
    25182410                    </xs:annotation>
    25192411                    <xs:complexType>
    25202412                        <xs:simpleContent>
    25212413                            <xs:extension base="xs:anyURI">
    2522                                 <xs:attribute name="Executable" type="xs:boolean" default="false"
    2523                                     use="optional">
     2414                                <xs:attribute name="Executable" type="xs:boolean" default="false" use="optional">
    25242415                                    <xs:annotation>
    2525                                         <xs:documentation xml:lang="en-us"> If true, used by
    2526                                             installation tools to ensure that a file that must be
    2527                                             executable has the correct properties to permit
    2528                                             execution. </xs:documentation>
     2416                                        <xs:documentation xml:lang="en-us"> If true, used by installation tools to
     2417                                            ensure that a file that must be executable has the correct properties to
     2418                                            permit execution. </xs:documentation>
    25292419                                    </xs:annotation>
    25302420                                </xs:attribute>
     
    25452435            <xs:attribute name="UserId" type="xs:NCName" use="required">
    25462436                <xs:annotation>
    2547                     <xs:documentation xml:lang="en-us"> This is a single word identifier for
    2548                         grouping similar content. For example, ReferenceBuild might be used to
    2549                         identify non-PI compliant build steps, with two different UserExtensions
    2550                         sections, one with an Identifier of Prebuild, and another of PostBuild. Both
    2551                         UserExtensions sections would use the same UserId. </xs:documentation>
     2437                    <xs:documentation xml:lang="en-us"> This is a single word identifier for grouping similar content.
     2438                        For example, ReferenceBuild might be used to identify non-PI compliant build steps, with two
     2439                        different UserExtensions sections, one with an Identifier of Prebuild, and another of PostBuild.
     2440                        Both UserExtensions sections would use the same UserId. </xs:documentation>
    25522441                </xs:annotation>
    25532442            </xs:attribute>
    25542443            <xs:attribute name="Identifier" type="xs:string" use="optional">
    25552444                <xs:annotation>
    2556                     <xs:documentation xml:lang="en-us"> This can be any string used to differentiate
    2557                         or identify this section from other UserExtensions sections. </xs:documentation>
    2558                     <xs:documentation xml:lang="en-us"> For example, a PRE_PROCESS Identifier might
    2559                         indicate specific steps and tools required before processing distribution
    2560                         package content, while a different UserExtensions section with a
    2561                         POST_PROCESS Identifier might describe steps that need to be executed after
    2562                         operations on this content. </xs:documentation>
     2445                    <xs:documentation xml:lang="en-us"> This can be any string used to differentiate or identify this
     2446                        section from other UserExtensions sections. </xs:documentation>
     2447                    <xs:documentation xml:lang="en-us"> For example, a PRE_PROCESS Identifier might indicate specific
     2448                        steps and tools required before processing distribution package content, while a different
     2449                        UserExtensions section with a POST_PROCESS Identifier might describe steps that need to be
     2450                        executed after operations on this content. </xs:documentation>
    25632451                </xs:annotation>
    25642452            </xs:attribute>
     
    25972485            <xs:enumeration value="IPF"/>
    25982486            <xs:enumeration value="EBC"/>
     2487            <xs:enumeration value="ARM"/>
    25992488            <xs:pattern value="([A-Z])([a-zA-Z0-9])*">
    26002489                <xs:annotation>
    2601                     <xs:documentation xml:lang="en-us"> Any processor architecture not listed above.
    2602                         The Architecture must be a target architecture of one or more compiler tool
    2603                         chains. </xs:documentation>
     2490                    <xs:documentation xml:lang="en-us"> Any processor architecture not listed above. The Architecture
     2491                        must be a target architecture of one or more compiler tool chains. </xs:documentation>
    26042492                </xs:annotation>
    26052493            </xs:pattern>
     
    26142502            <xs:pattern value="[A-Z][a-zA-Z0-9]*">
    26152503                <xs:annotation>
    2616                     <xs:documentation xml:lang="en-us"> Any other family of build utilities for
    2617                         which compiler tools exist. </xs:documentation>
     2504                    <xs:documentation xml:lang="en-us"> Any other family of build utilities for which compiler tools
     2505                        exist. </xs:documentation>
    26182506                </xs:annotation>
    26192507            </xs:pattern>
     
    26312519            <xs:enumeration value="FV"/>
    26322520            <xs:enumeration value="GUID"/>
     2521            <xs:enumeration value="HII"/>
    26332522            <xs:enumeration value="Hii"/>
    26342523            <xs:enumeration value="HOB"/>
     
    26582547    <xs:simpleType name="ModuleTypes">
    26592548        <xs:annotation>
    2660             <xs:documentation xml:lang="en-us"> The following module types are defined by
    2661                 specifications. </xs:documentation>
    2662             <xs:documentation xml:lang="en-us"> Module types for components and libraries defined
    2663                 for this distribution mechanism. </xs:documentation>
     2549            <xs:documentation xml:lang="en-us"> The following module types are defined by specifications. </xs:documentation>
     2550            <xs:documentation xml:lang="en-us"> Module types for components and libraries defined for this distribution
     2551                mechanism. </xs:documentation>
    26642552        </xs:annotation>
    26652553        <xs:restriction base="xs:NCName">
    26662554            <xs:enumeration value="BASE ">
    26672555                <xs:annotation>
    2668                     <xs:documentation xml:lang="en-us"> Use of this module is not restricted.
    2669                     </xs:documentation>
     2556                    <xs:documentation xml:lang="en-us"> Use of this module is not restricted. </xs:documentation>
    26702557                </xs:annotation>
    26712558            </xs:enumeration>
    26722559            <xs:enumeration value="DXE_CORE">
    26732560                <xs:annotation>
    2674                     <xs:documentation xml:lang="en-us"> This module is only applicable to the DXE
    2675                         core. </xs:documentation>
     2561                    <xs:documentation xml:lang="en-us"> This module is only applicable to the DXE core.
     2562                    </xs:documentation>
    26762563                </xs:annotation>
    26772564            </xs:enumeration>
    26782565            <xs:enumeration value="DXE_DRIVER">
    26792566                <xs:annotation>
    2680                     <xs:documentation xml:lang="en-us"> This module is only applicable to a DXE
    2681                         driver. </xs:documentation>
     2567                    <xs:documentation xml:lang="en-us"> This module is only applicable to a DXE driver.
     2568                    </xs:documentation>
    26822569                </xs:annotation>
    26832570            </xs:enumeration>
    26842571            <xs:enumeration value="DXE_RUNTIME_DRIVER">
    26852572                <xs:annotation>
    2686                     <xs:documentation xml:lang="en-us"> This module is only applicable to a DXE
    2687                         runtime driver. </xs:documentation>
     2573                    <xs:documentation xml:lang="en-us"> This module is only applicable to a DXE runtime driver.
     2574                    </xs:documentation>
    26882575                </xs:annotation>
    26892576            </xs:enumeration>
    26902577            <xs:enumeration value="DXE_SAL_DRIVER">
    26912578                <xs:annotation>
    2692                     <xs:documentation xml:lang="en-us"> This module is only applicable to an IPF DXE
    2693                         runtime driver. </xs:documentation>
     2579                    <xs:documentation xml:lang="en-us"> This module is only applicable to an IPF DXE runtime driver.
     2580                    </xs:documentation>
    26942581                </xs:annotation>
    26952582            </xs:enumeration>
    26962583            <xs:enumeration value="DXE_SMM_DRIVER">
    26972584                <xs:annotation>
    2698                     <xs:documentation xml:lang="en-us"> This module is only applicable to a DXE SMM
    2699                         driver. </xs:documentation>
     2585                    <xs:documentation xml:lang="en-us"> This module is only applicable to a DXE SMM driver.
     2586                    </xs:documentation>
    27002587                </xs:annotation>
    27012588            </xs:enumeration>
    27022589            <xs:enumeration value="PEI_CORE">
    27032590                <xs:annotation>
    2704                     <xs:documentation xml:lang="en-us"> This module is only applicable to the PEI
    2705                         core. </xs:documentation>
     2591                    <xs:documentation xml:lang="en-us"> This module is only applicable to the PEI core.
     2592                    </xs:documentation>
    27062593                </xs:annotation>
    27072594            </xs:enumeration>
    27082595            <xs:enumeration value="PEIM">
    27092596                <xs:annotation>
    2710                     <xs:documentation xml:lang="en-us"> This module is only valid for PEI modules.
    2711                     </xs:documentation>
     2597                    <xs:documentation xml:lang="en-us"> This module is only valid for PEI modules. </xs:documentation>
    27122598                </xs:annotation>
    27132599            </xs:enumeration>
    27142600            <xs:enumeration value="SEC">
    27152601                <xs:annotation>
    2716                     <xs:documentation xml:lang="en-us"> This module is only applicable to Security
    2717                         phase. </xs:documentation>
     2602                    <xs:documentation xml:lang="en-us"> This module is only applicable to Security phase.
     2603                    </xs:documentation>
    27182604                </xs:annotation>
    27192605            </xs:enumeration>
    27202606            <xs:enumeration value="UEFI_DRIVER">
    27212607                <xs:annotation>
    2722                     <xs:documentation xml:lang="en-us"> This module is only valid for UEFI drivers.
    2723                     </xs:documentation>
     2608                    <xs:documentation xml:lang="en-us"> This module is only valid for UEFI drivers. </xs:documentation>
    27242609                </xs:annotation>
    27252610            </xs:enumeration>
     
    27322617            <xs:enumeration value="UEFI_APPLICATION">
    27332618                <xs:annotation>
    2734                     <xs:documentation xml:lang="en-us"> This module is only valid for UEFI
    2735                         applications. </xs:documentation>
     2619                    <xs:documentation xml:lang="en-us"> This module is only valid for UEFI applications.
     2620                    </xs:documentation>
    27362621                </xs:annotation>
    27372622            </xs:enumeration>
     
    27442629            <xs:enumeration value="USER_DEFINED">
    27452630                <xs:annotation>
    2746                     <xs:documentation xml:lang="en-us"> This content is restricted to a specific
    2747                         implementation. </xs:documentation>
     2631                    <xs:documentation xml:lang="en-us"> This content is restricted to a specific implementation.
     2632                    </xs:documentation>
    27482633                </xs:annotation>
    27492634            </xs:enumeration>
    27502635            <xs:enumeration value="UNDEFINED">
    27512636                <xs:annotation>
    2752                     <xs:documentation xml:lang="en-us"> This enumeration is for use in a list that
    2753                         where the package creator does not know the what module types are supported
    2754                         by a module. </xs:documentation>
     2637                    <xs:documentation xml:lang="en-us"> This enumeration is for use in a list that where the package
     2638                        creator does not know the what module types are supported by a module. </xs:documentation>
    27552639                </xs:annotation>
    27562640            </xs:enumeration>
    27572641            <xs:pattern value="([A-Z])([a-zA-Z0-9])*">
    27582642                <xs:annotation>
    2759                     <xs:documentation xml:lang="en-us"> This pattern has been added for use in a
    2760                         module lists - for future expansion. </xs:documentation>
     2643                    <xs:documentation xml:lang="en-us"> This pattern has been added for use in a module lists - for
     2644                        future expansion. </xs:documentation>
    27612645                </xs:annotation>
    27622646            </xs:pattern>
     
    27662650    <xs:simpleType name="PcdDatumTypes">
    27672651        <xs:annotation>
    2768             <xs:documentation xml:lang="en-us"> The following data types are defined by the PCD
    2769                 specification (or PCD section of the UEFI/PI specifications.) </xs:documentation>
     2652            <xs:documentation xml:lang="en-us"> The following data types are defined by the PCD specification (or PCD
     2653                section of the UEFI/PI specifications.) </xs:documentation>
    27702654        </xs:annotation>
    27712655        <xs:restriction base="xs:normalizedString">
     
    27872671            <xs:enumeration value="FeaturePcd">
    27882672                <xs:annotation>
    2789                     <xs:documentation xml:lang="en-us"> The Feature PCD is a binary, evaluating to
    2790                         either true or false. This is used during build to include/exclude content.
    2791                         It can also be used during execution to force execution paths within
    2792                         drivers, or to enable/disable features within a driver for a given platform.
    2793                     </xs:documentation>
     2673                    <xs:documentation xml:lang="en-us"> The Feature PCD is a binary, evaluating to either true or false.
     2674                        This is used during build to include/exclude content. It can also be used during execution to
     2675                        force execution paths within drivers, or to enable/disable features within a driver for a given
     2676                        platform. </xs:documentation>
    27942677                </xs:annotation>
    27952678            </xs:enumeration>
    27962679            <xs:enumeration value="FixedPcd">
    27972680                <xs:annotation>
    2798                     <xs:documentation xml:lang="en-us"> The Fixed PCD is a #define value that is set
    2799                         at build time. </xs:documentation>
     2681                    <xs:documentation xml:lang="en-us"> The Fixed PCD is a #define value that is set at build time.
     2682                    </xs:documentation>
    28002683                </xs:annotation>
    28012684            </xs:enumeration>
    28022685            <xs:enumeration value="PatchPcd">
    28032686                <xs:annotation>
    2804                     <xs:documentation xml:lang="en-us"> The Patch PCD is a #define that is set at
    2805                         build time, and that can be modified within a binary file. Additional
    2806                         information, such as the offset location of the value, along with it's
    2807                         length may need to be provided.</xs:documentation>
     2687                    <xs:documentation xml:lang="en-us"> The Patch PCD is a #define that is set at build time, and that
     2688                        can be modified within a binary file. Additional information, such as the offset location of the
     2689                        value, along with it's length may need to be provided.</xs:documentation>
    28082690                </xs:annotation>
    28092691            </xs:enumeration>
    28102692            <xs:enumeration value="Pcd">
    28112693                <xs:annotation>
    2812                     <xs:documentation xml:lang="en-us"> This PCD type has an overloaded definition.
    2813                         Prior to build, the platform integrator may choose to implement a PCD as
    2814                         Fixed, Patchable or a Dynamic PCD. If the platform integrator choose to use
    2815                         the PCD as dynamic, then a PCD driver is required in the platform
    2816                         (PEI/DXE/both) to track the PCD in some sort of 'database' of these items.
    2817                         For Dynamic PCDs, the PcdGet* must pass in the token space guid and the
    2818                         token number to retrieve data (PcdSet* also needs these values.)
    2819                     </xs:documentation>
     2694                    <xs:documentation xml:lang="en-us"> This PCD type has an overloaded definition. Prior to build, the
     2695                        platform integrator may choose to implement a PCD as Fixed, Patchable or a Dynamic PCD. If the
     2696                        platform integrator choose to use the PCD as dynamic, then a PCD driver is required in the
     2697                        platform (PEI/DXE/both) to track the PCD in some sort of 'database' of these items. For Dynamic
     2698                        PCDs, the PcdGet* must pass in the token space guid and the token number to retrieve data
     2699                        (PcdSet* also needs these values.) </xs:documentation>
    28202700                </xs:annotation>
    28212701            </xs:enumeration>
    28222702            <xs:enumeration value="PcdEx">
    28232703                <xs:annotation>
    2824                     <xs:documentation xml:lang="en-us"> The PCD can only be used as Dynamic, and the
    2825                         platform firmware must contain a driver to maintain a 'database' of these
    2826                         items. For Dynamic PCDs, the PcdGet* must pass in the token space guid and
    2827                         the token number to retrieve data (PcdSet* also needs these values.)
    2828                     </xs:documentation>
     2704                    <xs:documentation xml:lang="en-us"> The PCD can only be used as Dynamic, and the platform firmware
     2705                        must contain a driver to maintain a 'database' of these items. For Dynamic PCDs, the PcdGet*
     2706                        must pass in the token space guid and the token number to retrieve data (PcdSet* also needs
     2707                        these values.) </xs:documentation>
    28292708                </xs:annotation>
    28302709            </xs:enumeration>
     
    28322711    </xs:simpleType>
    28332712
    2834 
    2835 
    28362713    <xs:simpleType name="RegistryFormatGuid">
    28372714        <xs:annotation>
    2838             <xs:documentation xml:lang="en-us"> A GUID must contain five different Hexadecimal
    2839                 character sets that are separated by a dash (-) character. </xs:documentation>
     2715            <xs:documentation xml:lang="en-us"> A GUID must contain five different Hexadecimal character sets that are
     2716                separated by a dash (-) character. </xs:documentation>
    28402717        </xs:annotation>
    28412718        <xs:restriction base="xs:string">
    2842             <xs:pattern
    2843                 value="\s*[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}\s*"
    2844             />
     2719            <xs:pattern value="\s*[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}\s*"/>
    28452720        </xs:restriction>
    28462721    </xs:simpleType>
     
    28482723    <xs:simpleType name="SupportedOs">
    28492724        <xs:annotation>
    2850             <xs:documentation xml:lang="en-us"> The EDK II build system supports workstations
    2851                 running one of the following supported operating systems. This is the OS for the
    2852                 developer's workstation, not the target platform. </xs:documentation>
     2725            <xs:documentation xml:lang="en-us"> The EDK II build system supports workstations running one of the
     2726                following supported operating systems. This is the OS for the developer's workstation, not the target
     2727                platform. </xs:documentation>
    28532728        </xs:annotation>
    28542729        <xs:restriction base="xs:string">
    28552730            <xs:enumeration value="Win32">
    28562731                <xs:annotation>
    2857                     <xs:documentation xml:lang="en-us"> For Windows 2003, Windows XP and Windows
    2858                         Vista. </xs:documentation>
     2732                    <xs:documentation xml:lang="en-us"> For Windows 2003, Windows XP and Windows Vista.
     2733                    </xs:documentation>
    28592734                </xs:annotation>
    28602735            </xs:enumeration>
    28612736            <xs:enumeration value="Win64">
    28622737                <xs:annotation>
    2863                     <xs:documentation xml:lang="en-us"> For Windows 2003, Windows XP and Windows
    2864                         Vista. </xs:documentation>
     2738                    <xs:documentation xml:lang="en-us"> For Windows 2003, Windows XP and Windows Vista.
     2739                    </xs:documentation>
    28652740                </xs:annotation>
    28662741            </xs:enumeration>
     2742            <xs:enumeration value="RedHat32"/>
     2743            <xs:enumeration value="RedHat64"/>
     2744            <xs:enumeration value="SuSE32"/>
     2745            <xs:enumeration value="SuSE64"/>
    28672746            <xs:enumeration value="Linux32"/>
    28682747            <xs:enumeration value="Linux64"/>
    28692748            <xs:enumeration value="OS/X32"/>
    28702749            <xs:enumeration value="OS/X64"/>
     2750            <xs:enumeration value="Generic"/>
    28712751            <xs:enumeration value="GenericWin">
    28722752                <xs:annotation>
    2873                     <xs:documentation xml:lang="en-us"> Typically, this is used for Windows Batch
    2874                         files. </xs:documentation>
     2753                    <xs:documentation xml:lang="en-us"> Typically, this is used for Windows Batch files.
     2754                    </xs:documentation>
    28752755                </xs:annotation>
    28762756            </xs:enumeration>
    28772757            <xs:enumeration value="GenericNix">
    28782758                <xs:annotation>
    2879                     <xs:documentation xml:lang="en-us"> Typically use for shell scripts - valid for
    2880                         any Linux and Mac OS/X. </xs:documentation>
     2759                    <xs:documentation xml:lang="en-us"> Typically use for shell scripts - valid for any Linux and Mac
     2760                        OS/X. </xs:documentation>
    28812761                </xs:annotation>
    28822762            </xs:enumeration>
  • trunk/src/VBox/Devices/EFI/Firmware/BaseTools/Conf/build_rule.template

    r48674 r58459  
    11#
    2 #  Copyright (c) 2007 - 2011, Intel Corporation. All rights reserved.<BR>
     2#  Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.<BR>
    33#  Portions copyright (c) 2008 - 2010, Apple Inc. All rights reserved.<BR>
    44#  This program and the accompanying materials
     
    132132        # For RVCTCYGWIN CC_FLAGS must be first to work around pathing issues
    133133        "$(CC)" $(CC_FLAGS) -o ${dst} $(INC) ${src}
     134
     135    <Command.ARMGCC, Command.ARMLINUXGCC, command.XCODE>
     136        "$(CC)" $(CC_FLAGS) -o ${dst} $(INC) ${src}
     137
     138[C-Code-File.COMMON.IPF]
     139    <InputFile>
     140        ?.c
     141        ?.C
     142        ?.cc
     143        ?.CC
     144        ?.cpp
     145        ?.Cpp
     146        ?.CPP
     147
     148    <ExtraDependency>
     149        $(MAKE_FILE)
     150
     151    <OutputFile>
     152        $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj
     153
     154    <Command.MSFT, Command.INTEL>
     155        "$(CC)" /Fo${dst} $(CC_FLAGS) $(INC) ${src}
     156
     157    <Command.GCC, Command.RVCT>
     158        # For RVCTCYGWIN CC_FLAGS must be first to work around pathing issues
     159        "$(CC)" $(CC_FLAGS) -o ${dst} $(INC) ${src}
    134160        "$(SYMRENAME)" $(SYMRENAME_FLAGS) ${dst}
    135 
    136     <Command.ARMGCC, Command.ARMLINUXGCC>
    137         "$(CC)" $(CC_FLAGS) -o ${dst} $(INC) ${src}
    138 
    139161
    140162[C-Header-File]
     
    167189    <Command.GCC, Command.RVCT>
    168190        "$(PP)" $(PP_FLAGS) $(INC) ${src} > ${d_path}(+)${s_base}.i
    169         Trim --source-code -o ${d_path}(+)${s_base}.iii ${d_path}(+)${s_base}.i
     191        Trim --trim-long --source-code -o ${d_path}(+)${s_base}.iii ${d_path}(+)${s_base}.i
    170192        # For RVCTCYGWIN ASM_FLAGS must be first to work around pathing issues
    171193        "$(ASM)" $(ASM_FLAGS) -o ${dst} $(INC) ${d_path}(+)${s_base}.iii
     194
     195[Nasm-Assembly-Code-File.COMMON.COMMON]
     196    <InputFile>
     197        ?.nasm, ?.Nasm, ?.NASM
     198
     199    <ExtraDependency>
     200        $(MAKE_FILE)
     201
     202    <OutputFile>
     203        $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj
     204
     205    <Command>
     206        "$(PP)" $(PP_FLAGS) $(INC) ${src} > ${d_path}(+)${s_base}.i
     207        Trim --trim-long --source-code -o ${d_path}(+)${s_base}.iii ${d_path}(+)${s_base}.i
     208        "$(NASM)" -I${s_path}(+) $(NASM_FLAGS) -o $dst ${d_path}(+)${s_base}.iii
    172209
    173210[Assembly-Code-File.COMMON.IPF]
     
    241278
    242279    <Command.GCC>
    243         "$(DLINK)" -o ${dst} $(DLINK_FLAGS) -\( $(DLINK_SPATH) @$(STATIC_LIBRARY_FILES_LIST) -\) $(DLINK2_FLAGS)
     280        "$(DLINK)" -o ${dst} $(DLINK_FLAGS) --start-group $(DLINK_SPATH) @$(STATIC_LIBRARY_FILES_LIST) --end-group $(DLINK2_FLAGS)
    244281        "$(OBJCOPY)" $(OBJCOPY_FLAGS) ${dst}
    245282
    246283    <Command.ARMGCC, Command.ARMLINUXGCC>
    247         "$(DLINK)" -o ${dst} $(DLINK_FLAGS) -\( $(DLINK_SPATH) $(STATIC_LIBRARY_FILES) -\) $(DLINK2_FLAGS)
     284        "$(DLINK)" -o ${dst} $(DLINK_FLAGS) --start-group $(DLINK_SPATH) $(STATIC_LIBRARY_FILES) --end-group $(DLINK2_FLAGS)
    248285
    249286    <Command.RVCT>
     
    272309
    273310    <Command.GCC>
    274         "$(DLINK)" $(DLINK_FLAGS) -\( $(DLINK_SPATH) @$(STATIC_LIBRARY_FILES_LIST) -\) $(DLINK2_FLAGS)
     311        "$(DLINK)" $(DLINK_FLAGS) --start-group $(DLINK_SPATH) @$(STATIC_LIBRARY_FILES_LIST) --end-group $(DLINK2_FLAGS)
    275312
    276313    <Command.ARMGCC, Command.ARMLINUXGCC>
    277         "$(DLINK)" $(DLINK_FLAGS) -\( $(DLINK_SPATH) $(STATIC_LIBRARY_FILES) -\) $(DLINK2_FLAGS)
     314        "$(DLINK)" $(DLINK_FLAGS) --start-group $(DLINK_SPATH) $(STATIC_LIBRARY_FILES) --end-group $(DLINK2_FLAGS)
    278315
    279316    <Command.RVCT>
     
    300337        $(CP) ${dst} $(BIN_DIR)
    301338        -$(CP) $(DEBUG_DIR)(+)*.map $(OUTPUT_DIR)
    302 
    303     <Command.GCC>
    304         $(OBJCOPY) --only-keep-debug ${src} $(DEBUG_DIR)(+)$(MODULE_NAME).debug
    305         $(OBJCOPY) --strip-unneeded ${src}
     339        -$(CP) $(DEBUG_DIR)(+)*.pdb $(OUTPUT_DIR)
     340    <Command.GCC>
     341        $(CP) ${src} $(DEBUG_DIR)(+)$(MODULE_NAME).debug
     342        $(OBJCOPY) --strip-unneeded -R .eh_frame ${src}
    306343
    307344        #
     
    360397        Trim --asl-file -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.i -i $(INC_LIST) ${src}
    361398        "$(ASLPP)" $(ASLPP_FLAGS) $(INC) -I${s_path} $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.i > $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iii
    362         "$(ASL)" $(ASL_FLAGS) $(ASL_OUTFLAGS)${dst} $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iii
     399        Trim --source-code -l -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iiii $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iii
     400        "$(ASL)" $(ASL_FLAGS) $(ASL_OUTFLAGS)${dst} $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.iiii
    363401
    364402[C-Code-File.AcpiTable]
     
    411449[Masm16-Code-File]
    412450    <InputFile>
    413         ?.asm16, ?.Asm16, ?.ASM16
     451        ?.asm16, ?.Asm16, ?.ASM16, ?.s16, ?.S16
    414452
    415453    <ExtraDependency>
     
    430468      Trim --source-code -o ${d_path}(+)${s_base}.iii ${d_path}(+)${s_base}.i
    431469      "$(ASM)" -o $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj $(ASM_FLAGS) $(INC) ${d_path}(+)${s_base}.iii
    432       "$(DLINK)" -o ${dst} $(DLINK_FLAGS) -\( $(DLINK_SPATH) $(LIBS) $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj -\)
     470      "$(DLINK)" -o ${dst} $(DLINK_FLAGS) --start-group $(DLINK_SPATH) $(LIBS) $(OUTPUT_DIR)(+)${s_dir}(+)${s_base}.obj --end-group
    433471     
    434472    <Command.XCODE>
     
    440478     
    441479
     480[Nasm-to-Binary-Code-File]
     481    <InputFile>
     482        ?.nasmb, ?.NASMB
     483
     484    <ExtraDependency>
     485        $(MAKE_FILE)
     486
     487    <OutputFile>
     488        $(OUTPUT_DIR)(+)${s_base}.bin
     489
     490    <Command>
     491        "$(PP)" $(PP_FLAGS) $(INC) ${src} > ${d_path}(+)${s_base}.i
     492        Trim --source-code --convert-hex -o ${d_path}(+)${s_base}.iii ${d_path}(+)${s_base}.i
     493        "$(NASM)" -I${s_path}(+) -l ${d_path}(+)${s_base}.lst $(NASMB_FLAGS) -o $dst ${d_path}(+)${s_base}.iii
     494
     495
    442496[Microcode-File.USER_DEFINED, Microcode-File.Microcode]
    443497    <InputFile>
  • trunk/src/VBox/Devices/EFI/Firmware/BaseTools/Conf/target.template

    r48674 r58459  
    3535
    3636#  TARGET_ARCH           List       Optional    What kind of architecture is the binary being target for.
    37 #                                               One, or more, of the following, IA32, IPF, X64, EBC or ARM.
     37#                                               One, or more, of the following, IA32, IPF, X64, EBC, ARM
     38#                                               or AArch64.
    3839#                                               Multiple values can be specified on a single line, using
    3940#                                               space charaters to separate the values.  These are used
  • trunk/src/VBox/Devices/EFI/Firmware/BaseTools/Conf/tools_def.template

    r48674 r58459  
    11#
    2 #  Copyright (c) 2006 - 2012, Intel Corporation. All rights reserved.<BR>
     2#  Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>
    33#  Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
     4#  Portions copyright (c) 2011 - 2014, ARM Ltd. All rights reserved.<BR>
    45#
    56#  This program and the accompanying materials
     
    4849DEFINE VS2010x86_BIN64  = DEF(VS2010x86_BIN)\x86_ia64
    4950
     51DEFINE VS2012_BIN      = C:\Program Files\Microsoft Visual Studio 11.0\Vc\bin
     52DEFINE VS2012_DLL      = C:\Program Files\Microsoft Visual Studio 11.0\Common7\IDE;DEF(VS2012_BIN)
     53DEFINE VS2012_BINX64   = DEF(VS2012_BIN)\x86_amd64
     54
     55DEFINE VS2012x86_BIN    = C:\Program Files (x86)\Microsoft Visual Studio 11.0\Vc\bin
     56DEFINE VS2012x86_DLL    = C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE;DEF(VS2012x86_BIN)
     57DEFINE VS2012x86_BINX64 = DEF(VS2012x86_BIN)\x86_amd64
     58
     59DEFINE VS2013_BIN      = C:\Program Files\Microsoft Visual Studio 12.0\Vc\bin
     60DEFINE VS2013_DLL      = C:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE;DEF(VS2012_BIN)
     61DEFINE VS2013_BINX64   = DEF(VS2013_BIN)\x86_amd64
     62
     63DEFINE VS2013x86_BIN    = C:\Program Files (x86)\Microsoft Visual Studio 12.0\Vc\bin
     64DEFINE VS2013x86_DLL    = C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE;DEF(VS2013x86_BIN)
     65DEFINE VS2013x86_BINX64 = DEF(VS2013x86_BIN)\x86_amd64
     66
    5067DEFINE WINSDK_VERSION   = v6.0A
    5168DEFINE WINSDK_BIN       = c:\Program Files\Microsoft SDKs\Windows\DEF(WINSDK_VERSION)\bin
    5269DEFINE WINSDKx86_BIN    = c:\Program Files (x86)\Microsoft SDKs\Windows\DEF(WINSDK_VERSION)\bin
     70
     71# Microsoft Visual Studio 2010
     72DEFINE WINSDK7_BIN       = c:\Program Files\Microsoft SDKs\Windows\v7.0A\Bin
     73DEFINE WINSDK7x86_BIN    = c:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin
     74
     75# Microsoft Visual Studio 2012 Update 1 (required for rc.exe that was not included in the initial release)
     76DEFINE WINSDK71_BIN       = c:\Program Files\Microsoft SDKs\Windows\v7.1A\Bin
     77DEFINE WINSDK71x86_BIN    = c:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Bin
     78
     79# Microsoft Visual Studio 2013 Professional Edition
     80DEFINE WINSDK8_BIN       = c:\Program Files\Windows Kits\8.0\bin\x86\
     81DEFINE WINSDK8x86_BIN    = c:\Program Files (x86)\Windows Kits\8.0\bin\x64
    5382
    5483# These defines are needed for certain Microsoft Visual Studio tools that
     
    137166DEFINE CYGWIN_BINIPF           = c:/cygwin/opt/tiano/gcc/ipf/bin/ia64-pc-elf-
    138167
    139 DEFINE GCC44_IA32_PREFIX       = /usr/bin/
    140 #DEFINE GCC44_IA32_PREFIX       = ENV(HOME)/programs/gcc/4.4/ia32/
    141 DEFINE GCC44_X64_PREFIX        = /usr/bin/
    142 #DEFINE GCC44_X64_PREFIX       = ENV(HOME)/programs/gcc/4.4/x64/
    143 
    144 DEFINE GCC45_IA32_PREFIX       = /usr/bin/
    145 DEFINE GCC45_X64_PREFIX        = /usr/bin/
    146 
    147 DEFINE GCC46_IA32_PREFIX       = /usr/bin/
    148 DEFINE GCC46_X64_PREFIX        = /usr/bin/
    149 
    150 DEFINE UNIX_IASL_BIN           = /usr/bin/iasl
    151 #DEFINE UNIX_IASL_BIN           = $(HOME)/programs/iasl
     168DEFINE GCC44_IA32_PREFIX       = ENV(GCC44_BIN)
     169DEFINE GCC44_X64_PREFIX        = ENV(GCC44_BIN)
     170
     171DEFINE GCC45_IA32_PREFIX       = ENV(GCC45_BIN)
     172DEFINE GCC45_X64_PREFIX        = ENV(GCC45_BIN)
     173
     174DEFINE GCC46_IA32_PREFIX       = ENV(GCC46_BIN)
     175DEFINE GCC46_X64_PREFIX        = ENV(GCC46_BIN)
     176
     177DEFINE GCC47_IA32_PREFIX       = ENV(GCC47_BIN)
     178DEFINE GCC47_X64_PREFIX        = ENV(GCC47_BIN)
     179
     180DEFINE GCC48_IA32_PREFIX       = ENV(GCC48_BIN)
     181DEFINE GCC48_X64_PREFIX        = ENV(GCC48_BIN)
     182
     183DEFINE GCC49_IA32_PREFIX       = ENV(GCC49_BIN)
     184DEFINE GCC49_X64_PREFIX        = ENV(GCC49_BIN)
     185
     186DEFINE UNIX_IASL_BIN           = ENV(IASL_PREFIX)iasl
    152187DEFINE WIN_ASL_BIN_DIR         = C:\ASL
    153188DEFINE WIN_IASL_BIN            = DEF(WIN_ASL_BIN_DIR)\iasl.exe
     
    177212
    178213DEFINE SOURCERY_CYGWIN_TOOLS = /cygdrive/c/Program Files/CodeSourcery/Sourcery G++ Lite/bin
    179 
    180 #
    181 # Change to the location clang was built
    182 #
    183 DEFINE CLANG_BIN = /usr/bin/
    184214
    185215####################################################################################
     
    245275#                               Intel(r) ACPI Compiler (iasl.exe) v20101013 from
    246276#                               http://www.acpica.org/downloads/previous_releases.php
     277#   VS2012      -win32-  Requires:
     278#                             Microsoft Visual Studio 2012 Professional Edition
     279#                             Microsoft Windows Server 2003 Driver Development Kit (Microsoft WINDDK) version 3790.1830
     280#                        Optional:
     281#                             Required to build EBC drivers:
     282#                               Intel(r) Compiler for Efi Byte Code (Intel(r) EBC Compiler)
     283#                             Required to build platforms or ACPI tables:
     284#                               Intel(r) ACPI Compiler (iasl.exe) v20101013 from
     285#                               http://www.acpica.org/downloads/previous_releases.php
     286#   VS2013      -win32-  Requires:
     287#                             Microsoft Visual Studio 2013 Professional Edition
     288#                             Microsoft Windows Server 2003 Driver Development Kit (Microsoft WINDDK) version 3790.1830
     289#                        Optional:
     290#                             Required to build EBC drivers:
     291#                               Intel(r) Compiler for Efi Byte Code (Intel(r) EBC Compiler)
     292#                             Required to build platforms or ACPI tables:
     293#                               Intel(r) ACPI Compiler (iasl.exe) v20101013 from
     294#                               http://www.acpica.org/downloads/previous_releases.php
    247295#   DDK3790     -win32-  Requires:
    248296#                             Microsoft Windows Server 2003 Driver Development Kit (Microsoft WINDDK) version 3790.1830
     
    260308#                               Intel(r) ACPI Compiler v20101013 from
    261309#                               http://www.acpica.org/downloads/previous_releases.php
    262 #   GCC44       -Linux-  Requires:
    263 #                             GCC 4.4 (Native)
     310#   GCC44       -Linux,Windows-  Requires:
     311#                             GCC 4.4 targeting x86_64-linux-gnu
    264312#                        Optional:
    265313#                             Required to build platforms or ACPI tables:
    266314#                               Intel(r) ACPI Compiler v20101013 from
    267315#                               http://www.acpica.org/downloads/previous_releases.php
    268 #   GCC45       -Linux-  Requires:
    269 #                             GCC 4.5 (Native)
     316#   GCC45       -Linux,Windows-  Requires:
     317#                             GCC 4.5 targeting x86_64-linux-gnu
    270318#                        Optional:
    271319#                             Required to build platforms or ACPI tables:
    272320#                               Intel(r) ACPI Compiler v20101013 from
    273321#                               http://www.acpica.org/downloads/previous_releases.php
    274 #   GCC46       -Linux-  Requires:
    275 #                             GCC 4.6 (Native)
     322#   GCC46       -Linux,Windows-  Requires:
     323#                             GCC 4.6 targeting x86_64-linux-gnu or arm-linux-gnueabi
     324#                        Optional:
     325#                             Required to build platforms or ACPI tables:
     326#                               Intel(r) ACPI Compiler v20101013 from
     327#                               http://www.acpica.org/downloads/previous_releases.php
     328#   GCC47       -Linux,Windows-  Requires:
     329#                             GCC 4.7 targeting x86_64-linux-gnu, aarch64-linux-gnu, or arm-linux-gnueabi
     330#                        Optional:
     331#                             Required to build platforms or ACPI tables:
     332#                               Intel(r) ACPI Compiler v20101013 from
     333#                               http://www.acpica.org/downloads/previous_releases.php
     334#   GCC48       -Linux,Windows-  Requires:
     335#                             GCC 4.8 targeting x86_64-linux-gnu, aarch64-linux-gnu, or arm-linux-gnueabi
     336#                        Optional:
     337#                             Required to build platforms or ACPI tables:
     338#                               Intel(r) ACPI Compiler v20101013 from
     339#                               http://www.acpica.org/downloads/previous_releases.php
     340#   GCC49       -Linux,Windows-  Requires:
     341#                             GCC 4.9 targeting x86_64-linux-gnu, aarch64-linux-gnu, or arm-linux-gnueabi
    276342#                        Optional:
    277343#                             Required to build platforms or ACPI tables:
     
    362428#                               Microsoft ASL ACPI Compiler (asl.exe) v4.0.0 from
    363429#                               http://download.microsoft.com/download/2/c/1/2c16c7e0-96c1-40f5-81fc-3e4bf7b65496/microsoft_asl_compiler-v4-0-0.msi
     430#   VS2012xASL  -win32-  Requires:
     431#                             Microsoft Visual Studio 2012 Professional Edition
     432#                             Microsoft Windows Server 2003 Driver Development Kit (Microsoft WINDDK) version 3790.1830
     433#                        Optional:
     434#                             Required to build EBC drivers:
     435#                               Intel(r) Compiler for Efi Byte Code (Intel(r) EBC Compiler)
     436#                             Required to build platforms or ACPI tables:
     437#                               Microsoft ASL ACPI Compiler (asl.exe) v4.0.0 from
     438#                               http://download.microsoft.com/download/2/c/1/2c16c7e0-96c1-40f5-81fc-3e4bf7b65496/microsoft_asl_compiler-v4-0-0.msi
     439#   VS2013xASL  -win32-  Requires:
     440#                             Microsoft Visual Studio 2013 Professional Edition
     441#                             Microsoft Windows Server 2003 Driver Development Kit (Microsoft WINDDK) version 3790.1830
     442#                        Optional:
     443#                             Required to build EBC drivers:
     444#                               Intel(r) Compiler for Efi Byte Code (Intel(r) EBC Compiler)
     445#                             Required to build platforms or ACPI tables:
     446#                               Microsoft ASL ACPI Compiler (asl.exe) v4.0.0 from
     447#                               http://download.microsoft.com/download/2/c/1/2c16c7e0-96c1-40f5-81fc-3e4bf7b65496/microsoft_asl_compiler-v4-0-0.msi
    364448#   DDK3790xASL -win32-  Requires:
    365449#                             Microsoft Windows Server 2003 Driver Development Kit (Microsoft WINDDK) version 3790.1830
     
    426510#                               Intel(r) ACPI Compiler (iasl.exe) v20101013 from
    427511#                               http://www.acpica.org/downloads/previous_releases.php
     512#   VS2012x86   -win64-  Requires:
     513#                             Microsoft Visual Studio 2012 (x86) Professional Edition
     514#                             Microsoft Windows Server 2003 Driver Development Kit (Microsoft WINDDK) version 3790.1830
     515#                        Optional:
     516#                             Required to build platforms or ACPI tables:
     517#                               Intel(r) ACPI Compiler (iasl.exe) v20101013 from
     518#                               http://www.acpica.org/downloads/previous_releases.php
     519#   VS2013x86   -win64-  Requires:
     520#                             Microsoft Visual Studio 2013 (x86) Professional Edition
     521#                             Microsoft Windows Server 2003 Driver Development Kit (Microsoft WINDDK) version 3790.1830
     522#                        Optional:
     523#                             Required to build platforms or ACPI tables:
     524#                               Intel(r) ACPI Compiler (iasl.exe) v20101013 from
     525#                               http://www.acpica.org/downloads/previous_releases.php
    428526#   ICCx86      -win64-  Requires:
    429527#                             Intel C Compiler V9.1(x86)
     
    473571#                               Microsoft ASL ACPI Compiler (asl.exe) v4.0.0 from
    474572#                               http://download.microsoft.com/download/2/c/1/2c16c7e0-96c1-40f5-81fc-3e4bf7b65496/microsoft_asl_compiler-v4-0-0.msi
     573#  VS2012x86xASL -win64- Requires:
     574#                             Microsoft Visual Studio 2012 (x86) Professional Edition
     575#                             Microsoft Windows Server 2003 Driver Development Kit(Microsoft WINDDK) version 3790.1830
     576#                        Optional:
     577#                             Required to build platforms or ACPI tables:
     578#                               Microsoft ASL ACPI Compiler (asl.exe) v4.0.0 from
     579#                               http://download.microsoft.com/download/2/c/1/2c16c7e0-96c1-40f5-81fc-3e4bf7b65496/microsoft_asl_compiler-v4-0-0.msi
     580#  VS2013x86xASL -win64- Requires:
     581#                             Microsoft Visual Studio 2013 (x86) Professional
     582#                             Microsoft Windows Server 2003 Driver Development Kit(Microsoft WINDDK) version 3790.1830
     583#                        Optional:
     584#                             Required to build platforms or ACPI tables:
     585#                               Microsoft ASL ACPI Compiler (asl.exe) v4.0.0 from
     586#                               http://download.microsoft.com/download/2/c/1/2c16c7e0-96c1-40f5-81fc-3e4bf7b65496/microsoft_asl_compiler-v4-0-0.msi
    475587#   ICCx86xASL  -win64-  Requires:
    476588#                             Intel C Compiler V9.1 (x86)
     
    515627#                               Microsoft ASL ACPI Compiler (asl.exe) v4.0.0 from
    516628#                               http://download.microsoft.com/download/2/c/1/2c16c7e0-96c1-40f5-81fc-3e4bf7b65496/microsoft_asl_compiler-v4-0-0.msi
     629#   ARMGCC      -unix-   Requires:
     630#                             ARM None EABI GCC 4.6.0
     631#                        Optional:
     632#                             Required to build platforms or ACPI tables:
     633#                               Intel(r) ACPI Compiler v20101013 from
     634#                               http://www.acpica.org/downloads/previous_releases.php
     635#   ARMLINUXGCC -unix-   Requires:
     636#                             ARM Linux GNU EABI GCC 4.6.0
     637#                        Optional:
     638#                             Required to build platforms or ACPI tables:
     639#                               Intel(r) ACPI Compiler v20101013 from
     640#                               http://www.acpica.org/downloads/previous_releases.php
     641#   RVCT        -win-   Requires:
     642#                             ARM C/C++ Compiler, 5.00
     643#                        Optional:
     644#                             Required to build EBC drivers:
     645#                               Intel(r) Compiler for Efi Byte Code (Intel(r) EBC Compiler)
     646#                             Required to build platforms or ACPI tables:
     647#                               Microsoft ASL ACPI Compiler (asl.exe) v4.0.0 from
     648#                               http://download.microsoft.com/download/2/c/1/2c16c7e0-96c1-40f5-81fc-3e4bf7b65496/microsoft_asl_compiler-v4-0-0.msi
     649#   RVCTLINUX   -unix-   Requires:
     650#                             ARM C/C++ Compiler, 5.00
     651#                        Optional:
     652#                             Required to build platforms or ACPI tables:
     653#                               Intel(r) ACPI Compiler v20101013 from
     654#                               http://www.acpica.org/downloads/previous_releases.php
    517655# * Commented out - All versions of VS2005 use the same standard install directory
    518656#
     
    526664#   INTEL          - INTEL
    527665#   RVCT           - ARM RealView Toolchain
     666####################################################################################
     667####################################################################################
     668#
     669# Other Supported Tools
     670# =====================
     671#   NASM 2.07 or later                 http://www.nasm.us/
     672#
    528673####################################################################################
    529674####################################################################################
     
    614759NOOPT_VS2003_IA32_ASM_FLAGS         = /nologo /c /WX /W3 /coff /Cx /Zd /Zi
    615760
     761  DEBUG_VS2003_IA32_NASM_FLAGS      = -Ox -f win32 -g
     762RELEASE_VS2003_IA32_NASM_FLAGS      = -Ox -f win32
     763NOOPT_VS2003_IA32_NASM_FLAGS        = -O0 -f win32 -g
     764
    616765      *_VS2003_IA32_SLINK_FLAGS     = /nologo /LTCG
    617766  DEBUG_VS2003_IA32_DLINK_FLAGS     = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
     
    688837NOOPT_VS2003xASL_IA32_ASM_FLAGS         = /nologo /c /WX /W3 /coff /Cx /Zd /Zi
    689838
     839  DEBUG_VS2003xASL_IA32_NASM_FLAGS      = -Ox -f win32 -g
     840RELEASE_VS2003xASL_IA32_NASM_FLAGS      = -Ox -f win32
     841NOOPT_VS2003xASL_IA32_NASM_FLAGS        = -O0 -f win32 -g
     842
    690843      *_VS2003xASL_IA32_SLINK_FLAGS     = /nologo /LTCG
    691844  DEBUG_VS2003xASL_IA32_DLINK_FLAGS     = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
     
    714867
    715868####################################################################################
    716 #
    717869# Microsoft Visual Studio 2005
    718870#
     
    770922NOOPT_VS2005_IA32_ASM_FLAGS       = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
    771923
     924  DEBUG_VS2005_IA32_NASM_FLAGS    = -Ox -f win32 -g
     925RELEASE_VS2005_IA32_NASM_FLAGS    = -Ox -f win32
     926NOOPT_VS2005_IA32_NASM_FLAGS      = -O0 -f win32 -g
     927
    772928  DEBUG_VS2005_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
    773929RELEASE_VS2005_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
     
    790946*_VS2005_X64_ASLDLINK_PATH = DEF(VS2005_BINX64)\link.exe
    791947
    792 
    793948  DEBUG_VS2005_X64_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm
    794949RELEASE_VS2005_X64_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF
     
    798953RELEASE_VS2005_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd
    799954NOOPT_VS2005_X64_ASM_FLAGS      = /nologo /c /WX /W3 /Cx /Zd /Zi
     955
     956  DEBUG_VS2005_X64_NASM_FLAGS   = -Ox -f win64 -g
     957RELEASE_VS2005_X64_NASM_FLAGS   = -Ox -f win64
     958NOOPT_VS2005_X64_NASM_FLAGS     = -O0 -f win64 -g
    800959
    801960  DEBUG_VS2005_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
     
    9071066NOOPT_VS2005xASL_IA32_ASM_FLAGS     = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
    9081067
     1068  DEBUG_VS2005xASL_IA32_NASM_FLAGS  = -Ox -f win32 -g
     1069RELEASE_VS2005xASL_IA32_NASM_FLAGS  = -Ox -f win32
     1070NOOPT_VS2005xASL_IA32_NASM_FLAGS    = -O0 -f win32 -g
     1071
    9091072  DEBUG_VS2005xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
    9101073RELEASE_VS2005xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
     
    9271090*_VS2005xASL_X64_ASLDLINK_PATH = DEF(VS2005_BINX64)\link.exe
    9281091
    929 
    9301092  DEBUG_VS2005xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm
    9311093RELEASE_VS2005xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF
     
    9351097RELEASE_VS2005xASL_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd
    9361098NOOPT_VS2005xASL_X64_ASM_FLAGS      = /nologo /c /WX /W3 /Cx /Zd /Zi
     1099
     1100  DEBUG_VS2005xASL_X64_NASM_FLAGS   = -Ox -f win64 -g
     1101RELEASE_VS2005xASL_X64_NASM_FLAGS   = -Ox -f win64
     1102NOOPT_VS2005xASL_X64_NASM_FLAGS     = -O0 -f win64 -g
    9371103
    9381104  DEBUG_VS2005xASL_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
     
    10441210NOOPT_VS2005x86_IA32_ASM_FLAGS     = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
    10451211
     1212  DEBUG_VS2005x86_IA32_NASM_FLAGS  = -Ox -f win32 -g
     1213RELEASE_VS2005x86_IA32_NASM_FLAGS  = -Ox -f win32
     1214NOOPT_VS2005x86_IA32_NASM_FLAGS    = -O0 -f win32 -g
     1215
    10461216  DEBUG_VS2005x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
    10471217RELEASE_VS2005x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
     
    10641234*_VS2005x86_X64_ASLDLINK_PATH = DEF(VS2005x86_BINX64)\link.exe
    10651235
    1066 
    10671236  DEBUG_VS2005x86_X64_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm
    10681237RELEASE_VS2005x86_X64_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF
     
    10721241RELEASE_VS2005x86_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd
    10731242NOOPT_VS2005x86_X64_ASM_FLAGS      = /nologo /c /WX /W3 /Cx /Zd /Zi
     1243
     1244  DEBUG_VS2005x86_X64_NASM_FLAGS   = -Ox -f win64 -g
     1245RELEASE_VS2005x86_X64_NASM_FLAGS   = -Ox -f win64
     1246NOOPT_VS2005x86_X64_NASM_FLAGS     = -O0 -f win64 -g
    10741247
    10751248  DEBUG_VS2005x86_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
     
    11811354NOOPT_VS2005x86xASL_IA32_ASM_FLAGS     = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
    11821355
     1356  DEBUG_VS2005x86xASL_IA32_NASM_FLAGS  = -Ox -f win32 -g
     1357RELEASE_VS2005x86xASL_IA32_NASM_FLAGS  = -Ox -f win32
     1358NOOPT_VS2005x86xASL_IA32_NASM_FLAGS    = -O0 -f win32 -g
     1359
    11831360  DEBUG_VS2005x86xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
    11841361RELEASE_VS2005x86xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
     
    12011378*_VS2005x86xASL_X64_ASLDLINK_PATH = DEF(VS2005x86_BINX64)\link.exe
    12021379
    1203 
    12041380  DEBUG_VS2005x86xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm
    12051381RELEASE_VS2005x86xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF
     
    12091385RELEASE_VS2005x86xASL_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd
    12101386NOOPT_VS2005x86xASL_X64_ASM_FLAGS      = /nologo /c /WX /W3 /Cx /Zd /Zi
     1387
     1388  DEBUG_VS2005x86xASL_X64_NASM_FLAGS   = -Ox -f win64 -g
     1389RELEASE_VS2005x86xASL_X64_NASM_FLAGS   = -Ox -f win64
     1390NOOPT_VS2005x86xASL_X64_NASM_FLAGS     = -O0 -f win64 -g
    12111391
    12121392  DEBUG_VS2005x86xASL_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
     
    12601440*_VS2005x86xASL_EBC_SLINK_FLAGS         = /lib /NOLOGO /MACHINE:EBC
    12611441*_VS2005x86xASL_EBC_DLINK_FLAGS         = "C:\Program Files (x86)\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP /ALIGN:32 /DRIVER
    1262 
    12631442
    12641443
     
    13201499NOOPT_VS2008_IA32_ASM_FLAGS       = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
    13211500
     1501  DEBUG_VS2008_IA32_NASM_FLAGS    = -Ox -f win32 -g
     1502RELEASE_VS2008_IA32_NASM_FLAGS    = -Ox -f win32
     1503NOOPT_VS2008_IA32_NASM_FLAGS      = -O0 -f win32 -g
     1504
    13221505  DEBUG_VS2008_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
    13231506RELEASE_VS2008_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
     
    13401523*_VS2008_X64_ASLDLINK_PATH = DEF(VS2008_BINX64)\link.exe
    13411524
    1342 
    13431525  DEBUG_VS2008_X64_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm
    13441526RELEASE_VS2008_X64_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF
     
    13481530RELEASE_VS2008_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd
    13491531NOOPT_VS2008_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi
     1532
     1533  DEBUG_VS2008_X64_NASM_FLAGS   = -Ox -f win64 -g
     1534RELEASE_VS2008_X64_NASM_FLAGS   = -Ox -f win64
     1535NOOPT_VS2008_X64_NASM_FLAGS     = -O0 -f win64 -g
    13501536
    13511537  DEBUG_VS2008_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
     
    13851571##################
    13861572*_VS2008_EBC_*_FAMILY            = INTEL
     1573*_VS2008_EBC_*_DLL               = DEF(VS2008_DLL)
    13871574
    13881575*_VS2008_EBC_MAKE_PATH           = DEF(VS2008_BIN)\nmake.exe
     
    13901577*_VS2008_EBC_VFRPP_PATH          = DEF(EBC_BIN)\iec.exe
    13911578*_VS2008_EBC_CC_PATH             = DEF(EBC_BIN)\iec.exe
    1392 *_VS2008_EBC_SLINK_PATH          = DEF(EBC_BIN)\link.exe
    1393 *_VS2008_EBC_DLINK_PATH          = DEF(EBC_BIN)\link.exe
     1579*_VS2008_EBC_SLINK_PATH          = DEF(VS2008_BIN)\link.exe
     1580*_VS2008_EBC_DLINK_PATH          = DEF(VS2008_BIN)\link.exe
    13941581
    13951582*_VS2008_EBC_MAKE_FLAGS          = /nologo
     
    13991586*_VS2008_EBC_SLINK_FLAGS         = /lib /NOLOGO /MACHINE:EBC
    14001587*_VS2008_EBC_DLINK_FLAGS         = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP /ALIGN:32 /DRIVER
     1588
    14011589
    14021590####################################################################################
     
    14571645NOOPT_VS2008xASL_IA32_ASM_FLAGS     = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
    14581646
     1647  DEBUG_VS2008xASL_IA32_NASM_FLAGS  = -Ox -f win32 -g
     1648RELEASE_VS2008xASL_IA32_NASM_FLAGS  = -Ox -f win32
     1649NOOPT_VS2008xASL_IA32_NASM_FLAGS    = -O0 -f win32 -g
     1650
    14591651  DEBUG_VS2008xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
    14601652RELEASE_VS2008xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
     
    14771669*_VS2008xASL_X64_ASLDLINK_PATH = DEF(VS2008_BINX64)\link.exe
    14781670
    1479 
    14801671  DEBUG_VS2008xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm
    14811672RELEASE_VS2008xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF
     
    14851676RELEASE_VS2008xASL_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd
    14861677NOOPT_VS2008xASL_X64_ASM_FLAGS      = /nologo /c /WX /W3 /Cx /Zd /Zi
     1678
     1679  DEBUG_VS2008xASL_X64_NASM_FLAGS   = -Ox -f win64 -g
     1680RELEASE_VS2008xASL_X64_NASM_FLAGS   = -Ox -f win64
     1681NOOPT_VS2008xASL_X64_NASM_FLAGS     = -O0 -f win64 -g
    14871682
    14881683  DEBUG_VS2008xASL_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
     
    15221717##################
    15231718*_VS2008xASL_EBC_*_FAMILY            = INTEL
     1719*_VS2008xASL_EBC_*_DLL               = DEF(VS2008_DLL)
    15241720
    15251721*_VS2008xASL_EBC_MAKE_PATH           = DEF(VS2008_BIN)\nmake.exe
     
    15271723*_VS2008xASL_EBC_VFRPP_PATH          = DEF(EBC_BIN)\iec.exe
    15281724*_VS2008xASL_EBC_CC_PATH             = DEF(EBC_BIN)\iec.exe
    1529 *_VS2008xASL_EBC_SLINK_PATH          = DEF(EBC_BIN)\link.exe
    1530 *_VS2008xASL_EBC_DLINK_PATH          = DEF(EBC_BIN)\link.exe
     1725*_VS2008xASL_EBC_SLINK_PATH          = DEF(VS2008_BIN)\link.exe
     1726*_VS2008xASL_EBC_DLINK_PATH          = DEF(VS2008_BIN)\link.exe
    15311727
    15321728*_VS2008xASL_EBC_MAKE_FLAGS          = /nologo
     
    15931789NOOPT_VS2008x86_IA32_ASM_FLAGS     = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
    15941790
     1791  DEBUG_VS2008x86_IA32_NASM_FLAGS  = -Ox -f win32 -g
     1792RELEASE_VS2008x86_IA32_NASM_FLAGS  = -Ox -f win32
     1793NOOPT_VS2008x86_IA32_NASM_FLAGS    = -O0 -f win32 -g
     1794
    15951795  DEBUG_VS2008x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
    15961796RELEASE_VS2008x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
     
    16201820RELEASE_VS2008x86_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd
    16211821NOOPT_VS2008x86_X64_ASM_FLAGS      = /nologo /c /WX /W3 /Cx /Zd /Zi
    1622  
     1822
     1823  DEBUG_VS2008x86_X64_NASM_FLAGS   = -Ox -f win64 -g
     1824RELEASE_VS2008x86_X64_NASM_FLAGS   = -Ox -f win64
     1825NOOPT_VS2008x86_X64_NASM_FLAGS     = -O0 -f win64 -g
     1826
    16231827  DEBUG_VS2008x86_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
    16241828RELEASE_VS2008x86_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
     
    16521856RELEASE_VS2008x86_IPF_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb
    16531857NOOPT_VS2008x86_IPF_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG
     1858
     1859##################
     1860# EBC definitions
     1861##################
     1862*_VS2008x86_EBC_*_FAMILY            = INTEL
     1863*_VS2008x86_EBC_*_DLL               = DEF(VS2008x86_DLL)
     1864
     1865*_VS2008x86_EBC_MAKE_PATH           = DEF(VS2008x86_BIN)\nmake.exe
     1866*_VS2008x86_EBC_PP_PATH             = DEF(EBC_BINx86)\iec.exe
     1867*_VS2008x86_EBC_VFRPP_PATH          = DEF(EBC_BINx86)\iec.exe
     1868*_VS2008x86_EBC_CC_PATH             = DEF(EBC_BINx86)\iec.exe
     1869*_VS2008x86_EBC_SLINK_PATH          = DEF(VS2008x86_BIN)\link.exe
     1870*_VS2008x86_EBC_DLINK_PATH          = DEF(VS2008x86_BIN)\link.exe
     1871
     1872*_VS2008x86_EBC_MAKE_FLAGS          = /nologo
     1873*_VS2008x86_EBC_PP_FLAGS            = /nologo /E /TC /FIAutoGen.h
     1874*_VS2008x86_EBC_CC_FLAGS            = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)
     1875*_VS2008x86_EBC_VFRPP_FLAGS         = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
     1876*_VS2008x86_EBC_SLINK_FLAGS         = /lib /NOLOGO /MACHINE:EBC
     1877*_VS2008x86_EBC_DLINK_FLAGS         = "C:\Program Files (x86)\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP /ALIGN:32 /DRIVER
    16541878
    16551879
     
    17081932NOOPT_VS2008x86xASL_IA32_ASM_FLAGS     = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
    17091933
     1934  DEBUG_VS2008xASL_IA32_NASM_FLAGS     = -Ox -f win32 -g
     1935RELEASE_VS2008xASL_IA32_NASM_FLAGS     = -Ox -f win32
     1936NOOPT_VS2008xASL_IA32_NASM_FLAGS       = -O0 -f win32 -g
     1937
    17101938  DEBUG_VS2008x86xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
    17111939RELEASE_VS2008x86xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
     
    17361964NOOPT_VS2008x86xASL_X64_ASM_FLAGS      = /nologo /c /WX /W3 /Cx /Zd /Zi
    17371965
     1966  DEBUG_VS2008xASL_X64_NASM_FLAGS      = -Ox -f win64 -g
     1967RELEASE_VS2008xASL_X64_NASM_FLAGS      = -Ox -f win64
     1968NOOPT_VS2008xASL_X64_NASM_FLAGS        = -O0 -f win64 -g
     1969
    17381970  DEBUG_VS2008x86xASL_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
    17391971RELEASE_VS2008x86xASL_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
     
    17682000NOOPT_VS2008x86xASL_IPF_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG
    17692001
     2002##################
     2003# EBC definitions
     2004##################
     2005*_VS2008x86xASL_EBC_*_FAMILY            = INTEL
     2006*_VS2008x86xASL_EBC_*_DLL               = DEF(VS2008x86_DLL)
     2007
     2008*_VS2008x86xASL_EBC_MAKE_PATH           = DEF(VS2008x86_BIN)\nmake.exe
     2009*_VS2008x86xASL_EBC_PP_PATH             = DEF(EBC_BINx86)\iec.exe
     2010*_VS2008x86xASL_EBC_VFRPP_PATH          = DEF(EBC_BINx86)\iec.exe
     2011*_VS2008x86xASL_EBC_CC_PATH             = DEF(EBC_BINx86)\iec.exe
     2012*_VS2008x86xASL_EBC_SLINK_PATH          = DEF(VS2008x86_BIN)\link.exe
     2013*_VS2008x86xASL_EBC_DLINK_PATH          = DEF(VS2008x86_BIN)\link.exe
     2014
     2015*_VS2008x86xASL_EBC_MAKE_FLAGS          = /nologo
     2016*_VS2008x86xASL_EBC_PP_FLAGS            = /nologo /E /TC /FIAutoGen.h
     2017*_VS2008x86xASL_EBC_CC_FLAGS            = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)
     2018*_VS2008x86xASL_EBC_VFRPP_FLAGS         = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
     2019*_VS2008x86xASL_EBC_SLINK_FLAGS         = /lib /NOLOGO /MACHINE:EBC
     2020*_VS2008x86xASL_EBC_DLINK_FLAGS         = "C:\Program Files (x86)\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP /ALIGN:32 /DRIVER
     2021
    17702022
    17712023####################################################################################
     
    17732025# Microsoft Visual Studio 2010
    17742026#
    1775 #   VS2010  - Microsoft Visual Studio 2010 Premium Edition
     2027#   VS2010  - Microsoft Visual Studio 2010 Premium Edition with Intel ASL
    17762028#   ASL     - Intel ACPI Source Language Compiler
    17772029####################################################################################
     
    17812033*_VS2010_*_MAKE_PATH              = DEF(VS2010_BIN)\nmake.exe
    17822034*_VS2010_*_MAKE_FLAGS             = /nologo
    1783 *_VS2010_*_RC_PATH                = DEF(WINSDK_BIN)\rc.exe
     2035*_VS2010_*_RC_PATH                = DEF(WINSDK7_BIN)\rc.exe
    17842036
    17852037*_VS2010_*_SLINK_FLAGS            = /NOLOGO /LTCG
     
    18262078NOOPT_VS2010_IA32_ASM_FLAGS       = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
    18272079
     2080  DEBUG_VS2010_IA32_NASM_FLAGS    = -Ox -f win32 -g
     2081RELEASE_VS2010_IA32_NASM_FLAGS    = -Ox -f win32
     2082NOOPT_VS2010_IA32_NASM_FLAGS      = -O0 -f win32 -g
     2083
    18282084  DEBUG_VS2010_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
    18292085RELEASE_VS2010_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
     
    18462102*_VS2010_X64_ASLDLINK_PATH = DEF(VS2010_BINX64)\link.exe
    18472103
    1848 
    18492104  DEBUG_VS2010_X64_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm
    18502105RELEASE_VS2010_X64_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF
     
    18542109RELEASE_VS2010_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd
    18552110NOOPT_VS2010_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi
     2111
     2112  DEBUG_VS2010_X64_NASM_FLAGS   = -Ox -f win64 -g
     2113RELEASE_VS2010_X64_NASM_FLAGS   = -Ox -f win64
     2114NOOPT_VS2010_X64_NASM_FLAGS     = -O0 -f win64 -g
    18562115
    18572116  DEBUG_VS2010_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
     
    18912150##################
    18922151*_VS2010_EBC_*_FAMILY            = INTEL
     2152*_VS2010_EBC_*_DLL               = DEF(VS2010_DLL)
    18932153
    18942154*_VS2010_EBC_MAKE_PATH           = DEF(VS2010_BIN)\nmake.exe
     
    18962156*_VS2010_EBC_VFRPP_PATH          = DEF(EBC_BIN)\iec.exe
    18972157*_VS2010_EBC_CC_PATH             = DEF(EBC_BIN)\iec.exe
    1898 *_VS2010_EBC_SLINK_PATH          = DEF(EBC_BIN)\link.exe
    1899 *_VS2010_EBC_DLINK_PATH          = DEF(EBC_BIN)\link.exe
     2158*_VS2010_EBC_SLINK_PATH          = DEF(VS2010_BIN)\link.exe
     2159*_VS2010_EBC_DLINK_PATH          = DEF(VS2010_BIN)\link.exe
    19002160
    19012161*_VS2010_EBC_MAKE_FLAGS          = /nologo
     
    19062166*_VS2010_EBC_DLINK_FLAGS         = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP /ALIGN:32 /DRIVER
    19072167
     2168
    19082169####################################################################################
    19092170#
    19102171# Microsoft Visual Studio 2010
    19112172#
    1912 #   VS2010  - Microsoft Visual Studio 2010 Premium Edition
     2173#   VS2010xASL  - Microsoft Visual Studio 2010 Premium Edition with Microsoft ASL
    19132174#   ASL     - Microsoft ACPI Source Language Compiler (asl.exe)
    19142175####################################################################################
     
    19182179*_VS2010xASL_*_MAKE_PATH       = DEF(VS2010_BIN)\nmake.exe
    19192180*_VS2010xASL_*_MAKE_FLAG       = /nologo
    1920 *_VS2010xASL_*_RC_PATH         = DEF(WINSDK_BIN)\rc.exe
     2181*_VS2010xASL_*_RC_PATH         = DEF(WINSDK7_BIN)\rc.exe
    19212182
    19222183*_VS2010xASL_*_SLINK_FLAGS     = /NOLOGO /LTCG
     
    19632224NOOPT_VS2010xASL_IA32_ASM_FLAGS     = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
    19642225
     2226  DEBUG_VS2010xASL_IA32_NASM_FLAGS  = -Ox -f win32 -g
     2227RELEASE_VS2010xASL_IA32_NASM_FLAGS  = -Ox -f win32
     2228NOOPT_VS2010xASL_IA32_NASM_FLAGS    = -O0 -f win32 -g
     2229
    19652230  DEBUG_VS2010xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
    19662231RELEASE_VS2010xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
     
    19832248*_VS2010xASL_X64_ASLDLINK_PATH = DEF(VS2010_BINX64)\link.exe
    19842249
    1985 
    19862250  DEBUG_VS2010xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm
    19872251RELEASE_VS2010xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF
     
    19912255RELEASE_VS2010xASL_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd
    19922256NOOPT_VS2010xASL_X64_ASM_FLAGS      = /nologo /c /WX /W3 /Cx /Zd /Zi
     2257
     2258  DEBUG_VS2010xASL_X64_NASM_FLAGS   = -Ox -f win64 -g
     2259RELEASE_VS2010xASL_X64_NASM_FLAGS   = -Ox -f win64
     2260NOOPT_VS2010xASL_X64_NASM_FLAGS     = -O0 -f win64 -g
    19932261
    19942262  DEBUG_VS2010xASL_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
     
    20282296##################
    20292297*_VS2010xASL_EBC_*_FAMILY            = INTEL
     2298*_VS2010xASL_EBC_*_DLL               = DEF(VS2010_DLL)
    20302299
    20312300*_VS2010xASL_EBC_MAKE_PATH           = DEF(VS2010_BIN)\nmake.exe
     
    20332302*_VS2010xASL_EBC_VFRPP_PATH          = DEF(EBC_BIN)\iec.exe
    20342303*_VS2010xASL_EBC_CC_PATH             = DEF(EBC_BIN)\iec.exe
    2035 *_VS2010xASL_EBC_SLINK_PATH          = DEF(EBC_BIN)\link.exe
    2036 *_VS2010xASL_EBC_DLINK_PATH          = DEF(EBC_BIN)\link.exe
     2304*_VS2010xASL_EBC_SLINK_PATH          = DEF(VS2010_BIN)\link.exe
     2305*_VS2010xASL_EBC_DLINK_PATH          = DEF(VS2010_BIN)\link.exe
    20372306
    20382307*_VS2010xASL_EBC_MAKE_FLAGS          = /nologo
     
    20532322*_VS2010x86_*_MAKE_PATH       = DEF(VS2010x86_BIN)\nmake.exe
    20542323*_VS2010x86_*_MAKE_FLAG       = /nologo
    2055 *_VS2010x86_*_RC_PATH         = DEF(WINSDK_BIN)\rc.exe
     2324*_VS2010x86_*_RC_PATH         = DEF(WINSDK7x86_BIN)\rc.exe
    20562325
    20572326*_VS2010x86_*_MAKE_FLAGS      = /nologo
     
    20992368NOOPT_VS2010x86_IA32_ASM_FLAGS     = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
    21002369
     2370  DEBUG_VS2010x86_IA32_NASM_FLAGS  = -Ox -f win32 -g
     2371RELEASE_VS2010x86_IA32_NASM_FLAGS  = -Ox -f win32
     2372NOOPT_VS2010x86_IA32_NASM_FLAGS    = -O0 -f win32 -g
     2373
    21012374  DEBUG_VS2010x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
    21022375RELEASE_VS2010x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
     
    21262399RELEASE_VS2010x86_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd
    21272400NOOPT_VS2010x86_X64_ASM_FLAGS      = /nologo /c /WX /W3 /Cx /Zd /Zi
    2128  
     2401
     2402  DEBUG_VS2010x86_X64_NASM_FLAGS   = -Ox -f win64 -g
     2403RELEASE_VS2010x86_X64_NASM_FLAGS   = -Ox -f win64
     2404NOOPT_VS2010x86_X64_NASM_FLAGS     = -O0 -f win64 -g
     2405
    21292406  DEBUG_VS2010x86_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
    21302407RELEASE_VS2010x86_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
    21312408NOOPT_VS2010x86_X64_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
    2132 
    21332409
    21342410##################
     
    21602436NOOPT_VS2010x86_IPF_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG
    21612437
     2438##################
     2439# EBC definitions
     2440##################
     2441*_VS2010x86_EBC_*_FAMILY            = INTEL
     2442*_VS2010x86_EBC_*_DLL               = DEF(VS2010x86_DLL)
     2443
     2444*_VS2010x86_EBC_MAKE_PATH           = DEF(VS2010x86_BIN)\nmake.exe
     2445*_VS2010x86_EBC_PP_PATH             = DEF(EBC_BINx86)\iec.exe
     2446*_VS2010x86_EBC_VFRPP_PATH          = DEF(EBC_BINx86)\iec.exe
     2447*_VS2010x86_EBC_CC_PATH             = DEF(EBC_BINx86)\iec.exe
     2448*_VS2010x86_EBC_SLINK_PATH          = DEF(VS2010x86_BIN)\link.exe
     2449*_VS2010x86_EBC_DLINK_PATH          = DEF(VS2010x86_BIN)\link.exe
     2450
     2451*_VS2010x86_EBC_MAKE_FLAGS          = /nologo
     2452*_VS2010x86_EBC_PP_FLAGS            = /nologo /E /TC /FIAutoGen.h
     2453*_VS2010x86_EBC_CC_FLAGS            = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)
     2454*_VS2010x86_EBC_VFRPP_FLAGS         = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
     2455*_VS2010x86_EBC_SLINK_FLAGS         = /lib /NOLOGO /MACHINE:EBC
     2456*_VS2010x86_EBC_DLINK_FLAGS         = "C:\Program Files (x86)\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP /ALIGN:32 /DRIVER
     2457
    21622458
    21632459####################################################################################
     
    21692465*_VS2010x86xASL_*_MAKE_PATH       = DEF(VS2010x86_BIN)\nmake.exe
    21702466*_VS2010x86xASL_*_MAKE_FLAG       = /nologo
    2171 *_VS2010x86xASL_*_RC_PATH         = DEF(WINSDK_BIN)\rc.exe
     2467*_VS2010x86xASL_*_RC_PATH         = DEF(WINSDK7x86_BIN)\rc.exe
    21722468
    21732469*_VS2010x86xASL_*_MAKE_FLAGS      = /nologo
     
    22152511NOOPT_VS2010x86xASL_IA32_ASM_FLAGS     = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
    22162512
     2513  DEBUG_VS2010x86xASL_IA32_NASM_FLAGS  = -Ox -f win32 -g
     2514RELEASE_VS2010x86xASL_IA32_NASM_FLAGS  = -Ox -f win32
     2515NOOPT_VS2010x86xASL_IA32_NASM_FLAGS    = -O0 -f win32 -g
     2516
    22172517  DEBUG_VS2010x86xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
    22182518RELEASE_VS2010x86xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
     
    22432543NOOPT_VS2010x86xASL_X64_ASM_FLAGS      = /nologo /c /WX /W3 /Cx /Zd /Zi
    22442544
     2545  DEBUG_VS2010x86xASL_X64_NASM_FLAGS   = -Ox -f win64 -g
     2546RELEASE_VS2010x86xASL_X64_NASM_FLAGS   = -Ox -f win64
     2547NOOPT_VS2010x86xASL_X64_NASM_FLAGS     = -O0 -f win64 -g
     2548
    22452549  DEBUG_VS2010x86xASL_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
    22462550RELEASE_VS2010x86xASL_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
     
    22752579NOOPT_VS2010x86xASL_IPF_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /LTCG /DLL /OPT:REF,ICF /IGNORE:4001 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:IA64 /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MAP:$(DEBUG_DIR)/$(BASE_NAME).map /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb /DEBUG
    22762580
     2581##################
     2582# EBC definitions
     2583##################
     2584*_VS2010x86xASL_EBC_*_FAMILY            = INTEL
     2585*_VS2010x86xASL_EBC_*_DLL               = DEF(VS2010x86_DLL)
     2586
     2587*_VS2010x86xASL_EBC_MAKE_PATH           = DEF(VS2010x86_BIN)\nmake.exe
     2588*_VS2010x86xASL_EBC_PP_PATH             = DEF(EBC_BINx86)\iec.exe
     2589*_VS2010x86xASL_EBC_VFRPP_PATH          = DEF(EBC_BINx86)\iec.exe
     2590*_VS2010x86xASL_EBC_CC_PATH             = DEF(EBC_BINx86)\iec.exe
     2591*_VS2010x86xASL_EBC_SLINK_PATH          = DEF(VS2010x86_BIN)\link.exe
     2592*_VS2010x86xASL_EBC_DLINK_PATH          = DEF(VS2010x86_BIN)\link.exe
     2593
     2594*_VS2010x86xASL_EBC_MAKE_FLAGS          = /nologo
     2595*_VS2010x86xASL_EBC_PP_FLAGS            = /nologo /E /TC /FIAutoGen.h
     2596*_VS2010x86xASL_EBC_CC_FLAGS            = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)
     2597*_VS2010x86xASL_EBC_VFRPP_FLAGS         = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
     2598*_VS2010x86xASL_EBC_SLINK_FLAGS         = /lib /NOLOGO /MACHINE:EBC
     2599*_VS2010x86xASL_EBC_DLINK_FLAGS         = "C:\Program Files (x86)\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP /ALIGN:32 /DRIVER
     2600
     2601
     2602####################################################################################
     2603#
     2604# Microsoft Visual Studio 2012
     2605#
     2606#   VS2012  - Microsoft Visual Studio 2012 Professional Edition with Intel ASL
     2607#   ASL     - Intel ACPI Source Language Compiler
     2608####################################################################################
     2609#   VS2012           - Microsoft Visual Studio 2012 Premium Edition
     2610*_VS2012_*_*_FAMILY               = MSFT
     2611
     2612*_VS2012_*_MAKE_PATH              = DEF(VS2012_BIN)\nmake.exe
     2613*_VS2012_*_MAKE_FLAGS             = /nologo
     2614*_VS2012_*_RC_PATH                = DEF(WINSDK71_BIN)\rc.exe
     2615
     2616*_VS2012_*_SLINK_FLAGS            = /NOLOGO /LTCG
     2617*_VS2012_*_APP_FLAGS              = /nologo /E /TC
     2618*_VS2012_*_PP_FLAGS               = /nologo /E /TC /FIAutoGen.h
     2619*_VS2012_*_VFRPP_FLAGS            = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
     2620
     2621*_VS2012_*_ASM16_PATH             = DEF(VS2012_BIN)\ml.exe
     2622
     2623##################
     2624# ASL definitions
     2625##################
     2626*_VS2012_*_ASL_PATH               = DEF(DEFAULT_WIN_ASL_BIN)
     2627*_VS2012_*_ASL_FLAGS              = DEF(DEFAULT_WIN_ASL_FLAGS)
     2628*_VS2012_*_ASL_OUTFLAGS           = DEF(DEFAULT_WIN_ASL_OUTFLAGS)
     2629*_VS2012_*_ASLCC_FLAGS            = DEF(MSFT_ASLCC_FLAGS)
     2630*_VS2012_*_ASLPP_FLAGS            = DEF(MSFT_ASLPP_FLAGS)
     2631*_VS2012_*_ASLDLINK_FLAGS         = DEF(MSFT_ASLDLINK_FLAGS)
     2632
     2633##################
     2634# IA32 definitions
     2635##################
     2636*_VS2012_IA32_*_DLL               = DEF(VS2012_DLL)
     2637
     2638*_VS2012_IA32_MAKE_PATH           = DEF(VS2012_BIN)\nmake.exe
     2639*_VS2012_IA32_CC_PATH             = DEF(VS2012_BIN)\cl.exe
     2640*_VS2012_IA32_VFRPP_PATH          = DEF(VS2012_BIN)\cl.exe
     2641*_VS2012_IA32_SLINK_PATH          = DEF(VS2012_BIN)\lib.exe
     2642*_VS2012_IA32_DLINK_PATH          = DEF(VS2012_BIN)\link.exe
     2643*_VS2012_IA32_APP_PATH            = DEF(VS2012_BIN)\cl.exe
     2644*_VS2012_IA32_PP_PATH             = DEF(VS2012_BIN)\cl.exe
     2645*_VS2012_IA32_ASM_PATH            = DEF(VS2012_BIN)\ml.exe
     2646*_VS2012_IA32_ASLCC_PATH          = DEF(VS2012_BIN)\cl.exe
     2647*_VS2012_IA32_ASLPP_PATH          = DEF(VS2012_BIN)\cl.exe
     2648*_VS2012_IA32_ASLDLINK_PATH       = DEF(VS2012_BIN)\link.exe
     2649
     2650      *_VS2012_IA32_MAKE_FLAGS    = /nologo
     2651  DEBUG_VS2012_IA32_CC_FLAGS      = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm
     2652RELEASE_VS2012_IA32_CC_FLAGS      = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF
     2653NOOPT_VS2012_IA32_CC_FLAGS        = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od
     2654
     2655  DEBUG_VS2012_IA32_ASM_FLAGS     = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
     2656RELEASE_VS2012_IA32_ASM_FLAGS     = /nologo /c /WX /W3 /Cx /coff /Zd
     2657NOOPT_VS2012_IA32_ASM_FLAGS       = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
     2658
     2659  DEBUG_VS2012_IA32_NASM_FLAGS    = -Ox -f win32 -g
     2660RELEASE_VS2012_IA32_NASM_FLAGS    = -Ox -f win32
     2661NOOPT_VS2012_IA32_NASM_FLAGS      = -O0 -f win32 -g
     2662
     2663  DEBUG_VS2012_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
     2664RELEASE_VS2012_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
     2665NOOPT_VS2012_IA32_DLINK_FLAGS     = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
     2666
     2667##################
     2668# X64 definitions
     2669##################
     2670*_VS2012_X64_*_DLL         = DEF(VS2012_DLL)
     2671
     2672*_VS2012_X64_CC_PATH       = DEF(VS2012_BINX64)\cl.exe
     2673*_VS2012_X64_PP_PATH       = DEF(VS2012_BINX64)\cl.exe
     2674*_VS2012_X64_APP_PATH      = DEF(VS2012_BINX64)\cl.exe
     2675*_VS2012_X64_VFRPP_PATH    = DEF(VS2012_BINX64)\cl.exe
     2676*_VS2012_X64_ASM_PATH      = DEF(VS2012_BINX64)\ml64.exe
     2677*_VS2012_X64_SLINK_PATH    = DEF(VS2012_BINX64)\lib.exe
     2678*_VS2012_X64_DLINK_PATH    = DEF(VS2012_BINX64)\link.exe
     2679*_VS2012_X64_ASLCC_PATH    = DEF(VS2012_BINX64)\cl.exe
     2680*_VS2012_X64_ASLPP_PATH    = DEF(VS2012_BINX64)\cl.exe
     2681*_VS2012_X64_ASLDLINK_PATH = DEF(VS2012_BINX64)\link.exe
     2682
     2683  DEBUG_VS2012_X64_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm
     2684RELEASE_VS2012_X64_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF
     2685NOOPT_VS2012_X64_CC_FLAGS       = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Od
     2686
     2687  DEBUG_VS2012_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi
     2688RELEASE_VS2012_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd
     2689NOOPT_VS2012_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi
     2690
     2691  DEBUG_VS2012_X64_NASM_FLAGS   = -Ox -f win64 -g
     2692RELEASE_VS2012_X64_NASM_FLAGS   = -Ox -f win64
     2693NOOPT_VS2012_X64_NASM_FLAGS     = -O0 -f win64 -g
     2694
     2695  DEBUG_VS2012_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
     2696RELEASE_VS2012_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
     2697NOOPT_VS2012_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
     2698
     2699##################
     2700# EBC definitions
     2701##################
     2702*_VS2012_EBC_*_FAMILY            = INTEL
     2703*_VS2012_EBC_*_DLL               = DEF(VS2012_DLL)
     2704
     2705*_VS2012_EBC_MAKE_PATH           = DEF(VS2012_BIN)\nmake.exe
     2706*_VS2012_EBC_PP_PATH             = DEF(EBC_BIN)\iec.exe
     2707*_VS2012_EBC_VFRPP_PATH          = DEF(EBC_BIN)\iec.exe
     2708*_VS2012_EBC_CC_PATH             = DEF(EBC_BIN)\iec.exe
     2709*_VS2012_EBC_SLINK_PATH          = DEF(VS2012_BIN)\link.exe
     2710*_VS2012_EBC_DLINK_PATH          = DEF(VS2012_BIN)\link.exe
     2711
     2712*_VS2012_EBC_MAKE_FLAGS          = /nologo
     2713*_VS2012_EBC_PP_FLAGS            = /nologo /E /TC /FIAutoGen.h
     2714*_VS2012_EBC_CC_FLAGS            = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)
     2715*_VS2012_EBC_VFRPP_FLAGS         = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
     2716*_VS2012_EBC_SLINK_FLAGS         = /lib /NOLOGO /MACHINE:EBC
     2717*_VS2012_EBC_DLINK_FLAGS         = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP /ALIGN:32 /DRIVER
     2718
     2719
     2720####################################################################################
     2721#
     2722# Microsoft Visual Studio 2012
     2723#
     2724#   VS2012  - Microsoft Visual Studio 2012 Professional Edition with Microsoft ASL
     2725#   ASL     - Microsoft ACPI Source Language Compiler (asl.exe)
     2726####################################################################################
     2727#   VS2012xASL           - Microsoft Visual Studio 2012 Premium Edition
     2728*_VS2012xASL_*_*_FAMILY        = MSFT
     2729
     2730*_VS2012xASL_*_MAKE_PATH       = DEF(VS2012_BIN)\nmake.exe
     2731*_VS2012xASL_*_MAKE_FLAG       = /nologo
     2732*_VS2012xASL_*_RC_PATH         = DEF(WINSDK71_BIN)\rc.exe
     2733
     2734*_VS2012xASL_*_SLINK_FLAGS     = /NOLOGO /LTCG
     2735*_VS2012xASL_*_APP_FLAGS       = /nologo /E /TC
     2736*_VS2012xASL_*_PP_FLAGS        = /nologo /E /TC /FIAutoGen.h
     2737*_VS2012xASL_*_VFRPP_FLAGS     = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
     2738
     2739*_VS2012xASL_*_ASM16_PATH      = DEF(VS2012_BIN)\ml.exe
     2740
     2741##################
     2742# ASL definitions
     2743##################
     2744*_VS2012xASL_*_ASL_PATH        = DEF(WIN_ASL_BIN)
     2745*_VS2012xASL_*_ASL_FLAGS       =
     2746*_VS2012xASL_*_ASL_OUTFLAGS    = DEF(MS_ASL_OUTFLAGS)
     2747*_VS2012xASL_*_ASLCC_FLAGS     = DEF(MSFT_ASLCC_FLAGS)
     2748*_VS2012xASL_*_ASLPP_FLAGS     = DEF(MSFT_ASLPP_FLAGS)
     2749*_VS2012xASL_*_ASLDLINK_FLAGS  = DEF(MSFT_ASLDLINK_FLAGS)
     2750
     2751##################
     2752# IA32 definitions
     2753##################
     2754*_VS2012xASL_IA32_*_DLL        = DEF(VS2012_DLL)
     2755
     2756*_VS2012xASL_IA32_MAKE_PATH    = DEF(VS2012_BIN)\nmake.exe
     2757*_VS2012xASL_IA32_CC_PATH      = DEF(VS2012_BIN)\cl.exe
     2758*_VS2012xASL_IA32_VFRPP_PATH   = DEF(VS2012_BIN)\cl.exe
     2759*_VS2012xASL_IA32_SLINK_PATH   = DEF(VS2012_BIN)\lib.exe
     2760*_VS2012xASL_IA32_DLINK_PATH   = DEF(VS2012_BIN)\link.exe
     2761*_VS2012xASL_IA32_APP_PATH     = DEF(VS2012_BIN)\cl.exe
     2762*_VS2012xASL_IA32_PP_PATH      = DEF(VS2012_BIN)\cl.exe
     2763*_VS2012xASL_IA32_ASM_PATH     = DEF(VS2012_BIN)\ml.exe
     2764*_VS2012xASL_IA32_ASLCC_PATH    = DEF(VS2012_BIN)\cl.exe
     2765*_VS2012xASL_IA32_ASLPP_PATH    = DEF(VS2012_BIN)\cl.exe
     2766*_VS2012xASL_IA32_ASLDLINK_PATH = DEF(VS2012_BIN)\link.exe
     2767
     2768      *_VS2012xASL_IA32_MAKE_FLAGS  = /nologo
     2769  DEBUG_VS2012xASL_IA32_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm
     2770RELEASE_VS2012xASL_IA32_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF
     2771NOOPT_VS2012xASL_IA32_CC_FLAGS      = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od
     2772
     2773  DEBUG_VS2012xASL_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
     2774RELEASE_VS2012xASL_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd
     2775NOOPT_VS2012xASL_IA32_ASM_FLAGS     = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
     2776
     2777  DEBUG_VS2012xASL_IA32_NASM_FLAGS  = -Ox -f win32 -g
     2778RELEASE_VS2012xASL_IA32_NASM_FLAGS  = -Ox -f win32
     2779NOOPT_VS2012xASL_IA32_NASM_FLAGS    = -O0 -f win32 -g
     2780
     2781  DEBUG_VS2012xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
     2782RELEASE_VS2012xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
     2783NOOPT_VS2012xASL_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
     2784
     2785##################
     2786# X64 definitions
     2787##################
     2788*_VS2012xASL_X64_*_DLL         = DEF(VS2012_DLL)
     2789
     2790*_VS2012xASL_X64_CC_PATH       = DEF(VS2012_BINX64)\cl.exe
     2791*_VS2012xASL_X64_PP_PATH       = DEF(VS2012_BINX64)\cl.exe
     2792*_VS2012xASL_X64_APP_PATH      = DEF(VS2012_BINX64)\cl.exe
     2793*_VS2012xASL_X64_VFRPP_PATH    = DEF(VS2012_BINX64)\cl.exe
     2794*_VS2012xASL_X64_ASM_PATH      = DEF(VS2012_BINX64)\ml64.exe
     2795*_VS2012xASL_X64_SLINK_PATH    = DEF(VS2012_BINX64)\lib.exe
     2796*_VS2012xASL_X64_DLINK_PATH    = DEF(VS2012_BINX64)\link.exe
     2797*_VS2012xASL_X64_ASLCC_PATH    = DEF(VS2012_BINX64)\cl.exe
     2798*_VS2012xASL_X64_ASLPP_PATH    = DEF(VS2012_BINX64)\cl.exe
     2799*_VS2012xASL_X64_ASLDLINK_PATH = DEF(VS2012_BINX64)\link.exe
     2800
     2801  DEBUG_VS2012xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm
     2802RELEASE_VS2012xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF
     2803NOOPT_VS2012xASL_X64_CC_FLAGS       = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Od
     2804
     2805  DEBUG_VS2012xASL_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi
     2806RELEASE_VS2012xASL_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd
     2807NOOPT_VS2012xASL_X64_ASM_FLAGS      = /nologo /c /WX /W3 /Cx /Zd /Zi
     2808
     2809  DEBUG_VS2012xASL_X64_NASM_FLAGS   = -Ox -f win64 -g
     2810RELEASE_VS2012xASL_X64_NASM_FLAGS   = -Ox -f win64
     2811NOOPT_VS2012xASL_X64_NASM_FLAGS     = -O0 -f win64 -g
     2812
     2813  DEBUG_VS2012xASL_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
     2814RELEASE_VS2012xASL_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
     2815NOOPT_VS2012xASL_X64_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
     2816
     2817##################
     2818# EBC definitions
     2819##################
     2820*_VS2012xASL_EBC_*_FAMILY            = INTEL
     2821*_VS2012xASL_EBC_*_DLL               = DEF(VS2012_DLL)
     2822
     2823*_VS2012xASL_EBC_MAKE_PATH           = DEF(VS2012_BIN)\nmake.exe
     2824*_VS2012xASL_EBC_PP_PATH             = DEF(EBC_BIN)\iec.exe
     2825*_VS2012xASL_EBC_VFRPP_PATH          = DEF(EBC_BIN)\iec.exe
     2826*_VS2012xASL_EBC_CC_PATH             = DEF(EBC_BIN)\iec.exe
     2827*_VS2012xASL_EBC_SLINK_PATH          = DEF(VS2012_BIN)\link.exe
     2828*_VS2012xASL_EBC_DLINK_PATH          = DEF(VS2012_BIN)\link.exe
     2829
     2830*_VS2012xASL_EBC_MAKE_FLAGS          = /nologo
     2831*_VS2012xASL_EBC_PP_FLAGS            = /nologo /E /TC /FIAutoGen.h
     2832*_VS2012xASL_EBC_CC_FLAGS            = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)
     2833*_VS2012xASL_EBC_VFRPP_FLAGS         = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
     2834*_VS2012xASL_EBC_SLINK_FLAGS         = /lib /NOLOGO /MACHINE:EBC
     2835*_VS2012xASL_EBC_DLINK_FLAGS         = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP /ALIGN:32 /DRIVER
     2836
     2837
     2838####################################################################################
     2839#   VS2012x86       - Microsoft Visual Studio 2012 (x86) professional with Intel ASL
     2840#   ASL  - Intel ACPI Source Language Compiler (iasl.exe)
     2841####################################################################################
     2842#   VS2012x86           - Microsoft Visual Studio 2012 (x86) professional Edition with Intel ASL
     2843*_VS2012x86_*_*_FAMILY        = MSFT
     2844
     2845*_VS2012x86_*_MAKE_PATH       = DEF(VS2012x86_BIN)\nmake.exe
     2846*_VS2012x86_*_MAKE_FLAG       = /nologo
     2847*_VS2012x86_*_RC_PATH         = DEF(WINSDK71x86_BIN)\rc.exe
     2848
     2849*_VS2012x86_*_MAKE_FLAGS      = /nologo
     2850*_VS2012x86_*_SLINK_FLAGS     = /NOLOGO /LTCG
     2851*_VS2012x86_*_APP_FLAGS       = /nologo /E /TC
     2852*_VS2012x86_*_PP_FLAGS        = /nologo /E /TC /FIAutoGen.h
     2853*_VS2012x86_*_VFRPP_FLAGS     = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
     2854
     2855*_VS2012x86_*_ASM16_PATH      = DEF(VS2012x86_BIN)\ml.exe
     2856
     2857##################
     2858# ASL definitions
     2859##################
     2860*_VS2012x86_*_ASL_PATH        = DEF(WIN_IASL_BIN)
     2861*_VS2012x86_*_ASL_FLAGS       = DEF(DEFAULT_WIN_ASL_FLAGS)
     2862*_VS2012x86_*_ASL_OUTFLAGS    = DEF(DEFAULT_WIN_ASL_OUTFLAGS)
     2863*_VS2012x86_*_ASLCC_FLAGS     = DEF(MSFT_ASLCC_FLAGS)
     2864*_VS2012x86_*_ASLPP_FLAGS     = DEF(MSFT_ASLPP_FLAGS)
     2865*_VS2012x86_*_ASLDLINK_FLAGS  = DEF(MSFT_ASLDLINK_FLAGS)
     2866
     2867##################
     2868# IA32 definitions
     2869##################
     2870*_VS2012x86_IA32_*_DLL        = DEF(VS2012x86_DLL)
     2871
     2872*_VS2012x86_IA32_MAKE_PATH    = DEF(VS2012x86_BIN)\nmake.exe
     2873*_VS2012x86_IA32_CC_PATH      = DEF(VS2012x86_BIN)\cl.exe
     2874*_VS2012x86_IA32_VFRPP_PATH   = DEF(VS2012x86_BIN)\cl.exe
     2875*_VS2012x86_IA32_ASLCC_PATH   = DEF(VS2012x86_BIN)\cl.exe
     2876*_VS2012x86_IA32_ASLPP_PATH   = DEF(VS2012x86_BIN)\cl.exe
     2877*_VS2012x86_IA32_SLINK_PATH   = DEF(VS2012x86_BIN)\lib.exe
     2878*_VS2012x86_IA32_DLINK_PATH   = DEF(VS2012x86_BIN)\link.exe
     2879*_VS2012x86_IA32_ASLDLINK_PATH= DEF(VS2012x86_BIN)\link.exe
     2880*_VS2012x86_IA32_APP_PATH     = DEF(VS2012x86_BIN)\cl.exe
     2881*_VS2012x86_IA32_PP_PATH      = DEF(VS2012x86_BIN)\cl.exe
     2882*_VS2012x86_IA32_ASM_PATH     = DEF(VS2012x86_BIN)\ml.exe
     2883
     2884      *_VS2012x86_IA32_MAKE_FLAGS  = /nologo
     2885  DEBUG_VS2012x86_IA32_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm
     2886RELEASE_VS2012x86_IA32_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF
     2887NOOPT_VS2012x86_IA32_CC_FLAGS      = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od
     2888
     2889  DEBUG_VS2012x86_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
     2890RELEASE_VS2012x86_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd
     2891NOOPT_VS2012x86_IA32_ASM_FLAGS     = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
     2892
     2893  DEBUG_VS2012x86_IA32_NASM_FLAGS  = -Ox -f win32 -g
     2894RELEASE_VS2012x86_IA32_NASM_FLAGS  = -Ox -f win32
     2895NOOPT_VS2012x86_IA32_NASM_FLAGS    = -O0 -f win32 -g
     2896
     2897  DEBUG_VS2012x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
     2898RELEASE_VS2012x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
     2899NOOPT_VS2012x86_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
     2900
     2901##################
     2902# X64 definitions
     2903##################
     2904*_VS2012x86_X64_*_DLL         = DEF(VS2012x86_DLL)
     2905
     2906*_VS2012x86_X64_CC_PATH       = DEF(VS2012x86_BINX64)\cl.exe
     2907*_VS2012x86_X64_PP_PATH       = DEF(VS2012x86_BINX64)\cl.exe
     2908*_VS2012x86_X64_APP_PATH      = DEF(VS2012x86_BINX64)\cl.exe
     2909*_VS2012x86_X64_VFRPP_PATH    = DEF(VS2012x86_BINX64)\cl.exe
     2910*_VS2012x86_X64_ASLCC_PATH    = DEF(VS2012x86_BINX64)\cl.exe
     2911*_VS2012x86_X64_ASLPP_PATH    = DEF(VS2012x86_BINX64)\cl.exe
     2912*_VS2012x86_X64_ASM_PATH      = DEF(VS2012x86_BINX64)\ml64.exe
     2913*_VS2012x86_X64_SLINK_PATH    = DEF(VS2012x86_BINX64)\lib.exe
     2914*_VS2012x86_X64_DLINK_PATH    = DEF(VS2012x86_BINX64)\link.exe
     2915*_VS2012x86_X64_ASLDLINK_PATH = DEF(VS2012x86_BINX64)\link.exe
     2916
     2917  DEBUG_VS2012x86_X64_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm
     2918RELEASE_VS2012x86_X64_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF
     2919NOOPT_VS2012x86_X64_CC_FLAGS       = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Od
     2920
     2921  DEBUG_VS2012x86_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi
     2922RELEASE_VS2012x86_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd
     2923NOOPT_VS2012x86_X64_ASM_FLAGS      = /nologo /c /WX /W3 /Cx /Zd /Zi
     2924
     2925  DEBUG_VS2012x86_X64_NASM_FLAGS   = -Ox -f win64 -g
     2926RELEASE_VS2012x86_X64_NASM_FLAGS   = -Ox -f win64
     2927NOOPT_VS2012x86_X64_NASM_FLAGS     = -O0 -f win64 -g
     2928
     2929  DEBUG_VS2012x86_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
     2930RELEASE_VS2012x86_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
     2931NOOPT_VS2012x86_X64_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
     2932
     2933##################
     2934# EBC definitions
     2935##################
     2936*_VS2012x86_EBC_*_FAMILY            = INTEL
     2937*_VS2012x86_EBC_*_DLL               = DEF(VS2012x86_DLL)
     2938
     2939*_VS2012x86_EBC_MAKE_PATH           = DEF(VS2012x86_BIN)\nmake.exe
     2940*_VS2012x86_EBC_PP_PATH             = DEF(EBC_BINx86)\iec.exe
     2941*_VS2012x86_EBC_VFRPP_PATH          = DEF(EBC_BINx86)\iec.exe
     2942*_VS2012x86_EBC_CC_PATH             = DEF(EBC_BINx86)\iec.exe
     2943*_VS2012x86_EBC_SLINK_PATH          = DEF(VS2012x86_BIN)\link.exe
     2944*_VS2012x86_EBC_DLINK_PATH          = DEF(VS2012x86_BIN)\link.exe
     2945
     2946*_VS2012x86_EBC_MAKE_FLAGS          = /nologo
     2947*_VS2012x86_EBC_PP_FLAGS            = /nologo /E /TC /FIAutoGen.h
     2948*_VS2012x86_EBC_CC_FLAGS            = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)
     2949*_VS2012x86_EBC_VFRPP_FLAGS         = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
     2950*_VS2012x86_EBC_SLINK_FLAGS         = /lib /NOLOGO /MACHINE:EBC
     2951*_VS2012x86_EBC_DLINK_FLAGS         = "C:\Program Files (x86)\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP /ALIGN:32 /DRIVER
     2952
     2953
     2954####################################################################################
     2955#   VS2012x86xASL     - Microsoft Visual Studio 2012 (x86) professional with Microsoft ASL
     2956#   ASL  - Microsoft ACPI Source Language Compiler (asl.exe)
     2957####################################################################################
     2958*_VS2012x86xASL_*_*_FAMILY        = MSFT
     2959
     2960*_VS2012x86xASL_*_MAKE_PATH       = DEF(VS2012x86_BIN)\nmake.exe
     2961*_VS2012x86xASL_*_MAKE_FLAG       = /nologo
     2962*_VS2012x86xASL_*_RC_PATH         = DEF(WINSDK71x86_BIN)\rc.exe
     2963
     2964*_VS2012x86xASL_*_MAKE_FLAGS      = /nologo
     2965*_VS2012x86xASL_*_SLINK_FLAGS     = /NOLOGO /LTCG
     2966*_VS2012x86xASL_*_APP_FLAGS       = /nologo /E /TC
     2967*_VS2012x86xASL_*_PP_FLAGS        = /nologo /E /TC /FIAutoGen.h
     2968*_VS2012x86xASL_*_VFRPP_FLAGS     = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
     2969
     2970*_VS2012x86xASL_*_ASM16_PATH      = DEF(VS2012x86_BIN)\ml.exe
     2971
     2972##################
     2973# ASL definitions
     2974##################
     2975*_VS2012x86xASL_*_ASL_PATH        = DEF(WIN_ASL_BIN)
     2976*_VS2012x86xASL_*_ASL_FLAGS       = DEF(MS_ASL_FLAGS)
     2977*_VS2012x86xASL_*_ASL_OUTFLAGS    = DEF(MS_ASL_OUTFLAGS)
     2978*_VS2012x86xASL_*_ASLCC_FLAGS     = DEF(MSFT_ASLCC_FLAGS)
     2979*_VS2012x86xASL_*_ASLPP_FLAGS     = DEF(MSFT_ASLPP_FLAGS)
     2980*_VS2012x86xASL_*_ASLDLINK_FLAGS  = DEF(MSFT_ASLDLINK_FLAGS)
     2981
     2982##################
     2983# IA32 definitions
     2984##################
     2985*_VS2012x86xASL_IA32_*_DLL        = DEF(VS2012x86_DLL)
     2986
     2987*_VS2012x86xASL_IA32_MAKE_PATH    = DEF(VS2012x86_BIN)\nmake.exe
     2988*_VS2012x86xASL_IA32_CC_PATH      = DEF(VS2012x86_BIN)\cl.exe
     2989*_VS2012x86xASL_IA32_VFRPP_PATH   = DEF(VS2012x86_BIN)\cl.exe
     2990*_VS2012x86xASL_IA32_ASLCC_PATH   = DEF(VS2012x86_BIN)\cl.exe
     2991*_VS2012x86xASL_IA32_ASLPP_PATH   = DEF(VS2012x86_BIN)\cl.exe
     2992*_VS2012x86xASL_IA32_SLINK_PATH   = DEF(VS2012x86_BIN)\lib.exe
     2993*_VS2012x86xASL_IA32_DLINK_PATH   = DEF(VS2012x86_BIN)\link.exe
     2994*_VS2012x86xASL_IA32_ASLDLINK_PATH= DEF(VS2012x86_BIN)\link.exe
     2995*_VS2012x86xASL_IA32_APP_PATH     = DEF(VS2012x86_BIN)\cl.exe
     2996*_VS2012x86xASL_IA32_PP_PATH      = DEF(VS2012x86_BIN)\cl.exe
     2997*_VS2012x86xASL_IA32_ASM_PATH     = DEF(VS2012x86_BIN)\ml.exe
     2998
     2999      *_VS2012x86xASL_IA32_MAKE_FLAGS  = /nologo
     3000  DEBUG_VS2012x86xASL_IA32_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm
     3001RELEASE_VS2012x86xASL_IA32_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF
     3002NOOPT_VS2012x86xASL_IA32_CC_FLAGS      = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od
     3003
     3004  DEBUG_VS2012x86xASL_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
     3005RELEASE_VS2012x86xASL_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd
     3006NOOPT_VS2012x86xASL_IA32_ASM_FLAGS     = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
     3007
     3008  DEBUG_VS2012x86xASL_IA32_NASM_FLAGS  = -Ox -f win32 -g
     3009RELEASE_VS2012x86xASL_IA32_NASM_FLAGS  = -Ox -f win32
     3010NOOPT_VS2012x86xASL_IA32_NASM_FLAGS    = -O0 -f win32 -g
     3011
     3012  DEBUG_VS2012x86xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
     3013RELEASE_VS2012x86xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
     3014NOOPT_VS2012x86xASL_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
     3015
     3016##################
     3017# X64 definitions
     3018##################
     3019*_VS2012x86xASL_X64_*_DLL         = DEF(VS2012x86_DLL)
     3020
     3021*_VS2012x86xASL_X64_CC_PATH       = DEF(VS2012x86_BINX64)\cl.exe
     3022*_VS2012x86xASL_X64_PP_PATH       = DEF(VS2012x86_BINX64)\cl.exe
     3023*_VS2012x86xASL_X64_APP_PATH      = DEF(VS2012x86_BINX64)\cl.exe
     3024*_VS2012x86xASL_X64_VFRPP_PATH    = DEF(VS2012x86_BINX64)\cl.exe
     3025*_VS2012x86xASL_X64_ASLCC_PATH    = DEF(VS2012x86_BINX64)\cl.exe
     3026*_VS2012x86xASL_X64_ASLPP_PATH    = DEF(VS2012x86_BINX64)\cl.exe
     3027*_VS2012x86xASL_X64_ASM_PATH      = DEF(VS2012x86_BINX64)\ml64.exe
     3028*_VS2012x86xASL_X64_SLINK_PATH    = DEF(VS2012x86_BINX64)\lib.exe
     3029*_VS2012x86xASL_X64_DLINK_PATH    = DEF(VS2012x86_BINX64)\link.exe
     3030*_VS2012x86xASL_X64_ASLDLINK_PATH = DEF(VS2012x86_BINX64)\link.exe
     3031
     3032  DEBUG_VS2012x86xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm
     3033RELEASE_VS2012x86xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF
     3034NOOPT_VS2012x86xASL_X64_CC_FLAGS       = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Od
     3035
     3036  DEBUG_VS2012x86xASL_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi
     3037RELEASE_VS2012x86xASL_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd
     3038NOOPT_VS2012x86xASL_X64_ASM_FLAGS      = /nologo /c /WX /W3 /Cx /Zd /Zi
     3039
     3040  DEBUG_VS2012x86xASL_X64_NASM_FLAGS   = -Ox -f win64 -g
     3041RELEASE_VS2012x86xASL_X64_NASM_FLAGS   = -Ox -f win64
     3042NOOPT_VS2012x86xASL_X64_NASM_FLAGS     = -O0 -f win64 -g
     3043
     3044  DEBUG_VS2012x86xASL_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
     3045RELEASE_VS2012x86xASL_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
     3046NOOPT_VS2012x86xASL_X64_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
     3047
     3048##################
     3049# EBC definitions
     3050##################
     3051*_VS2012x86xASL_EBC_*_FAMILY            = INTEL
     3052*_VS2012x86xASL_EBC_*_DLL               = DEF(VS2012x86_DLL)
     3053
     3054*_VS2012x86xASL_EBC_MAKE_PATH           = DEF(VS2012x86_BIN)\nmake.exe
     3055*_VS2012x86xASL_EBC_PP_PATH             = DEF(EBC_BINx86)\iec.exe
     3056*_VS2012x86xASL_EBC_VFRPP_PATH          = DEF(EBC_BINx86)\iec.exe
     3057*_VS2012x86xASL_EBC_CC_PATH             = DEF(EBC_BINx86)\iec.exe
     3058*_VS2012x86xASL_EBC_SLINK_PATH          = DEF(VS2012x86_BIN)\link.exe
     3059*_VS2012x86xASL_EBC_DLINK_PATH          = DEF(VS2012x86_BIN)\link.exe
     3060
     3061*_VS2012x86xASL_EBC_MAKE_FLAGS          = /nologo
     3062*_VS2012x86xASL_EBC_PP_FLAGS            = /nologo /E /TC /FIAutoGen.h
     3063*_VS2012x86xASL_EBC_CC_FLAGS            = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)
     3064*_VS2012x86xASL_EBC_VFRPP_FLAGS         = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
     3065*_VS2012x86xASL_EBC_SLINK_FLAGS         = /lib /NOLOGO /MACHINE:EBC
     3066*_VS2012x86xASL_EBC_DLINK_FLAGS         = "C:\Program Files (x86)\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP /ALIGN:32 /DRIVER
     3067
     3068####################################################################################
     3069#
     3070# Microsoft Visual Studio 2013
     3071#
     3072#   VS2013  - Microsoft Visual Studio 2013 Professional Edition with Intel ASL
     3073#   ASL     - Intel ACPI Source Language Compiler
     3074####################################################################################
     3075#   VS2013           - Microsoft Visual Studio 2013 Premium Edition
     3076*_VS2013_*_*_FAMILY               = MSFT
     3077
     3078*_VS2013_*_MAKE_PATH              = DEF(VS2013_BIN)\nmake.exe
     3079*_VS2013_*_MAKE_FLAGS             = /nologo
     3080*_VS2013_*_RC_PATH                = DEF(WINSDK8_BIN)\rc.exe
     3081
     3082*_VS2013_*_SLINK_FLAGS            = /NOLOGO /LTCG
     3083*_VS2013_*_APP_FLAGS              = /nologo /E /TC
     3084*_VS2013_*_PP_FLAGS               = /nologo /E /TC /FIAutoGen.h
     3085*_VS2013_*_VFRPP_FLAGS            = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
     3086
     3087*_VS2013_*_ASM16_PATH             = DEF(VS2013_BIN)\ml.exe
     3088
     3089##################
     3090# ASL definitions
     3091##################
     3092*_VS2013_*_ASL_PATH               = DEF(DEFAULT_WIN_ASL_BIN)
     3093*_VS2013_*_ASL_FLAGS              = DEF(DEFAULT_WIN_ASL_FLAGS)
     3094*_VS2013_*_ASL_OUTFLAGS           = DEF(DEFAULT_WIN_ASL_OUTFLAGS)
     3095*_VS2013_*_ASLCC_FLAGS            = DEF(MSFT_ASLCC_FLAGS)
     3096*_VS2013_*_ASLPP_FLAGS            = DEF(MSFT_ASLPP_FLAGS)
     3097*_VS2013_*_ASLDLINK_FLAGS         = DEF(MSFT_ASLDLINK_FLAGS)
     3098
     3099##################
     3100# IA32 definitions
     3101##################
     3102*_VS2013_IA32_*_DLL               = DEF(VS2013_DLL)
     3103
     3104*_VS2013_IA32_MAKE_PATH           = DEF(VS2013_BIN)\nmake.exe
     3105*_VS2013_IA32_CC_PATH             = DEF(VS2013_BIN)\cl.exe
     3106*_VS2013_IA32_VFRPP_PATH          = DEF(VS2013_BIN)\cl.exe
     3107*_VS2013_IA32_SLINK_PATH          = DEF(VS2013_BIN)\lib.exe
     3108*_VS2013_IA32_DLINK_PATH          = DEF(VS2013_BIN)\link.exe
     3109*_VS2013_IA32_APP_PATH            = DEF(VS2013_BIN)\cl.exe
     3110*_VS2013_IA32_PP_PATH             = DEF(VS2013_BIN)\cl.exe
     3111*_VS2013_IA32_ASM_PATH            = DEF(VS2013_BIN)\ml.exe
     3112*_VS2013_IA32_ASLCC_PATH          = DEF(VS2013_BIN)\cl.exe
     3113*_VS2013_IA32_ASLPP_PATH          = DEF(VS2013_BIN)\cl.exe
     3114*_VS2013_IA32_ASLDLINK_PATH       = DEF(VS2013_BIN)\link.exe
     3115
     3116      *_VS2013_IA32_MAKE_FLAGS    = /nologo
     3117  DEBUG_VS2013_IA32_CC_FLAGS      = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm
     3118RELEASE_VS2013_IA32_CC_FLAGS      = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF
     3119NOOPT_VS2013_IA32_CC_FLAGS        = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od
     3120
     3121  DEBUG_VS2013_IA32_ASM_FLAGS     = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
     3122RELEASE_VS2013_IA32_ASM_FLAGS     = /nologo /c /WX /W3 /Cx /coff /Zd
     3123NOOPT_VS2013_IA32_ASM_FLAGS       = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
     3124
     3125  DEBUG_VS2013_IA32_NASM_FLAGS    = -Ox -f win32 -g
     3126RELEASE_VS2013_IA32_NASM_FLAGS    = -Ox -f win32
     3127NOOPT_VS2013_IA32_NASM_FLAGS      = -O0 -f win32 -g
     3128
     3129  DEBUG_VS2013_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
     3130RELEASE_VS2013_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
     3131NOOPT_VS2013_IA32_DLINK_FLAGS     = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
     3132
     3133##################
     3134# X64 definitions
     3135##################
     3136*_VS2013_X64_*_DLL         = DEF(VS2013_DLL)
     3137
     3138*_VS2013_X64_CC_PATH       = DEF(VS2013_BINX64)\cl.exe
     3139*_VS2013_X64_PP_PATH       = DEF(VS2013_BINX64)\cl.exe
     3140*_VS2013_X64_APP_PATH      = DEF(VS2013_BINX64)\cl.exe
     3141*_VS2013_X64_VFRPP_PATH    = DEF(VS2013_BINX64)\cl.exe
     3142*_VS2013_X64_ASM_PATH      = DEF(VS2013_BINX64)\ml64.exe
     3143*_VS2013_X64_SLINK_PATH    = DEF(VS2013_BINX64)\lib.exe
     3144*_VS2013_X64_DLINK_PATH    = DEF(VS2013_BINX64)\link.exe
     3145*_VS2013_X64_ASLCC_PATH    = DEF(VS2013_BINX64)\cl.exe
     3146*_VS2013_X64_ASLPP_PATH    = DEF(VS2013_BINX64)\cl.exe
     3147*_VS2013_X64_ASLDLINK_PATH = DEF(VS2013_BINX64)\link.exe
     3148
     3149  DEBUG_VS2013_X64_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm
     3150RELEASE_VS2013_X64_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF
     3151NOOPT_VS2013_X64_CC_FLAGS       = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Od
     3152
     3153  DEBUG_VS2013_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi
     3154RELEASE_VS2013_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd
     3155NOOPT_VS2013_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi
     3156
     3157  DEBUG_VS2013_X64_NASM_FLAGS   = -Ox -f win64 -g
     3158RELEASE_VS2013_X64_NASM_FLAGS   = -Ox -f win64
     3159NOOPT_VS2013_X64_NASM_FLAGS     = -O0 -f win64 -g
     3160
     3161  DEBUG_VS2013_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
     3162RELEASE_VS2013_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
     3163NOOPT_VS2013_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
     3164
     3165##################
     3166# EBC definitions
     3167##################
     3168*_VS2013_EBC_*_FAMILY            = INTEL
     3169*_VS2013_EBC_*_DLL               = DEF(VS2013_DLL)
     3170
     3171*_VS2013_EBC_MAKE_PATH           = DEF(VS2013_BIN)\nmake.exe
     3172*_VS2013_EBC_PP_PATH             = DEF(EBC_BIN)\iec.exe
     3173*_VS2013_EBC_VFRPP_PATH          = DEF(EBC_BIN)\iec.exe
     3174*_VS2013_EBC_CC_PATH             = DEF(EBC_BIN)\iec.exe
     3175*_VS2013_EBC_SLINK_PATH          = DEF(VS2013_BIN)\link.exe
     3176*_VS2013_EBC_DLINK_PATH          = DEF(VS2013_BIN)\link.exe
     3177
     3178*_VS2013_EBC_MAKE_FLAGS          = /nologo
     3179*_VS2013_EBC_PP_FLAGS            = /nologo /E /TC /FIAutoGen.h
     3180*_VS2013_EBC_CC_FLAGS            = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)
     3181*_VS2013_EBC_VFRPP_FLAGS         = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
     3182*_VS2013_EBC_SLINK_FLAGS         = /lib /NOLOGO /MACHINE:EBC
     3183*_VS2013_EBC_DLINK_FLAGS         = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP /ALIGN:32 /DRIVER
     3184
     3185
     3186####################################################################################
     3187#
     3188# Microsoft Visual Studio 2013
     3189#
     3190#   VS2013  - Microsoft Visual Studio 2013 Professional Edition with Microsoft ASL
     3191#   ASL     - Microsoft ACPI Source Language Compiler (asl.exe)
     3192####################################################################################
     3193#   VS2013xASL           - Microsoft Visual Studio 2013 Premium Edition
     3194*_VS2013xASL_*_*_FAMILY        = MSFT
     3195
     3196*_VS2013xASL_*_MAKE_PATH       = DEF(VS2013_BIN)\nmake.exe
     3197*_VS2013xASL_*_MAKE_FLAG       = /nologo
     3198*_VS2013xASL_*_RC_PATH         = DEF(WINSDK8_BIN)\rc.exe
     3199
     3200*_VS2013xASL_*_SLINK_FLAGS     = /NOLOGO /LTCG
     3201*_VS2013xASL_*_APP_FLAGS       = /nologo /E /TC
     3202*_VS2013xASL_*_PP_FLAGS        = /nologo /E /TC /FIAutoGen.h
     3203*_VS2013xASL_*_VFRPP_FLAGS     = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
     3204
     3205*_VS2013xASL_*_ASM16_PATH      = DEF(VS2013_BIN)\ml.exe
     3206
     3207##################
     3208# ASL definitions
     3209##################
     3210*_VS2013xASL_*_ASL_PATH        = DEF(WIN_ASL_BIN)
     3211*_VS2013xASL_*_ASL_FLAGS       =
     3212*_VS2013xASL_*_ASL_OUTFLAGS    = DEF(MS_ASL_OUTFLAGS)
     3213*_VS2013xASL_*_ASLCC_FLAGS     = DEF(MSFT_ASLCC_FLAGS)
     3214*_VS2013xASL_*_ASLPP_FLAGS     = DEF(MSFT_ASLPP_FLAGS)
     3215*_VS2013xASL_*_ASLDLINK_FLAGS  = DEF(MSFT_ASLDLINK_FLAGS)
     3216
     3217##################
     3218# IA32 definitions
     3219##################
     3220*_VS2013xASL_IA32_*_DLL        = DEF(VS2013_DLL)
     3221
     3222*_VS2013xASL_IA32_MAKE_PATH    = DEF(VS2013_BIN)\nmake.exe
     3223*_VS2013xASL_IA32_CC_PATH      = DEF(VS2013_BIN)\cl.exe
     3224*_VS2013xASL_IA32_VFRPP_PATH   = DEF(VS2013_BIN)\cl.exe
     3225*_VS2013xASL_IA32_SLINK_PATH   = DEF(VS2013_BIN)\lib.exe
     3226*_VS2013xASL_IA32_DLINK_PATH   = DEF(VS2013_BIN)\link.exe
     3227*_VS2013xASL_IA32_APP_PATH     = DEF(VS2013_BIN)\cl.exe
     3228*_VS2013xASL_IA32_PP_PATH      = DEF(VS2013_BIN)\cl.exe
     3229*_VS2013xASL_IA32_ASM_PATH     = DEF(VS2013_BIN)\ml.exe
     3230*_VS2013xASL_IA32_ASLCC_PATH    = DEF(VS2013_BIN)\cl.exe
     3231*_VS2013xASL_IA32_ASLPP_PATH    = DEF(VS2013_BIN)\cl.exe
     3232*_VS2013xASL_IA32_ASLDLINK_PATH = DEF(VS2013_BIN)\link.exe
     3233
     3234      *_VS2013xASL_IA32_MAKE_FLAGS  = /nologo
     3235  DEBUG_VS2013xASL_IA32_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm
     3236RELEASE_VS2013xASL_IA32_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF
     3237NOOPT_VS2013xASL_IA32_CC_FLAGS      = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od
     3238
     3239  DEBUG_VS2013xASL_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
     3240RELEASE_VS2013xASL_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd
     3241NOOPT_VS2013xASL_IA32_ASM_FLAGS     = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
     3242
     3243  DEBUG_VS2013xASL_IA32_NASM_FLAGS  = -Ox -f win32 -g
     3244RELEASE_VS2013xASL_IA32_NASM_FLAGS  = -Ox -f win32
     3245NOOPT_VS2013xASL_IA32_NASM_FLAGS    = -O0 -f win32 -g
     3246
     3247  DEBUG_VS2013xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
     3248RELEASE_VS2013xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
     3249NOOPT_VS2013xASL_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
     3250
     3251##################
     3252# X64 definitions
     3253##################
     3254*_VS2013xASL_X64_*_DLL         = DEF(VS2013_DLL)
     3255
     3256*_VS2013xASL_X64_CC_PATH       = DEF(VS2013_BINX64)\cl.exe
     3257*_VS2013xASL_X64_PP_PATH       = DEF(VS2013_BINX64)\cl.exe
     3258*_VS2013xASL_X64_APP_PATH      = DEF(VS2013_BINX64)\cl.exe
     3259*_VS2013xASL_X64_VFRPP_PATH    = DEF(VS2013_BINX64)\cl.exe
     3260*_VS2013xASL_X64_ASM_PATH      = DEF(VS2013_BINX64)\ml64.exe
     3261*_VS2013xASL_X64_SLINK_PATH    = DEF(VS2013_BINX64)\lib.exe
     3262*_VS2013xASL_X64_DLINK_PATH    = DEF(VS2013_BINX64)\link.exe
     3263*_VS2013xASL_X64_ASLCC_PATH    = DEF(VS2013_BINX64)\cl.exe
     3264*_VS2013xASL_X64_ASLPP_PATH    = DEF(VS2013_BINX64)\cl.exe
     3265*_VS2013xASL_X64_ASLDLINK_PATH = DEF(VS2013_BINX64)\link.exe
     3266
     3267  DEBUG_VS2013xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm
     3268RELEASE_VS2013xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF
     3269NOOPT_VS2013xASL_X64_CC_FLAGS       = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Od
     3270
     3271  DEBUG_VS2013xASL_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi
     3272RELEASE_VS2013xASL_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd
     3273NOOPT_VS2013xASL_X64_ASM_FLAGS      = /nologo /c /WX /W3 /Cx /Zd /Zi
     3274
     3275  DEBUG_VS2013xASL_X64_NASM_FLAGS   = -Ox -f win64 -g
     3276RELEASE_VS2013xASL_X64_NASM_FLAGS   = -Ox -f win64
     3277NOOPT_VS2013xASL_X64_NASM_FLAGS     = -O0 -f win64 -g
     3278
     3279  DEBUG_VS2013xASL_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
     3280RELEASE_VS2013xASL_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
     3281NOOPT_VS2013xASL_X64_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
     3282
     3283##################
     3284# EBC definitions
     3285##################
     3286*_VS2013xASL_EBC_*_FAMILY            = INTEL
     3287*_VS2013xASL_EBC_*_DLL               = DEF(VS2013_DLL)
     3288
     3289*_VS2013xASL_EBC_MAKE_PATH           = DEF(VS2013_BIN)\nmake.exe
     3290*_VS2013xASL_EBC_PP_PATH             = DEF(EBC_BIN)\iec.exe
     3291*_VS2013xASL_EBC_VFRPP_PATH          = DEF(EBC_BIN)\iec.exe
     3292*_VS2013xASL_EBC_CC_PATH             = DEF(EBC_BIN)\iec.exe
     3293*_VS2013xASL_EBC_SLINK_PATH          = DEF(VS2013_BIN)\link.exe
     3294*_VS2013xASL_EBC_DLINK_PATH          = DEF(VS2013_BIN)\link.exe
     3295
     3296*_VS2013xASL_EBC_MAKE_FLAGS          = /nologo
     3297*_VS2013xASL_EBC_PP_FLAGS            = /nologo /E /TC /FIAutoGen.h
     3298*_VS2013xASL_EBC_CC_FLAGS            = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)
     3299*_VS2013xASL_EBC_VFRPP_FLAGS         = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
     3300*_VS2013xASL_EBC_SLINK_FLAGS         = /lib /NOLOGO /MACHINE:EBC
     3301*_VS2013xASL_EBC_DLINK_FLAGS         = "C:\Program Files\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP /ALIGN:32 /DRIVER
     3302
     3303
     3304####################################################################################
     3305#   VS2013x86       - Microsoft Visual Studio 2013 (x86) professional with Intel ASL
     3306#   ASL  - Intel ACPI Source Language Compiler (iasl.exe)
     3307####################################################################################
     3308#   VS2013x86           - Microsoft Visual Studio 2013 (x86) professional Edition with Intel ASL
     3309*_VS2013x86_*_*_FAMILY        = MSFT
     3310
     3311*_VS2013x86_*_MAKE_PATH       = DEF(VS2013x86_BIN)\nmake.exe
     3312*_VS2013x86_*_MAKE_FLAG       = /nologo
     3313*_VS2013x86_*_RC_PATH         = DEF(WINSDK8x86_BIN)\rc.exe
     3314
     3315*_VS2013x86_*_MAKE_FLAGS      = /nologo
     3316*_VS2013x86_*_SLINK_FLAGS     = /NOLOGO /LTCG
     3317*_VS2013x86_*_APP_FLAGS       = /nologo /E /TC
     3318*_VS2013x86_*_PP_FLAGS        = /nologo /E /TC /FIAutoGen.h
     3319*_VS2013x86_*_VFRPP_FLAGS     = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
     3320
     3321*_VS2013x86_*_ASM16_PATH      = DEF(VS2013x86_BIN)\ml.exe
     3322
     3323##################
     3324# ASL definitions
     3325##################
     3326*_VS2013x86_*_ASL_PATH        = DEF(WIN_IASL_BIN)
     3327*_VS2013x86_*_ASL_FLAGS       = DEF(DEFAULT_WIN_ASL_FLAGS)
     3328*_VS2013x86_*_ASL_OUTFLAGS    = DEF(DEFAULT_WIN_ASL_OUTFLAGS)
     3329*_VS2013x86_*_ASLCC_FLAGS     = DEF(MSFT_ASLCC_FLAGS)
     3330*_VS2013x86_*_ASLPP_FLAGS     = DEF(MSFT_ASLPP_FLAGS)
     3331*_VS2013x86_*_ASLDLINK_FLAGS  = DEF(MSFT_ASLDLINK_FLAGS)
     3332
     3333##################
     3334# IA32 definitions
     3335##################
     3336*_VS2013x86_IA32_*_DLL        = DEF(VS2013x86_DLL)
     3337
     3338*_VS2013x86_IA32_MAKE_PATH    = DEF(VS2013x86_BIN)\nmake.exe
     3339*_VS2013x86_IA32_CC_PATH      = DEF(VS2013x86_BIN)\cl.exe
     3340*_VS2013x86_IA32_VFRPP_PATH   = DEF(VS2013x86_BIN)\cl.exe
     3341*_VS2013x86_IA32_ASLCC_PATH   = DEF(VS2013x86_BIN)\cl.exe
     3342*_VS2013x86_IA32_ASLPP_PATH   = DEF(VS2013x86_BIN)\cl.exe
     3343*_VS2013x86_IA32_SLINK_PATH   = DEF(VS2013x86_BIN)\lib.exe
     3344*_VS2013x86_IA32_DLINK_PATH   = DEF(VS2013x86_BIN)\link.exe
     3345*_VS2013x86_IA32_ASLDLINK_PATH= DEF(VS2013x86_BIN)\link.exe
     3346*_VS2013x86_IA32_APP_PATH     = DEF(VS2013x86_BIN)\cl.exe
     3347*_VS2013x86_IA32_PP_PATH      = DEF(VS2013x86_BIN)\cl.exe
     3348*_VS2013x86_IA32_ASM_PATH     = DEF(VS2013x86_BIN)\ml.exe
     3349
     3350      *_VS2013x86_IA32_MAKE_FLAGS  = /nologo
     3351  DEBUG_VS2013x86_IA32_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm
     3352RELEASE_VS2013x86_IA32_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF
     3353NOOPT_VS2013x86_IA32_CC_FLAGS      = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od
     3354
     3355  DEBUG_VS2013x86_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
     3356RELEASE_VS2013x86_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd
     3357NOOPT_VS2013x86_IA32_ASM_FLAGS     = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
     3358
     3359  DEBUG_VS2013x86_IA32_NASM_FLAGS  = -Ox -f win32 -g
     3360RELEASE_VS2013x86_IA32_NASM_FLAGS  = -Ox -f win32
     3361NOOPT_VS2013x86_IA32_NASM_FLAGS    = -O0 -f win32 -g
     3362
     3363  DEBUG_VS2013x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
     3364RELEASE_VS2013x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
     3365NOOPT_VS2013x86_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
     3366
     3367##################
     3368# X64 definitions
     3369##################
     3370*_VS2013x86_X64_*_DLL         = DEF(VS2013x86_DLL)
     3371
     3372*_VS2013x86_X64_CC_PATH       = DEF(VS2013x86_BINX64)\cl.exe
     3373*_VS2013x86_X64_PP_PATH       = DEF(VS2013x86_BINX64)\cl.exe
     3374*_VS2013x86_X64_APP_PATH      = DEF(VS2013x86_BINX64)\cl.exe
     3375*_VS2013x86_X64_VFRPP_PATH    = DEF(VS2013x86_BINX64)\cl.exe
     3376*_VS2013x86_X64_ASLCC_PATH    = DEF(VS2013x86_BINX64)\cl.exe
     3377*_VS2013x86_X64_ASLPP_PATH    = DEF(VS2013x86_BINX64)\cl.exe
     3378*_VS2013x86_X64_ASM_PATH      = DEF(VS2013x86_BINX64)\ml64.exe
     3379*_VS2013x86_X64_SLINK_PATH    = DEF(VS2013x86_BINX64)\lib.exe
     3380*_VS2013x86_X64_DLINK_PATH    = DEF(VS2013x86_BINX64)\link.exe
     3381*_VS2013x86_X64_ASLDLINK_PATH = DEF(VS2013x86_BINX64)\link.exe
     3382
     3383  DEBUG_VS2013x86_X64_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm
     3384RELEASE_VS2013x86_X64_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF
     3385NOOPT_VS2013x86_X64_CC_FLAGS       = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Od
     3386
     3387  DEBUG_VS2013x86_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi
     3388RELEASE_VS2013x86_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd
     3389NOOPT_VS2013x86_X64_ASM_FLAGS      = /nologo /c /WX /W3 /Cx /Zd /Zi
     3390
     3391  DEBUG_VS2013x86_X64_NASM_FLAGS   = -Ox -f win64 -g
     3392RELEASE_VS2013x86_X64_NASM_FLAGS   = -Ox -f win64
     3393NOOPT_VS2013x86_X64_NASM_FLAGS     = -O0 -f win64 -g
     3394
     3395  DEBUG_VS2013x86_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
     3396RELEASE_VS2013x86_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
     3397NOOPT_VS2013x86_X64_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
     3398
     3399##################
     3400# EBC definitions
     3401##################
     3402*_VS2013x86_EBC_*_FAMILY            = INTEL
     3403*_VS2013x86_EBC_*_DLL               = DEF(VS2013x86_DLL)
     3404
     3405*_VS2013x86_EBC_MAKE_PATH           = DEF(VS2013x86_BIN)\nmake.exe
     3406*_VS2013x86_EBC_PP_PATH             = DEF(EBC_BINx86)\iec.exe
     3407*_VS2013x86_EBC_VFRPP_PATH          = DEF(EBC_BINx86)\iec.exe
     3408*_VS2013x86_EBC_CC_PATH             = DEF(EBC_BINx86)\iec.exe
     3409*_VS2013x86_EBC_SLINK_PATH          = DEF(VS2013x86_BIN)\link.exe
     3410*_VS2013x86_EBC_DLINK_PATH          = DEF(VS2013x86_BIN)\link.exe
     3411
     3412*_VS2013x86_EBC_MAKE_FLAGS          = /nologo
     3413*_VS2013x86_EBC_PP_FLAGS            = /nologo /E /TC /FIAutoGen.h
     3414*_VS2013x86_EBC_CC_FLAGS            = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)
     3415*_VS2013x86_EBC_VFRPP_FLAGS         = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
     3416*_VS2013x86_EBC_SLINK_FLAGS         = /lib /NOLOGO /MACHINE:EBC
     3417*_VS2013x86_EBC_DLINK_FLAGS         = "C:\Program Files (x86)\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP /ALIGN:32 /DRIVER
     3418
     3419
     3420####################################################################################
     3421#   VS2013x86xASL     - Microsoft Visual Studio 2013 (x86) professional with Microsoft ASL
     3422#   ASL  - Microsoft ACPI Source Language Compiler (asl.exe)
     3423####################################################################################
     3424*_VS2013x86xASL_*_*_FAMILY        = MSFT
     3425
     3426*_VS2013x86xASL_*_MAKE_PATH       = DEF(VS2013x86_BIN)\nmake.exe
     3427*_VS2013x86xASL_*_MAKE_FLAG       = /nologo
     3428*_VS2013x86xASL_*_RC_PATH         = DEF(WINSDK8x86_BIN)\rc.exe
     3429
     3430*_VS2013x86xASL_*_MAKE_FLAGS      = /nologo
     3431*_VS2013x86xASL_*_SLINK_FLAGS     = /NOLOGO /LTCG
     3432*_VS2013x86xASL_*_APP_FLAGS       = /nologo /E /TC
     3433*_VS2013x86xASL_*_PP_FLAGS        = /nologo /E /TC /FIAutoGen.h
     3434*_VS2013x86xASL_*_VFRPP_FLAGS     = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
     3435
     3436*_VS2013x86xASL_*_ASM16_PATH      = DEF(VS2013x86_BIN)\ml.exe
     3437
     3438##################
     3439# ASL definitions
     3440##################
     3441*_VS2013x86xASL_*_ASL_PATH        = DEF(WIN_ASL_BIN)
     3442*_VS2013x86xASL_*_ASL_FLAGS       = DEF(MS_ASL_FLAGS)
     3443*_VS2013x86xASL_*_ASL_OUTFLAGS    = DEF(MS_ASL_OUTFLAGS)
     3444*_VS2013x86xASL_*_ASLCC_FLAGS     = DEF(MSFT_ASLCC_FLAGS)
     3445*_VS2013x86xASL_*_ASLPP_FLAGS     = DEF(MSFT_ASLPP_FLAGS)
     3446*_VS2013x86xASL_*_ASLDLINK_FLAGS  = DEF(MSFT_ASLDLINK_FLAGS)
     3447
     3448##################
     3449# IA32 definitions
     3450##################
     3451*_VS2013x86xASL_IA32_*_DLL        = DEF(VS2013x86_DLL)
     3452
     3453*_VS2013x86xASL_IA32_MAKE_PATH    = DEF(VS2013x86_BIN)\nmake.exe
     3454*_VS2013x86xASL_IA32_CC_PATH      = DEF(VS2013x86_BIN)\cl.exe
     3455*_VS2013x86xASL_IA32_VFRPP_PATH   = DEF(VS2013x86_BIN)\cl.exe
     3456*_VS2013x86xASL_IA32_ASLCC_PATH   = DEF(VS2013x86_BIN)\cl.exe
     3457*_VS2013x86xASL_IA32_ASLPP_PATH   = DEF(VS2013x86_BIN)\cl.exe
     3458*_VS2013x86xASL_IA32_SLINK_PATH   = DEF(VS2013x86_BIN)\lib.exe
     3459*_VS2013x86xASL_IA32_DLINK_PATH   = DEF(VS2013x86_BIN)\link.exe
     3460*_VS2013x86xASL_IA32_ASLDLINK_PATH= DEF(VS2013x86_BIN)\link.exe
     3461*_VS2013x86xASL_IA32_APP_PATH     = DEF(VS2013x86_BIN)\cl.exe
     3462*_VS2013x86xASL_IA32_PP_PATH      = DEF(VS2013x86_BIN)\cl.exe
     3463*_VS2013x86xASL_IA32_ASM_PATH     = DEF(VS2013x86_BIN)\ml.exe
     3464
     3465      *_VS2013x86xASL_IA32_MAKE_FLAGS  = /nologo
     3466  DEBUG_VS2013x86xASL_IA32_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm
     3467RELEASE_VS2013x86xASL_IA32_CC_FLAGS    = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1ib2 /GL /FIAutoGen.h /EHs-c- /GR- /GF
     3468NOOPT_VS2013x86xASL_IA32_CC_FLAGS      = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od
     3469
     3470  DEBUG_VS2013x86xASL_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
     3471RELEASE_VS2013x86xASL_IA32_ASM_FLAGS   = /nologo /c /WX /W3 /Cx /coff /Zd
     3472NOOPT_VS2013x86xASL_IA32_ASM_FLAGS     = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
     3473
     3474  DEBUG_VS2013x86xASL_IA32_NASM_FLAGS  = -Ox -f win32 -g
     3475RELEASE_VS2013x86xASL_IA32_NASM_FLAGS  = -Ox -f win32
     3476NOOPT_VS2013x86xASL_IA32_NASM_FLAGS    = -O0 -f win32 -g
     3477
     3478  DEBUG_VS2013x86xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
     3479RELEASE_VS2013x86xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
     3480NOOPT_VS2013x86xASL_IA32_DLINK_FLAGS   = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
     3481
     3482##################
     3483# X64 definitions
     3484##################
     3485*_VS2013x86xASL_X64_*_DLL         = DEF(VS2013x86_DLL)
     3486
     3487*_VS2013x86xASL_X64_CC_PATH       = DEF(VS2013x86_BINX64)\cl.exe
     3488*_VS2013x86xASL_X64_PP_PATH       = DEF(VS2013x86_BINX64)\cl.exe
     3489*_VS2013x86xASL_X64_APP_PATH      = DEF(VS2013x86_BINX64)\cl.exe
     3490*_VS2013x86xASL_X64_VFRPP_PATH    = DEF(VS2013x86_BINX64)\cl.exe
     3491*_VS2013x86xASL_X64_ASLCC_PATH    = DEF(VS2013x86_BINX64)\cl.exe
     3492*_VS2013x86xASL_X64_ASLPP_PATH    = DEF(VS2013x86_BINX64)\cl.exe
     3493*_VS2013x86xASL_X64_ASM_PATH      = DEF(VS2013x86_BINX64)\ml64.exe
     3494*_VS2013x86xASL_X64_SLINK_PATH    = DEF(VS2013x86_BINX64)\lib.exe
     3495*_VS2013x86xASL_X64_DLINK_PATH    = DEF(VS2013x86_BINX64)\link.exe
     3496*_VS2013x86xASL_X64_ASLDLINK_PATH = DEF(VS2013x86_BINX64)\link.exe
     3497
     3498  DEBUG_VS2013x86xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm
     3499RELEASE_VS2013x86xASL_X64_CC_FLAGS     = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /O1ib2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF
     3500NOOPT_VS2013x86xASL_X64_CC_FLAGS       = /nologo /c /WX /GS- /X /W4 /Gs32768 /D UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Zi /Gm /Od
     3501
     3502  DEBUG_VS2013x86xASL_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd /Zi
     3503RELEASE_VS2013x86xASL_X64_ASM_FLAGS    = /nologo /c /WX /W3 /Cx /Zd
     3504NOOPT_VS2013x86xASL_X64_ASM_FLAGS      = /nologo /c /WX /W3 /Cx /Zd /Zi
     3505
     3506  DEBUG_VS2013x86xASL_X64_NASM_FLAGS   = -Ox -f win64 -g
     3507RELEASE_VS2013x86xASL_X64_NASM_FLAGS   = -Ox -f win64
     3508NOOPT_VS2013x86xASL_X64_NASM_FLAGS     = -O0 -f win64 -g
     3509
     3510  DEBUG_VS2013x86xASL_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
     3511RELEASE_VS2013x86xASL_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
     3512NOOPT_VS2013x86xASL_X64_DLINK_FLAGS    = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
     3513
     3514##################
     3515# EBC definitions
     3516##################
     3517*_VS2013x86xASL_EBC_*_FAMILY            = INTEL
     3518*_VS2013x86xASL_EBC_*_DLL               = DEF(VS2013x86_DLL)
     3519
     3520*_VS2013x86xASL_EBC_MAKE_PATH           = DEF(VS2013x86_BIN)\nmake.exe
     3521*_VS2013x86xASL_EBC_PP_PATH             = DEF(EBC_BINx86)\iec.exe
     3522*_VS2013x86xASL_EBC_VFRPP_PATH          = DEF(EBC_BINx86)\iec.exe
     3523*_VS2013x86xASL_EBC_CC_PATH             = DEF(EBC_BINx86)\iec.exe
     3524*_VS2013x86xASL_EBC_SLINK_PATH          = DEF(VS2013x86_BIN)\link.exe
     3525*_VS2013x86xASL_EBC_DLINK_PATH          = DEF(VS2013x86_BIN)\link.exe
     3526
     3527*_VS2013x86xASL_EBC_MAKE_FLAGS          = /nologo
     3528*_VS2013x86xASL_EBC_PP_FLAGS            = /nologo /E /TC /FIAutoGen.h
     3529*_VS2013x86xASL_EBC_CC_FLAGS            = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)
     3530*_VS2013x86xASL_EBC_VFRPP_FLAGS         = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
     3531*_VS2013x86xASL_EBC_SLINK_FLAGS         = /lib /NOLOGO /MACHINE:EBC
     3532*_VS2013x86xASL_EBC_DLINK_FLAGS         = "C:\Program Files (x86)\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP /ALIGN:32 /DRIVER
     3533
    22773534
    22783535####################################################################################
     
    22863543*_DDK3790_*_*_FAMILY        = MSFT
    22873544
     3545*_DDK3790_*_*_DLL           = DEF(WINDDK_BIN32)
    22883546*_DDK3790_*_MAKE_PATH       = DEF(WINDDK_BIN32)\nmake.exe
    22893547*_DDK3790_*_MAKE_FLAGS           = /nologo
     
    23293587NOOPT_DDK3790_IA32_ASM_FLAGS     = /nologo /c /WX /W3 /coff /Cx /Zd /Zi
    23303588
     3589  DEBUG_DDK3790_IA32_NASM_FLAGS  = -Ox -f win32 -g
     3590RELEASE_DDK3790_IA32_NASM_FLAGS  = -Ox -f win32
     3591NOOPT_DDK3790_IA32_NASM_FLAGS    = -O0 -f win32 -g
     3592
    23313593  DEBUG_DDK3790_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
    23323594RELEASE_DDK3790_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4078 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
     
    23553617NOOPT_DDK3790_X64_ASM_FLAGS      = /nologo /c /WX /W3 /Cx /Zd /Zi
    23563618
     3619  DEBUG_DDK3790_X64_NASM_FLAGS   = -Ox -f win64 -g
     3620RELEASE_DDK3790_X64_NASM_FLAGS   = -Ox -f win64
     3621NOOPT_DDK3790_X64_NASM_FLAGS     = -O0 -f win64 -g
     3622
    23573623  DEBUG_DDK3790_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
    23583624RELEASE_DDK3790_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4078 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
     
    24113677*_DDK3790xASL_*_*_FAMILY        = MSFT
    24123678
     3679*_DDK3790xASL_*_*_DLL           = DEF(WINDDK_BIN32)
    24133680*_DDK3790xASL_*_MAKE_PATH       = DEF(WINDDK_BIN32)\nmake.exe
    24143681*_DDK3790xASL_*_MAKE_FLAGS           = /nologo
     
    24543721NOOPT_DDK3790xASL_IA32_ASM_FLAGS     = /nologo /c /WX /W3 /coff /Cx /Zd /Zi
    24553722
     3723  DEBUG_DDK3790xASL_IA32_NASM_FLAGS  = -Ox -f win32 -g
     3724RELEASE_DDK3790xASL_IA32_NASM_FLAGS  = -Ox -f win32
     3725NOOPT_DDK3790xASL_IA32_NASM_FLAGS    = -O0 -f win32 -g
     3726
    24563727  DEBUG_DDK3790xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
    24573728RELEASE_DDK3790xASL_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4078 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
     
    24803751NOOPT_DDK3790xASL_X64_ASM_FLAGS      = /nologo /c /WX /W3 /Cx /Zd /Zi
    24813752
     3753  DEBUG_DDK3790xASL_X64_NASM_FLAGS   = -Ox -f win64 -g
     3754RELEASE_DDK3790xASL_X64_NASM_FLAGS   = -Ox -f win64
     3755NOOPT_DDK3790xASL_X64_NASM_FLAGS     = -O0 -f win64 -g
     3756
    24823757  DEBUG_DDK3790xASL_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
    24833758RELEASE_DDK3790xASL_X64_DLINK_FLAGS  = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4078 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:AMD64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
     
    25353810*_*_*_SYMRENAME_PATH            = echo
    25363811*_*_*_SYMRENAME_FLAGS           = Symbol renaming not needed for
    2537 DEBUG_*_*_OBJCOPY_ADDDEBUGFLAG     = --add-gnu-debuglink=$(DEBUG_DIR)\$(MODULE_NAME).debug
     3812DEBUG_*_*_OBJCOPY_ADDDEBUGFLAG     = --add-gnu-debuglink=$(DEBUG_DIR)/$(MODULE_NAME).debug
    25383813RELEASE_*_*_OBJCOPY_ADDDEBUGFLAG   =
    25393814
    2540 DEFINE GCC_ALL_CC_FLAGS            = -g -Os -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-missing-braces -Wno-array-bounds -c -include AutoGen.h
     3815DEFINE GCC_ALL_CC_FLAGS            = -g -Os -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-array-bounds -c -include AutoGen.h
    25413816DEFINE GCC_IA32_CC_FLAGS           = DEF(GCC_ALL_CC_FLAGS) -m32 -malign-double -freorder-blocks -freorder-blocks-and-partition -O2 -mno-stack-arg-probe
    25423817DEFINE GCC_X64_CC_FLAGS            = DEF(GCC_ALL_CC_FLAGS) -mno-red-zone -Wno-address -mno-stack-arg-probe
    25433818DEFINE GCC_IPF_CC_FLAGS            = DEF(GCC_ALL_CC_FLAGS) -minline-int-divide-min-latency
    2544 DEFINE GCC_ARMGCC_CC_FLAGS         = DEF(GCC_ALL_CC_FLAGS) -mword-relocations -mlittle-endian -mabi=aapcs -mapcs -fno-short-enums -save-temps -fsigned-char  -ffunction-sections -fdata-sections -fomit-frame-pointer
     3819DEFINE GCC_ARM_CC_FLAGS            = DEF(GCC_ALL_CC_FLAGS) -mword-relocations -mlittle-endian -mabi=aapcs -mapcs -fno-short-enums -save-temps -fsigned-char -ffunction-sections -fdata-sections -fomit-frame-pointer -Wno-address -mthumb -mfloat-abi=soft
     3820DEFINE GCC_AARCH64_CC_FLAGS        = DEF(GCC_ALL_CC_FLAGS) -mcmodel=large -mlittle-endian -fno-short-enums -save-temps -fverbose-asm -fsigned-char  -ffunction-sections -fdata-sections -fomit-frame-pointer -fno-builtin -Wno-address
    25453821DEFINE GCC_DLINK_FLAGS_COMMON      = -nostdlib --pie
    25463822DEFINE GCC_IA32_X64_DLINK_COMMON   = DEF(GCC_DLINK_FLAGS_COMMON) --gc-sections
     3823DEFINE GCC_ARM_AARCH64_DLINK_COMMON= -Ttext=0x0 --emit-relocs -nostdlib --gc-sections -u $(IMAGE_ENTRY_POINT) -e $(IMAGE_ENTRY_POINT) -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map
    25473824DEFINE GCC_IA32_X64_ASLDLINK_FLAGS = DEF(GCC_IA32_X64_DLINK_COMMON) --entry _ReferenceAcpiTable -u $(IMAGE_ENTRY_POINT)
     3825DEFINE GCC_ARM_AARCH64_ASLDLINK_FLAGS = DEF(GCC_ARM_AARCH64_DLINK_COMMON) --entry ReferenceAcpiTable -u $(IMAGE_ENTRY_POINT)
    25483826DEFINE GCC_IA32_X64_DLINK_FLAGS    = DEF(GCC_IA32_X64_DLINK_COMMON) --entry _$(IMAGE_ENTRY_POINT) --file-alignment 0x20 --section-alignment 0x20 -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map
    25493827DEFINE GCC_IPF_DLINK_FLAGS         = -nostdlib -O2 --gc-sections --dll -static --entry $(IMAGE_ENTRY_POINT) --undefined $(IMAGE_ENTRY_POINT) -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map
     
    25563834DEFINE GCC_ASLCC_FLAGS             = -x c
    25573835DEFINE GCC_WINDRES_FLAGS           = -J rc -O coff
    2558 DEFINE GCC_IA32_RC_FLAGS           = -I binary -O elf32-i386        -B i386 --rename-section .data=.hii
    2559 DEFINE GCC_X64_RC_FLAGS            = -I binary -O elf64-x86-64      -B i386 --rename-section .data=.hii
    2560 DEFINE GCC_IPF_RC_FLAGS            = -I binary -O elf64-ia64-little -B ia64 --rename-section .data=.hii
    2561 
    2562 DEFINE GCC44_ALL_CC_FLAGS            = -g -fshort-wchar -fno-stack-protector -fno-strict-aliasing -Wall -Werror -Wno-missing-braces -Wno-array-bounds -ffunction-sections -fdata-sections -c -include AutoGen.h -DSTRING_ARRAY_NAME=$(BASE_NAME)Strings
    2563 DEFINE GCC44_IA32_CC_FLAGS           = DEF(GCC44_ALL_CC_FLAGS) -m32 -malign-double -D EFI32
    2564 DEFINE GCC44_X64_CC_FLAGS            = DEF(GCC44_ALL_CC_FLAGS) -m64 "-DEFIAPI=__attribute__((ms_abi))" -DNO_BUILTIN_VA_FUNCS -mno-red-zone -Wno-address -mcmodel=large
     3836DEFINE GCC_IA32_RC_FLAGS           = -I binary -O elf32-i386          -B i386    --rename-section .data=.hii
     3837DEFINE GCC_X64_RC_FLAGS            = -I binary -O elf64-x86-64        -B i386    --rename-section .data=.hii
     3838DEFINE GCC_IPF_RC_FLAGS            = -I binary -O elf64-ia64-little   -B ia64    --rename-section .data=.hii
     3839DEFINE GCC_ARM_RC_FLAGS            = -I binary -O elf32-littlearm     -B arm     --rename-section .data=.hii
     3840DEFINE GCC_AARCH64_RC_FLAGS        = -I binary -O elf64-littleaarch64 -B aarch64 --rename-section .data=.hii
     3841
     3842DEFINE GCC44_ALL_CC_FLAGS            = -g -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-array-bounds -ffunction-sections -fdata-sections -c -include AutoGen.h -DSTRING_ARRAY_NAME=$(BASE_NAME)Strings
     3843DEFINE GCC44_IA32_CC_FLAGS           = DEF(GCC44_ALL_CC_FLAGS) -m32 -malign-double -fno-stack-protector -D EFI32
     3844DEFINE GCC44_X64_CC_FLAGS            = DEF(GCC44_ALL_CC_FLAGS) -m64 -fno-stack-protector "-DEFIAPI=__attribute__((ms_abi))" -DNO_BUILTIN_VA_FUNCS -mno-red-zone -Wno-address -mcmodel=large
    25653845DEFINE GCC44_IA32_X64_DLINK_COMMON   = -nostdlib -n -q --gc-sections --script=$(EDK_TOOLS_PATH)/Scripts/gcc4.4-ld-script
    25663846DEFINE GCC44_IA32_X64_ASLDLINK_FLAGS = DEF(GCC44_IA32_X64_DLINK_COMMON) --entry ReferenceAcpiTable -u ReferenceAcpiTable
     
    25843864DEFINE GCC46_X64_DLINK_FLAGS         = DEF(GCC45_X64_DLINK_FLAGS)
    25853865DEFINE GCC46_ASM_FLAGS               = DEF(GCC45_ASM_FLAGS)
     3866DEFINE GCC46_ARM_ASM_FLAGS           = $(ARCHASM_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ASM_FLAGS) -mlittle-endian
     3867DEFINE GCC46_ARM_CC_FLAGS            = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC44_ALL_CC_FLAGS) DEF(GCC_ARM_CC_FLAGS) -fstack-protector
     3868DEFINE GCC46_ARM_DLINK_FLAGS         = DEF(GCC_ARM_AARCH64_DLINK_COMMON) --oformat=elf32-littlearm
     3869DEFINE GCC46_ARM_ASLDLINK_FLAGS      = DEF(GCC_ARM_AARCH64_ASLDLINK_FLAGS) --oformat=elf32-littlearm
     3870
     3871DEFINE GCC47_IA32_CC_FLAGS           = DEF(GCC46_IA32_CC_FLAGS)
     3872DEFINE GCC47_X64_CC_FLAGS            = DEF(GCC46_X64_CC_FLAGS)
     3873DEFINE GCC47_IA32_X64_DLINK_COMMON   = DEF(GCC46_IA32_X64_DLINK_COMMON)
     3874DEFINE GCC47_IA32_X64_ASLDLINK_FLAGS = DEF(GCC46_IA32_X64_ASLDLINK_FLAGS)
     3875DEFINE GCC47_IA32_X64_DLINK_FLAGS    = DEF(GCC46_IA32_X64_DLINK_FLAGS)
     3876DEFINE GCC47_X64_DLINK_FLAGS         = DEF(GCC46_X64_DLINK_FLAGS)
     3877DEFINE GCC47_ASM_FLAGS               = DEF(GCC46_ASM_FLAGS)
     3878DEFINE GCC47_ARM_ASM_FLAGS           = DEF(GCC46_ARM_ASM_FLAGS)
     3879DEFINE GCC47_AARCH64_ASM_FLAGS       = $(ARCHASM_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ASM_FLAGS) -mlittle-endian
     3880DEFINE GCC47_ARM_CC_FLAGS            = DEF(GCC46_ARM_CC_FLAGS) -mno-unaligned-access
     3881DEFINE GCC47_AARCH64_CC_FLAGS        = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC44_ALL_CC_FLAGS) DEF(GCC_AARCH64_CC_FLAGS)
     3882DEFINE GCC47_ARM_DLINK_FLAGS         = DEF(GCC46_ARM_DLINK_FLAGS)
     3883DEFINE GCC47_AARCH64_DLINK_FLAGS     = DEF(GCC_ARM_AARCH64_DLINK_COMMON)
     3884DEFINE GCC47_ARM_ASLDLINK_FLAGS      = DEF(GCC46_ARM_ASLDLINK_FLAGS)
     3885DEFINE GCC47_AARCH64_ASLDLINK_FLAGS  = DEF(GCC_ARM_AARCH64_ASLDLINK_FLAGS)
     3886
     3887DEFINE GCC48_IA32_CC_FLAGS           = DEF(GCC47_IA32_CC_FLAGS)
     3888DEFINE GCC48_X64_CC_FLAGS            = DEF(GCC47_X64_CC_FLAGS)
     3889DEFINE GCC48_IA32_X64_DLINK_COMMON   = DEF(GCC47_IA32_X64_DLINK_COMMON)
     3890DEFINE GCC48_IA32_X64_ASLDLINK_FLAGS = DEF(GCC47_IA32_X64_ASLDLINK_FLAGS)
     3891DEFINE GCC48_IA32_X64_DLINK_FLAGS    = DEF(GCC47_IA32_X64_DLINK_FLAGS)
     3892DEFINE GCC48_X64_DLINK_FLAGS         = DEF(GCC47_X64_DLINK_FLAGS)
     3893DEFINE GCC48_ASM_FLAGS               = DEF(GCC47_ASM_FLAGS)
     3894DEFINE GCC48_ARM_ASM_FLAGS           = DEF(GCC47_ARM_ASM_FLAGS)
     3895DEFINE GCC48_AARCH64_ASM_FLAGS       = DEF(GCC47_AARCH64_ASM_FLAGS)
     3896DEFINE GCC48_ARM_CC_FLAGS            = DEF(GCC47_ARM_CC_FLAGS)
     3897DEFINE GCC48_AARCH64_CC_FLAGS        = DEF(GCC47_AARCH64_CC_FLAGS)
     3898DEFINE GCC48_ARM_DLINK_FLAGS         = DEF(GCC47_ARM_DLINK_FLAGS)
     3899DEFINE GCC48_AARCH64_DLINK_FLAGS     = DEF(GCC_ARM_AARCH64_DLINK_COMMON)
     3900DEFINE GCC48_ARM_ASLDLINK_FLAGS      = DEF(GCC47_ARM_ASLDLINK_FLAGS)
     3901DEFINE GCC48_AARCH64_ASLDLINK_FLAGS  = DEF(GCC_ARM_AARCH64_ASLDLINK_FLAGS)
     3902
     3903DEFINE GCC49_IA32_CC_FLAGS           = DEF(GCC48_IA32_CC_FLAGS)
     3904DEFINE GCC49_X64_CC_FLAGS            = DEF(GCC48_X64_CC_FLAGS)
     3905DEFINE GCC49_IA32_X64_DLINK_COMMON   = -nostdlib -n -q --gc-sections --script=$(EDK_TOOLS_PATH)/Scripts/gcc4.9-ld-script
     3906DEFINE GCC49_IA32_X64_ASLDLINK_FLAGS = DEF(GCC49_IA32_X64_DLINK_COMMON) --entry ReferenceAcpiTable -u ReferenceAcpiTable
     3907DEFINE GCC49_IA32_X64_DLINK_FLAGS    = DEF(GCC49_IA32_X64_DLINK_COMMON) --entry $(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT) -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map
     3908DEFINE GCC49_X64_DLINK_FLAGS         = DEF(GCC49_IA32_X64_DLINK_FLAGS)  -melf_x86_64 --oformat=elf64-x86-64
     3909DEFINE GCC49_ASM_FLAGS               = DEF(GCC48_ASM_FLAGS)
     3910DEFINE GCC49_ARM_ASM_FLAGS           = DEF(GCC48_ARM_ASM_FLAGS)
     3911DEFINE GCC49_AARCH64_ASM_FLAGS       = DEF(GCC48_AARCH64_ASM_FLAGS)
     3912DEFINE GCC49_ARM_CC_FLAGS            = DEF(GCC48_ARM_CC_FLAGS)
     3913DEFINE GCC49_AARCH64_CC_FLAGS        = DEF(GCC48_AARCH64_CC_FLAGS)
     3914DEFINE GCC49_ARM_DLINK_FLAGS         = DEF(GCC48_ARM_DLINK_FLAGS)
     3915DEFINE GCC49_AARCH64_DLINK_FLAGS     = DEF(GCC_ARM_AARCH64_DLINK_COMMON)
     3916DEFINE GCC49_ARM_ASLDLINK_FLAGS      = DEF(GCC48_ARM_ASLDLINK_FLAGS)
     3917DEFINE GCC49_AARCH64_ASLDLINK_FLAGS  = DEF(GCC_ARM_AARCH64_ASLDLINK_FLAGS)
    25863918
    25873919####################################################################################
     
    26283960*_UNIXGCC_IA32_RC_FLAGS             = DEF(GCC_IA32_RC_FLAGS)
    26293961*_UNIXGCC_IA32_OBJCOPY_FLAGS        =
     3962*_UNIXGCC_IA32_NASM_FLAGS           = -f win32
    26303963
    26313964##################
     
    26473980*_UNIXGCC_X64_RC_FLAGS              = DEF(GCC_X64_RC_FLAGS)
    26483981*_UNIXGCC_X64_OBJCOPY_FLAGS         =
     3982*_UNIXGCC_X64_NASM_FLAGS            = -f win64
    26493983
    26503984##################
     
    26794013*_GCC44_*_*_FAMILY               = GCC
    26804014
    2681 *_GCC44_*_MAKE_PATH                    = make
     4015*_GCC44_*_MAKE_PATH                    = DEF(GCC44_IA32_PREFIX)make
     4016*_GCC44_*_*_DLL                        = ENV(GCC44_DLL)
    26824017*_GCC44_*_ASL_PATH                     = DEF(UNIX_IASL_BIN)
    26834018
     
    26864021*_GCC44_*_ASLCC_FLAGS                  = DEF(GCC_ASLCC_FLAGS)
    26874022*_GCC44_*_VFRPP_FLAGS                  = DEF(GCC_VFRPP_FLAGS)
    2688 *_GCC44_*_APP_FLAGS                    =
     4023*_GCC44_*_APP_FLAGS                    = DEF(GCC_PP_FLAGS)
    26894024*_GCC44_*_ASL_FLAGS                    = DEF(IASL_FLAGS)
    26904025*_GCC44_*_ASL_OUTFLAGS                 = DEF(IASL_OUTFLAGS)
     
    27124047*_GCC44_IA32_RC_FLAGS             = DEF(GCC_IA32_RC_FLAGS)
    27134048*_GCC44_IA32_OBJCOPY_FLAGS        =
     4049*_GCC44_IA32_NASM_FLAGS           = -f elf32
    27144050
    27154051##################
     
    27354071*_GCC44_X64_RC_FLAGS             = DEF(GCC_X64_RC_FLAGS)
    27364072*_GCC44_X64_OBJCOPY_FLAGS        =
     4073*_GCC44_X64_NASM_FLAGS           = -f elf64
    27374074
    27384075####################################################################################
     
    27444081*_GCC45_*_*_FAMILY               = GCC
    27454082
    2746 *_GCC45_*_MAKE_PATH                    = make
     4083*_GCC45_*_MAKE_PATH                    = DEF(GCC45_IA32_PREFIX)make
     4084*_GCC45_*_*_DLL                        = ENV(GCC45_DLL)
    27474085*_GCC45_*_ASL_PATH                     = DEF(UNIX_IASL_BIN)
    27484086
     
    27774115*_GCC45_IA32_RC_FLAGS             = DEF(GCC_IA32_RC_FLAGS)
    27784116*_GCC45_IA32_OBJCOPY_FLAGS        =
     4117*_GCC45_IA32_NASM_FLAGS           = -f elf32
    27794118
    27804119##################
     
    28004139*_GCC45_X64_RC_FLAGS             = DEF(GCC_X64_RC_FLAGS)
    28014140*_GCC45_X64_OBJCOPY_FLAGS        =
     4141*_GCC45_X64_NASM_FLAGS           = -f elf64
    28024142
    28034143####################################################################################
     
    28094149*_GCC46_*_*_FAMILY               = GCC
    28104150
    2811 *_GCC46_*_MAKE_PATH                    = make
     4151*_GCC46_*_MAKE_PATH                    = DEF(GCC46_IA32_PREFIX)make
     4152*_GCC46_*_*_DLL                        = ENV(GCC46_DLL)
    28124153*_GCC46_*_ASL_PATH                     = DEF(UNIX_IASL_BIN)
    28134154
     
    28424183*_GCC46_IA32_RC_FLAGS             = DEF(GCC_IA32_RC_FLAGS)
    28434184*_GCC46_IA32_OBJCOPY_FLAGS        =
     4185*_GCC46_IA32_NASM_FLAGS           = -f elf32
    28444186
    28454187##################
     
    28654207*_GCC46_X64_RC_FLAGS             = DEF(GCC_X64_RC_FLAGS)
    28664208*_GCC46_X64_OBJCOPY_FLAGS        =
     4209*_GCC46_X64_NASM_FLAGS           = -f elf64
     4210
     4211##################
     4212# GCC46 ARM definitions
     4213##################
     4214*_GCC46_ARM_OBJCOPY_PATH         = echo
     4215*_GCC46_ARM_CC_PATH              = ENV(GCC46_ARM_PREFIX)gcc
     4216*_GCC46_ARM_SLINK_PATH           = ENV(GCC46_ARM_PREFIX)ar
     4217*_GCC46_ARM_DLINK_PATH           = ENV(GCC46_ARM_PREFIX)ld
     4218*_GCC46_ARM_ASLDLINK_PATH        = ENV(GCC46_ARM_PREFIX)ld
     4219*_GCC46_ARM_ASM_PATH             = ENV(GCC46_ARM_PREFIX)gcc
     4220*_GCC46_ARM_PP_PATH              = ENV(GCC46_ARM_PREFIX)gcc
     4221*_GCC46_ARM_VFRPP_PATH           = ENV(GCC46_ARM_PREFIX)gcc
     4222*_GCC46_ARM_ASLCC_PATH           = ENV(GCC46_ARM_PREFIX)gcc
     4223*_GCC46_ARM_ASLPP_PATH           = ENV(GCC46_ARM_PREFIX)gcc
     4224*_GCC46_ARM_RC_PATH              = ENV(GCC46_ARM_PREFIX)objcopy
     4225
     4226*_GCC46_ARM_ARCHCC_FLAGS         =
     4227*_GCC46_ARM_PLATFORM_FLAGS       = -march=armv7-a
     4228
     4229*_GCC46_ARM_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS)
     4230*_GCC46_ARM_ASLDLINK_FLAGS       = DEF(GCC46_ARM_ASLDLINK_FLAGS)
     4231*_GCC46_ARM_ASM_FLAGS            = DEF(GCC46_ARM_ASM_FLAGS)
     4232*_GCC46_ARM_DLINK_FLAGS          = DEF(GCC46_ARM_DLINK_FLAGS)
     4233*_GCC46_ARM_PLATFORM_FLAGS       = -march=armv7-a
     4234*_GCC46_ARM_PP_FLAGS             = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_PP_FLAGS)
     4235*_GCC46_ARM_RC_FLAGS             = DEF(GCC_ARM_RC_FLAGS)
     4236*_GCC46_ARM_VFRPP_FLAGS          = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_VFRPP_FLAGS)
     4237
     4238  DEBUG_GCC46_ARM_CC_FLAGS       = DEF(GCC46_ARM_CC_FLAGS) -O0
     4239RELEASE_GCC46_ARM_CC_FLAGS       = DEF(GCC46_ARM_CC_FLAGS) -Wno-unused-but-set-variable
     4240
     4241####################################################################################
     4242#
     4243# GCC 4.7 - This configuration is used to compile under Linux to produce
     4244#           PE/COFF binaries using GCC 4.7.
     4245#
     4246####################################################################################
     4247*_GCC47_*_*_FAMILY               = GCC
     4248
     4249*_GCC47_*_MAKE_PATH                    = DEF(GCC47_IA32_PREFIX)make
     4250*_GCC47_*_*_DLL                        = ENV(GCC47_DLL)
     4251*_GCC47_*_ASL_PATH                     = DEF(UNIX_IASL_BIN)
     4252
     4253*_GCC47_*_PP_FLAGS                     = DEF(GCC_PP_FLAGS)
     4254*_GCC47_*_ASLPP_FLAGS                  = DEF(GCC_ASLPP_FLAGS)
     4255*_GCC47_*_ASLCC_FLAGS                  = DEF(GCC_ASLCC_FLAGS)
     4256*_GCC47_*_VFRPP_FLAGS                  = DEF(GCC_VFRPP_FLAGS)
     4257*_GCC47_*_APP_FLAGS                    =
     4258*_GCC47_*_ASL_FLAGS                    = DEF(IASL_FLAGS)
     4259*_GCC47_*_ASL_OUTFLAGS                 = DEF(IASL_OUTFLAGS)
     4260
     4261##################
     4262# GCC47 IA32 definitions
     4263##################
     4264*_GCC47_IA32_OBJCOPY_PATH         = DEF(GCC47_IA32_PREFIX)objcopy
     4265*_GCC47_IA32_CC_PATH              = DEF(GCC47_IA32_PREFIX)gcc
     4266*_GCC47_IA32_SLINK_PATH           = DEF(GCC47_IA32_PREFIX)ar
     4267*_GCC47_IA32_DLINK_PATH           = DEF(GCC47_IA32_PREFIX)ld
     4268*_GCC47_IA32_ASLDLINK_PATH        = DEF(GCC47_IA32_PREFIX)ld
     4269*_GCC47_IA32_ASM_PATH             = DEF(GCC47_IA32_PREFIX)gcc
     4270*_GCC47_IA32_PP_PATH              = DEF(GCC47_IA32_PREFIX)gcc
     4271*_GCC47_IA32_VFRPP_PATH           = DEF(GCC47_IA32_PREFIX)gcc
     4272*_GCC47_IA32_ASLCC_PATH           = DEF(GCC47_IA32_PREFIX)gcc
     4273*_GCC47_IA32_ASLPP_PATH           = DEF(GCC47_IA32_PREFIX)gcc
     4274*_GCC47_IA32_RC_PATH              = DEF(GCC47_IA32_PREFIX)objcopy
     4275
     4276*_GCC47_IA32_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS) -m32
     4277*_GCC47_IA32_ASLDLINK_FLAGS       = DEF(GCC47_IA32_X64_ASLDLINK_FLAGS) -m elf_i386
     4278*_GCC47_IA32_ASM_FLAGS            = DEF(GCC47_ASM_FLAGS) -m32 -march=i386
     4279*_GCC47_IA32_CC_FLAGS             = DEF(GCC47_IA32_CC_FLAGS) -Os
     4280*_GCC47_IA32_DLINK_FLAGS          = DEF(GCC47_IA32_X64_DLINK_FLAGS) -m elf_i386 --oformat=elf32-i386
     4281*_GCC47_IA32_RC_FLAGS             = DEF(GCC_IA32_RC_FLAGS)
     4282*_GCC47_IA32_OBJCOPY_FLAGS        =
     4283*_GCC47_IA32_NASM_FLAGS           = -f elf32
     4284
     4285##################
     4286# GCC47 X64 definitions
     4287##################
     4288*_GCC47_X64_OBJCOPY_PATH         = DEF(GCC47_X64_PREFIX)objcopy
     4289*_GCC47_X64_CC_PATH              = DEF(GCC47_X64_PREFIX)gcc
     4290*_GCC47_X64_SLINK_PATH           = DEF(GCC47_X64_PREFIX)ar
     4291*_GCC47_X64_DLINK_PATH           = DEF(GCC47_X64_PREFIX)ld
     4292*_GCC47_X64_ASLDLINK_PATH        = DEF(GCC47_X64_PREFIX)ld
     4293*_GCC47_X64_ASM_PATH             = DEF(GCC47_X64_PREFIX)gcc
     4294*_GCC47_X64_PP_PATH              = DEF(GCC47_X64_PREFIX)gcc
     4295*_GCC47_X64_VFRPP_PATH           = DEF(GCC47_X64_PREFIX)gcc
     4296*_GCC47_X64_ASLCC_PATH           = DEF(GCC47_X64_PREFIX)gcc
     4297*_GCC47_X64_ASLPP_PATH           = DEF(GCC47_X64_PREFIX)gcc
     4298*_GCC47_X64_RC_PATH              = DEF(GCC47_X64_PREFIX)objcopy
     4299
     4300*_GCC47_X64_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS) -m64
     4301*_GCC47_X64_ASLDLINK_FLAGS       = DEF(GCC47_IA32_X64_ASLDLINK_FLAGS) -m elf_x86_64
     4302*_GCC47_X64_ASM_FLAGS            = DEF(GCC47_ASM_FLAGS) -m64
     4303*_GCC47_X64_CC_FLAGS             = DEF(GCC47_X64_CC_FLAGS)
     4304*_GCC47_X64_DLINK_FLAGS          = DEF(GCC47_X64_DLINK_FLAGS)
     4305*_GCC47_X64_RC_FLAGS             = DEF(GCC_X64_RC_FLAGS)
     4306*_GCC47_X64_OBJCOPY_FLAGS        =
     4307*_GCC47_X64_NASM_FLAGS           = -f elf64
     4308
     4309##################
     4310# GCC47 ARM definitions
     4311##################
     4312*_GCC47_ARM_CC_PATH              = ENV(GCC47_ARM_PREFIX)gcc
     4313*_GCC47_ARM_SLINK_PATH           = ENV(GCC47_ARM_PREFIX)ar
     4314*_GCC47_ARM_DLINK_PATH           = ENV(GCC47_ARM_PREFIX)ld
     4315*_GCC47_ARM_ASLDLINK_PATH        = ENV(GCC47_ARM_PREFIX)ld
     4316*_GCC47_ARM_ASM_PATH             = ENV(GCC47_ARM_PREFIX)gcc
     4317*_GCC47_ARM_PP_PATH              = ENV(GCC47_ARM_PREFIX)gcc
     4318*_GCC47_ARM_VFRPP_PATH           = ENV(GCC47_ARM_PREFIX)gcc
     4319*_GCC47_ARM_ASLCC_PATH           = ENV(GCC47_ARM_PREFIX)gcc
     4320*_GCC47_ARM_ASLPP_PATH           = ENV(GCC47_ARM_PREFIX)gcc
     4321*_GCC47_ARM_RC_PATH              = ENV(GCC47_ARM_PREFIX)objcopy
     4322
     4323*_GCC47_ARM_ARCHCC_FLAGS         =
     4324*_GCC47_ARM_PLATFORM_FLAGS       = -march=armv7-a
     4325
     4326*_GCC47_ARM_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS)
     4327*_GCC47_ARM_ASLDLINK_FLAGS       = DEF(GCC47_ARM_ASLDLINK_FLAGS)
     4328*_GCC47_ARM_ASM_FLAGS            = DEF(GCC47_ARM_ASM_FLAGS)
     4329*_GCC47_ARM_DLINK_FLAGS          = DEF(GCC47_ARM_DLINK_FLAGS)
     4330*_GCC47_ARM_PLATFORM_FLAGS       = -march=armv7-a
     4331*_GCC47_ARM_PP_FLAGS             = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_PP_FLAGS)
     4332*_GCC47_ARM_RC_FLAGS             = DEF(GCC_ARM_RC_FLAGS)
     4333*_GCC47_ARM_VFRPP_FLAGS          = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_VFRPP_FLAGS)
     4334
     4335  DEBUG_GCC47_ARM_CC_FLAGS       = DEF(GCC47_ARM_CC_FLAGS) -O0
     4336RELEASE_GCC47_ARM_CC_FLAGS       = DEF(GCC47_ARM_CC_FLAGS) -Wno-unused-but-set-variable
     4337
     4338##################
     4339# GCC47 AARCH64 definitions
     4340##################
     4341*_GCC47_AARCH64_CC_PATH          = ENV(GCC47_AARCH64_PREFIX)gcc
     4342*_GCC47_AARCH64_SLINK_PATH       = ENV(GCC47_AARCH64_PREFIX)ar
     4343*_GCC47_AARCH64_DLINK_PATH       = ENV(GCC47_AARCH64_PREFIX)ld
     4344*_GCC47_AARCH64_ASLDLINK_PATH    = ENV(GCC47_AARCH64_PREFIX)ld
     4345*_GCC47_AARCH64_ASM_PATH         = ENV(GCC47_AARCH64_PREFIX)gcc
     4346*_GCC47_AARCH64_PP_PATH          = ENV(GCC47_AARCH64_PREFIX)gcc
     4347*_GCC47_AARCH64_VFRPP_PATH       = ENV(GCC47_AARCH64_PREFIX)gcc
     4348*_GCC47_AARCH64_ASLCC_PATH       = ENV(GCC47_AARCH64_PREFIX)gcc
     4349*_GCC47_AARCH64_ASLPP_PATH       = ENV(GCC47_AARCH64_PREFIX)gcc
     4350*_GCC47_AARCH64_RC_PATH          = ENV(GCC47_AARCH64_PREFIX)objcopy
     4351
     4352*_GCC47_AARCH64_ASLCC_FLAGS      = DEF(GCC_ASLCC_FLAGS)
     4353*_GCC47_AARCH64_ASLDLINK_FLAGS   = DEF(GCC47_AARCH64_ASLDLINK_FLAGS)
     4354*_GCC47_AARCH64_ASM_FLAGS        = DEF(GCC47_AARCH64_ASM_FLAGS)
     4355*_GCC47_AARCH64_DLINK_FLAGS      = DEF(GCC47_AARCH64_DLINK_FLAGS)
     4356*_GCC47_AARCH64_PLATFORM_FLAGS   =
     4357*_GCC47_AARCH64_PP_FLAGS         = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_PP_FLAGS)
     4358*_GCC47_AARCH64_RC_FLAGS         = DEF(GCC_AARCH64_RC_FLAGS)
     4359*_GCC47_AARCH64_VFRPP_FLAGS      = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_VFRPP_FLAGS)
     4360
     4361  DEBUG_GCC47_AARCH64_CC_FLAGS   = DEF(GCC47_AARCH64_CC_FLAGS) -O0
     4362RELEASE_GCC47_AARCH64_CC_FLAGS   = DEF(GCC47_AARCH64_CC_FLAGS) -Wno-unused-but-set-variable
     4363
     4364####################################################################################
     4365#
     4366# GCC 4.8 - This configuration is used to compile under Linux to produce
     4367#           PE/COFF binaries using GCC 4.8.
     4368#
     4369####################################################################################
     4370*_GCC48_*_*_FAMILY               = GCC
     4371
     4372*_GCC48_*_MAKE_PATH                    = DEF(GCC48_IA32_PREFIX)make
     4373*_GCC48_*_*_DLL                        = ENV(GCC48_DLL)
     4374*_GCC48_*_ASL_PATH                     = DEF(UNIX_IASL_BIN)
     4375
     4376*_GCC48_*_PP_FLAGS                     = DEF(GCC_PP_FLAGS)
     4377*_GCC48_*_ASLPP_FLAGS                  = DEF(GCC_ASLPP_FLAGS)
     4378*_GCC48_*_ASLCC_FLAGS                  = DEF(GCC_ASLCC_FLAGS)
     4379*_GCC48_*_VFRPP_FLAGS                  = DEF(GCC_VFRPP_FLAGS)
     4380*_GCC48_*_APP_FLAGS                    =
     4381*_GCC48_*_ASL_FLAGS                    = DEF(IASL_FLAGS)
     4382*_GCC48_*_ASL_OUTFLAGS                 = DEF(IASL_OUTFLAGS)
     4383
     4384##################
     4385# GCC48 IA32 definitions
     4386##################
     4387*_GCC48_IA32_OBJCOPY_PATH         = DEF(GCC48_IA32_PREFIX)objcopy
     4388*_GCC48_IA32_CC_PATH              = DEF(GCC48_IA32_PREFIX)gcc
     4389*_GCC48_IA32_SLINK_PATH           = DEF(GCC48_IA32_PREFIX)ar
     4390*_GCC48_IA32_DLINK_PATH           = DEF(GCC48_IA32_PREFIX)ld
     4391*_GCC48_IA32_ASLDLINK_PATH        = DEF(GCC48_IA32_PREFIX)ld
     4392*_GCC48_IA32_ASM_PATH             = DEF(GCC48_IA32_PREFIX)gcc
     4393*_GCC48_IA32_PP_PATH              = DEF(GCC48_IA32_PREFIX)gcc
     4394*_GCC48_IA32_VFRPP_PATH           = DEF(GCC48_IA32_PREFIX)gcc
     4395*_GCC48_IA32_ASLCC_PATH           = DEF(GCC48_IA32_PREFIX)gcc
     4396*_GCC48_IA32_ASLPP_PATH           = DEF(GCC48_IA32_PREFIX)gcc
     4397*_GCC48_IA32_RC_PATH              = DEF(GCC48_IA32_PREFIX)objcopy
     4398
     4399*_GCC48_IA32_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS) -m32
     4400*_GCC48_IA32_ASLDLINK_FLAGS       = DEF(GCC48_IA32_X64_ASLDLINK_FLAGS) -m elf_i386
     4401*_GCC48_IA32_ASM_FLAGS            = DEF(GCC48_ASM_FLAGS) -m32 -march=i386
     4402*_GCC48_IA32_CC_FLAGS             = DEF(GCC48_IA32_CC_FLAGS) -Os
     4403*_GCC48_IA32_DLINK_FLAGS          = DEF(GCC48_IA32_X64_DLINK_FLAGS) -m elf_i386 --oformat=elf32-i386
     4404*_GCC48_IA32_RC_FLAGS             = DEF(GCC_IA32_RC_FLAGS)
     4405*_GCC48_IA32_OBJCOPY_FLAGS        =
     4406*_GCC48_IA32_NASM_FLAGS           = -f elf32
     4407
     4408##################
     4409# GCC48 X64 definitions
     4410##################
     4411*_GCC48_X64_OBJCOPY_PATH         = DEF(GCC48_X64_PREFIX)objcopy
     4412*_GCC48_X64_CC_PATH              = DEF(GCC48_X64_PREFIX)gcc
     4413*_GCC48_X64_SLINK_PATH           = DEF(GCC48_X64_PREFIX)ar
     4414*_GCC48_X64_DLINK_PATH           = DEF(GCC48_X64_PREFIX)ld
     4415*_GCC48_X64_ASLDLINK_PATH        = DEF(GCC48_X64_PREFIX)ld
     4416*_GCC48_X64_ASM_PATH             = DEF(GCC48_X64_PREFIX)gcc
     4417*_GCC48_X64_PP_PATH              = DEF(GCC48_X64_PREFIX)gcc
     4418*_GCC48_X64_VFRPP_PATH           = DEF(GCC48_X64_PREFIX)gcc
     4419*_GCC48_X64_ASLCC_PATH           = DEF(GCC48_X64_PREFIX)gcc
     4420*_GCC48_X64_ASLPP_PATH           = DEF(GCC48_X64_PREFIX)gcc
     4421*_GCC48_X64_RC_PATH              = DEF(GCC48_X64_PREFIX)objcopy
     4422
     4423*_GCC48_X64_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS) -m64
     4424*_GCC48_X64_ASLDLINK_FLAGS       = DEF(GCC48_IA32_X64_ASLDLINK_FLAGS) -m elf_x86_64
     4425*_GCC48_X64_ASM_FLAGS            = DEF(GCC48_ASM_FLAGS) -m64
     4426*_GCC48_X64_CC_FLAGS             = DEF(GCC48_X64_CC_FLAGS)
     4427*_GCC48_X64_DLINK_FLAGS          = DEF(GCC48_X64_DLINK_FLAGS)
     4428*_GCC48_X64_RC_FLAGS             = DEF(GCC_X64_RC_FLAGS)
     4429*_GCC48_X64_OBJCOPY_FLAGS        =
     4430*_GCC48_X64_NASM_FLAGS           = -f elf64
     4431
     4432##################
     4433# GCC48 ARM definitions
     4434##################
     4435*_GCC48_ARM_CC_PATH              = ENV(GCC48_ARM_PREFIX)gcc
     4436*_GCC48_ARM_SLINK_PATH           = ENV(GCC48_ARM_PREFIX)ar
     4437*_GCC48_ARM_DLINK_PATH           = ENV(GCC48_ARM_PREFIX)ld
     4438*_GCC48_ARM_ASLDLINK_PATH        = ENV(GCC48_ARM_PREFIX)ld
     4439*_GCC48_ARM_ASM_PATH             = ENV(GCC48_ARM_PREFIX)gcc
     4440*_GCC48_ARM_PP_PATH              = ENV(GCC48_ARM_PREFIX)gcc
     4441*_GCC48_ARM_VFRPP_PATH           = ENV(GCC48_ARM_PREFIX)gcc
     4442*_GCC48_ARM_ASLCC_PATH           = ENV(GCC48_ARM_PREFIX)gcc
     4443*_GCC48_ARM_ASLPP_PATH           = ENV(GCC48_ARM_PREFIX)gcc
     4444*_GCC48_ARM_RC_PATH              = ENV(GCC48_ARM_PREFIX)objcopy
     4445
     4446*_GCC48_ARM_ARCHCC_FLAGS         = -mthumb
     4447*_GCC48_ARM_PLATFORM_FLAGS       = -march=armv7-a
     4448
     4449*_GCC48_ARM_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS)
     4450*_GCC48_ARM_ASLDLINK_FLAGS       = DEF(GCC48_ARM_ASLDLINK_FLAGS)
     4451*_GCC48_ARM_ASM_FLAGS            = DEF(GCC48_ARM_ASM_FLAGS)
     4452*_GCC48_ARM_DLINK_FLAGS          = DEF(GCC48_ARM_DLINK_FLAGS)
     4453*_GCC48_ARM_PLATFORM_FLAGS       = -march=armv7-a
     4454*_GCC48_ARM_PP_FLAGS             = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_PP_FLAGS)
     4455*_GCC48_ARM_RC_FLAGS             = DEF(GCC_ARM_RC_FLAGS)
     4456*_GCC48_ARM_VFRPP_FLAGS          = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_VFRPP_FLAGS)
     4457
     4458  DEBUG_GCC48_ARM_CC_FLAGS       = DEF(GCC48_ARM_CC_FLAGS) -O0
     4459RELEASE_GCC48_ARM_CC_FLAGS       = DEF(GCC48_ARM_CC_FLAGS) -Wno-unused-but-set-variable
     4460
     4461##################
     4462# GCC48 AARCH64 definitions
     4463##################
     4464*_GCC48_AARCH64_CC_PATH          = ENV(GCC48_AARCH64_PREFIX)gcc
     4465*_GCC48_AARCH64_SLINK_PATH       = ENV(GCC48_AARCH64_PREFIX)ar
     4466*_GCC48_AARCH64_DLINK_PATH       = ENV(GCC48_AARCH64_PREFIX)ld
     4467*_GCC48_AARCH64_ASLDLINK_PATH    = ENV(GCC48_AARCH64_PREFIX)ld
     4468*_GCC48_AARCH64_ASM_PATH         = ENV(GCC48_AARCH64_PREFIX)gcc
     4469*_GCC48_AARCH64_PP_PATH          = ENV(GCC48_AARCH64_PREFIX)gcc
     4470*_GCC48_AARCH64_VFRPP_PATH       = ENV(GCC48_AARCH64_PREFIX)gcc
     4471*_GCC48_AARCH64_ASLCC_PATH       = ENV(GCC48_AARCH64_PREFIX)gcc
     4472*_GCC48_AARCH64_ASLPP_PATH       = ENV(GCC48_AARCH64_PREFIX)gcc
     4473*_GCC48_AARCH64_RC_PATH          = ENV(GCC48_AARCH64_PREFIX)objcopy
     4474
     4475*_GCC48_AARCH64_ASLCC_FLAGS      = DEF(GCC_ASLCC_FLAGS)
     4476*_GCC48_AARCH64_ASLDLINK_FLAGS   = DEF(GCC48_AARCH64_ASLDLINK_FLAGS)
     4477*_GCC48_AARCH64_ASM_FLAGS        = DEF(GCC48_AARCH64_ASM_FLAGS)
     4478*_GCC48_AARCH64_DLINK_FLAGS      = DEF(GCC48_AARCH64_DLINK_FLAGS)
     4479*_GCC48_AARCH64_PLATFORM_FLAGS   =
     4480*_GCC48_AARCH64_PP_FLAGS         = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_PP_FLAGS)
     4481*_GCC48_AARCH64_RC_FLAGS         = DEF(GCC_AARCH64_RC_FLAGS)
     4482*_GCC48_AARCH64_VFRPP_FLAGS      = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_VFRPP_FLAGS)
     4483
     4484  DEBUG_GCC48_AARCH64_CC_FLAGS   = DEF(GCC48_AARCH64_CC_FLAGS) -O0
     4485RELEASE_GCC48_AARCH64_CC_FLAGS   = DEF(GCC48_AARCH64_CC_FLAGS) -Wno-unused-but-set-variable
     4486
     4487####################################################################################
     4488#
     4489# GCC 4.9 - This configuration is used to compile under Linux to produce
     4490#           PE/COFF binaries using GCC 4.9.
     4491#
     4492####################################################################################
     4493*_GCC49_*_*_FAMILY               = GCC
     4494
     4495*_GCC49_*_MAKE_PATH                    = DEF(GCC49_IA32_PREFIX)make
     4496*_GCC49_*_*_DLL                        = ENV(GCC49_DLL)
     4497*_GCC49_*_ASL_PATH                     = DEF(UNIX_IASL_BIN)
     4498
     4499*_GCC49_*_PP_FLAGS                     = DEF(GCC_PP_FLAGS)
     4500*_GCC49_*_ASLPP_FLAGS                  = DEF(GCC_ASLPP_FLAGS)
     4501*_GCC49_*_ASLCC_FLAGS                  = DEF(GCC_ASLCC_FLAGS)
     4502*_GCC49_*_VFRPP_FLAGS                  = DEF(GCC_VFRPP_FLAGS)
     4503*_GCC49_*_APP_FLAGS                    =
     4504*_GCC49_*_ASL_FLAGS                    = DEF(IASL_FLAGS)
     4505*_GCC49_*_ASL_OUTFLAGS                 = DEF(IASL_OUTFLAGS)
     4506
     4507##################
     4508# GCC49 IA32 definitions
     4509##################
     4510*_GCC49_IA32_OBJCOPY_PATH         = DEF(GCC49_IA32_PREFIX)objcopy
     4511*_GCC49_IA32_CC_PATH              = DEF(GCC49_IA32_PREFIX)gcc
     4512*_GCC49_IA32_SLINK_PATH           = DEF(GCC49_IA32_PREFIX)ar
     4513*_GCC49_IA32_DLINK_PATH           = DEF(GCC49_IA32_PREFIX)ld
     4514*_GCC49_IA32_ASLDLINK_PATH        = DEF(GCC49_IA32_PREFIX)ld
     4515*_GCC49_IA32_ASM_PATH             = DEF(GCC49_IA32_PREFIX)gcc
     4516*_GCC49_IA32_PP_PATH              = DEF(GCC49_IA32_PREFIX)gcc
     4517*_GCC49_IA32_VFRPP_PATH           = DEF(GCC49_IA32_PREFIX)gcc
     4518*_GCC49_IA32_ASLCC_PATH           = DEF(GCC49_IA32_PREFIX)gcc
     4519*_GCC49_IA32_ASLPP_PATH           = DEF(GCC49_IA32_PREFIX)gcc
     4520*_GCC49_IA32_RC_PATH              = DEF(GCC49_IA32_PREFIX)objcopy
     4521
     4522*_GCC49_IA32_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS) -m32
     4523*_GCC49_IA32_ASLDLINK_FLAGS       = DEF(GCC49_IA32_X64_ASLDLINK_FLAGS) -m elf_i386
     4524*_GCC49_IA32_ASM_FLAGS            = DEF(GCC49_ASM_FLAGS) -m32 -march=i386
     4525*_GCC49_IA32_CC_FLAGS             = DEF(GCC49_IA32_CC_FLAGS) -Os
     4526*_GCC49_IA32_DLINK_FLAGS          = DEF(GCC49_IA32_X64_DLINK_FLAGS) -m elf_i386 --oformat=elf32-i386
     4527*_GCC49_IA32_RC_FLAGS             = DEF(GCC_IA32_RC_FLAGS)
     4528*_GCC49_IA32_OBJCOPY_FLAGS        =
     4529*_GCC49_IA32_NASM_FLAGS           = -f elf32
     4530
     4531##################
     4532# GCC49 X64 definitions
     4533##################
     4534*_GCC49_X64_OBJCOPY_PATH         = DEF(GCC49_X64_PREFIX)objcopy
     4535*_GCC49_X64_CC_PATH              = DEF(GCC49_X64_PREFIX)gcc
     4536*_GCC49_X64_SLINK_PATH           = DEF(GCC49_X64_PREFIX)ar
     4537*_GCC49_X64_DLINK_PATH           = DEF(GCC49_X64_PREFIX)ld
     4538*_GCC49_X64_ASLDLINK_PATH        = DEF(GCC49_X64_PREFIX)ld
     4539*_GCC49_X64_ASM_PATH             = DEF(GCC49_X64_PREFIX)gcc
     4540*_GCC49_X64_PP_PATH              = DEF(GCC49_X64_PREFIX)gcc
     4541*_GCC49_X64_VFRPP_PATH           = DEF(GCC49_X64_PREFIX)gcc
     4542*_GCC49_X64_ASLCC_PATH           = DEF(GCC49_X64_PREFIX)gcc
     4543*_GCC49_X64_ASLPP_PATH           = DEF(GCC49_X64_PREFIX)gcc
     4544*_GCC49_X64_RC_PATH              = DEF(GCC49_X64_PREFIX)objcopy
     4545
     4546*_GCC49_X64_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS) -m64
     4547*_GCC49_X64_ASLDLINK_FLAGS       = DEF(GCC49_IA32_X64_ASLDLINK_FLAGS) -m elf_x86_64
     4548*_GCC49_X64_ASM_FLAGS            = DEF(GCC49_ASM_FLAGS) -m64
     4549*_GCC49_X64_CC_FLAGS             = DEF(GCC49_X64_CC_FLAGS)
     4550*_GCC49_X64_DLINK_FLAGS          = DEF(GCC49_X64_DLINK_FLAGS)
     4551*_GCC49_X64_RC_FLAGS             = DEF(GCC_X64_RC_FLAGS)
     4552*_GCC49_X64_OBJCOPY_FLAGS        =
     4553*_GCC49_X64_NASM_FLAGS           = -f elf64
     4554
     4555##################
     4556# GCC49 ARM definitions
     4557##################
     4558*_GCC49_ARM_CC_PATH              = ENV(GCC49_ARM_PREFIX)gcc
     4559*_GCC49_ARM_SLINK_PATH           = ENV(GCC49_ARM_PREFIX)ar
     4560*_GCC49_ARM_DLINK_PATH           = ENV(GCC49_ARM_PREFIX)ld
     4561*_GCC49_ARM_ASLDLINK_PATH        = ENV(GCC49_ARM_PREFIX)ld
     4562*_GCC49_ARM_ASM_PATH             = ENV(GCC49_ARM_PREFIX)gcc
     4563*_GCC49_ARM_PP_PATH              = ENV(GCC49_ARM_PREFIX)gcc
     4564*_GCC49_ARM_VFRPP_PATH           = ENV(GCC49_ARM_PREFIX)gcc
     4565*_GCC49_ARM_ASLCC_PATH           = ENV(GCC49_ARM_PREFIX)gcc
     4566*_GCC49_ARM_ASLPP_PATH           = ENV(GCC49_ARM_PREFIX)gcc
     4567*_GCC49_ARM_RC_PATH              = ENV(GCC49_ARM_PREFIX)objcopy
     4568
     4569*_GCC49_ARM_ARCHCC_FLAGS         = -mthumb
     4570*_GCC49_ARM_PLATFORM_FLAGS       = -march=armv7-a
     4571
     4572*_GCC49_ARM_ASLCC_FLAGS          = DEF(GCC_ASLCC_FLAGS)
     4573*_GCC49_ARM_ASLDLINK_FLAGS       = DEF(GCC49_ARM_ASLDLINK_FLAGS)
     4574*_GCC49_ARM_ASM_FLAGS            = DEF(GCC49_ARM_ASM_FLAGS)
     4575*_GCC49_ARM_DLINK_FLAGS          = DEF(GCC49_ARM_DLINK_FLAGS)
     4576*_GCC49_ARM_PLATFORM_FLAGS       = -march=armv7-a
     4577*_GCC49_ARM_PP_FLAGS             = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_PP_FLAGS)
     4578*_GCC49_ARM_RC_FLAGS             = DEF(GCC_ARM_RC_FLAGS)
     4579*_GCC49_ARM_VFRPP_FLAGS          = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_VFRPP_FLAGS)
     4580
     4581  DEBUG_GCC49_ARM_CC_FLAGS       = DEF(GCC49_ARM_CC_FLAGS) -O0
     4582RELEASE_GCC49_ARM_CC_FLAGS       = DEF(GCC49_ARM_CC_FLAGS) -Wno-unused-but-set-variable
     4583
     4584##################
     4585# GCC49 AARCH64 definitions
     4586##################
     4587*_GCC49_AARCH64_CC_PATH          = ENV(GCC49_AARCH64_PREFIX)gcc
     4588*_GCC49_AARCH64_SLINK_PATH       = ENV(GCC49_AARCH64_PREFIX)ar
     4589*_GCC49_AARCH64_DLINK_PATH       = ENV(GCC49_AARCH64_PREFIX)ld
     4590*_GCC49_AARCH64_ASLDLINK_PATH    = ENV(GCC49_AARCH64_PREFIX)ld
     4591*_GCC49_AARCH64_ASM_PATH         = ENV(GCC49_AARCH64_PREFIX)gcc
     4592*_GCC49_AARCH64_PP_PATH          = ENV(GCC49_AARCH64_PREFIX)gcc
     4593*_GCC49_AARCH64_VFRPP_PATH       = ENV(GCC49_AARCH64_PREFIX)gcc
     4594*_GCC49_AARCH64_ASLCC_PATH       = ENV(GCC49_AARCH64_PREFIX)gcc
     4595*_GCC49_AARCH64_ASLPP_PATH       = ENV(GCC49_AARCH64_PREFIX)gcc
     4596*_GCC49_AARCH64_RC_PATH          = ENV(GCC49_AARCH64_PREFIX)objcopy
     4597
     4598*_GCC49_AARCH64_ASLCC_FLAGS      = DEF(GCC_ASLCC_FLAGS)
     4599*_GCC49_AARCH64_ASLDLINK_FLAGS   = DEF(GCC49_AARCH64_ASLDLINK_FLAGS)
     4600*_GCC49_AARCH64_ASM_FLAGS        = DEF(GCC49_AARCH64_ASM_FLAGS)
     4601*_GCC49_AARCH64_DLINK_FLAGS      = DEF(GCC49_AARCH64_DLINK_FLAGS)
     4602*_GCC49_AARCH64_PLATFORM_FLAGS   =
     4603*_GCC49_AARCH64_PP_FLAGS         = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_PP_FLAGS)
     4604*_GCC49_AARCH64_RC_FLAGS         = DEF(GCC_AARCH64_RC_FLAGS)
     4605*_GCC49_AARCH64_VFRPP_FLAGS      = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_VFRPP_FLAGS)
     4606
     4607  DEBUG_GCC49_AARCH64_CC_FLAGS   = DEF(GCC49_AARCH64_CC_FLAGS) -O0
     4608RELEASE_GCC49_AARCH64_CC_FLAGS   = DEF(GCC49_AARCH64_CC_FLAGS) -Wno-unused-but-set-variable
    28674609
    28684610####################################################################################
     
    29124654*_CYGGCC_IA32_RC_FLAGS           = DEF(GCC_IA32_RC_FLAGS)
    29134655*_CYGGCC_IA32_OBJCOPY_FLAGS      =
     4656*_CYGGCC_IA32_NASM_FLAGS         = -f win32
    29144657
    29154658##################
     
    29324675*_CYGGCC_X64_RC_FLAGS            = DEF(GCC_X64_RC_FLAGS)
    29334676*_CYGGCC_X64_OBJCOPY_FLAGS       =
     4677*_CYGGCC_X64_NASM_FLAGS          = -f win64
    29344678
    29354679##################
     
    31074851*_ELFGCC_IA32_PP_PATH               = DEF(ELFGCC_BIN)/gcc
    31084852*_ELFGCC_IA32_VFRPP_PATH            = DEF(ELFGCC_BIN)/gcc
    3109 *_ELFGCC32_IA32_ASLCC_PATH          = DEF(ELFGCC_BIN)/gcc
    3110 *_ELFGCC32_IA32_ASLPP_PATH          = DEF(ELFGCC_BIN)/gcc
    3111 *_ELFGCC32_IA32_ASLDLINK_PATH       = DEF(ELFGCC_BIN)/ld
     4853*_ELFGCC_IA32_ASLCC_PATH            = DEF(ELFGCC_BIN)/gcc
     4854*_ELFGCC_IA32_ASLPP_PATH            = DEF(ELFGCC_BIN)/gcc
     4855*_ELFGCC_IA32_ASLDLINK_PATH         = DEF(ELFGCC_BIN)/ld
    31124856*_ELFGCC_IA32_RC_PATH               = DEF(ELFGCC_BIN)/objcopy
    31134857
     
    31214865*_ELFGCC_IA32_RC_FLAGS              = DEF(GCC_IA32_RC_FLAGS)
    31224866*_ELFGCC_IA32_OBJCOPY_FLAGS         =
     4867*_ELFGCC_IA32_NASM_FLAGS            = -f elf32
    31234868
    31244869##################
     
    31364881*_ELFGCC_X64_RC_PATH               = DEF(ELFGCC_BIN)/objcopy
    31374882
    3138 *_ELFGCC_X64_CC_FLAGS              = -Os -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-missing-braces -Wno-address -Wno-array-bounds -c -include AutoGen.h -D_EFI_P64
     4883*_ELFGCC_X64_CC_FLAGS              = -Os -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-address -Wno-array-bounds -c -include AutoGen.h -D_EFI_P64
    31394884*_ELFGCC_X64_DLINK_FLAGS           = -nostdlib --shared --entry $(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT) -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map
    31404885*_ELFGCC_X64_SLINK_FLAGS           =
     
    31434888*_ELFGCC_X64_VFRPP_FLAGS           = -x c -E -P -DVFRCOMPILE --include $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h
    31444889*_ELFGCC_X64_RC_FLAGS              = DEF(GCC_X64_RC_FLAGS)
     4890*_ELFGCC_X64_NASM_FLAGS            = -f elf64
    31454891
    31464892##################
     
    32214967RELEASE_ICC_IA32_ASM_FLAGS               = /nologo /c /WX /W3 /Zd
    32224968NOOPT_ICC_IA32_ASM_FLAGS                 = /nologo /c /WX /W3 /Zd /Zi
     4969  DEBUG_ICC_IA32_NASM_FLAGS              = -Ox -f win32 -g
     4970RELEASE_ICC_IA32_NASM_FLAGS              = -Ox -f win32
     4971NOOPT_ICC_IA32_NASM_FLAGS                = -O0 -f win32 -g
    32234972
    32244973      *_ICC_IA32_SLINK_FLAGS             = /nologo
     
    32515000RELEASE_ICC_X64_ASM_FLAGS                = /nologo /c /WX /W3 /Cx /Zd
    32525001NOOPT_ICC_X64_ASM_FLAGS                  = /nologo /c /WX /W3 /Cx /Zd /Zi
     5002
     5003  DEBUG_ICC_X64_NASM_FLAGS               = -Ox -f win64 -g
     5004RELEASE_ICC_X64_NASM_FLAGS               = -Ox -f win64
     5005NOOPT_ICC_X64_NASM_FLAGS                 = -O0 -f win64 -g
    32535006
    32545007  DEBUG_ICC_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
     
    33665119NOOPT_ICCxASL_IA32_ASM_FLAGS                 = /nologo /c /WX /W3 /Zd /Zi
    33675120
     5121  DEBUG_ICCxASL_IA32_NASM_FLAGS              = -Ox -f win32 -g
     5122RELEASE_ICCxASL_IA32_NASM_FLAGS              = -Ox -f win32
     5123NOOPT_ICCxASL_IA32_NASM_FLAGS                = -O0 -f win32 -g
     5124
    33685125      *_ICCxASL_IA32_SLINK_FLAGS             = /nologo
    33695126  DEBUG_ICCxASL_IA32_DLINK_FLAGS             = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
     
    33955152RELEASE_ICCxASL_X64_ASM_FLAGS                = /nologo /c /WX /W3 /Cx /Zd
    33965153NOOPT_ICCxASL_X64_ASM_FLAGS                  = /nologo /c /WX /W3 /Cx /Zd /Zi
     5154
     5155  DEBUG_ICCxASL_X64_NASM_FLAGS               = -Ox -f win64 -g
     5156RELEASE_ICCxASL_X64_NASM_FLAGS               = -Ox -f win64
     5157NOOPT_ICCxASL_X64_NASM_FLAGS                 = -O0 -f win64 -g
    33975158
    33985159  DEBUG_ICCxASL_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
     
    35115272NOOPT_ICCx86_IA32_ASM_FLAGS                 = /nologo /c /WX /W3 /Zd /Zi
    35125273
     5274  DEBUG_ICCx86_IA32_NASM_FLAGS              = -Ox -f win32 -g
     5275RELEASE_ICCx86_IA32_NASM_FLAGS              = -Ox -f win32
     5276NOOPT_ICCx86_IA32_NASM_FLAGS                = -O0 -f win32 -g
     5277
    35135278      *_ICCx86_IA32_SLINK_FLAGS             = /nologo
    35145279  DEBUG_ICCx86_IA32_DLINK_FLAGS             = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
     
    35405305RELEASE_ICCx86_X64_ASM_FLAGS                = /nologo /c /WX /W3 /Cx /Zd
    35415306NOOPT_ICCx86_X64_ASM_FLAGS                  = /nologo /c /WX /W3 /Cx /Zd /Zi
     5307
     5308  DEBUG_ICCx86_X64_NASM_FLAGS               = -Ox -f win64 -g
     5309RELEASE_ICCx86_X64_NASM_FLAGS               = -Ox -f win64
     5310NOOPT_ICCx86_X64_NASM_FLAGS                 = -O0 -f win64 -g
    35425311
    35435312  DEBUG_ICCx86_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
     
    36565425NOOPT_ICCx86xASL_IA32_ASM_FLAGS                 = /nologo /c /WX /W3 /Zd /Zi
    36575426
     5427  DEBUG_ICCx86xASL_IA32_NASM_FLAGS              = -Ox -f win32 -g
     5428RELEASE_ICCx86xASL_IA32_NASM_FLAGS              = -Ox -f win32
     5429NOOPT_ICCx86xASL_IA32_NASM_FLAGS                = -O0 -f win32 -g
     5430
    36585431      *_ICCx86xASL_IA32_SLINK_FLAGS             = /nologo
    36595432  DEBUG_ICCx86xASL_IA32_DLINK_FLAGS             = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
     
    36855458RELEASE_ICCx86xASL_X64_ASM_FLAGS                = /nologo /c /WX /W3 /Cx /Zd
    36865459NOOPT_ICCx86xASL_X64_ASM_FLAGS                  = /nologo /c /WX /W3 /Cx /Zd /Zi
     5460
     5461  DEBUG_ICCx86xASL_X64_NASM_FLAGS               = -Ox -f win64 -g
     5462RELEASE_ICCx86xASL_X64_NASM_FLAGS               = -Ox -f win64
     5463NOOPT_ICCx86xASL_X64_NASM_FLAGS                 = -O0 -f win64 -g
    36875464
    36885465  DEBUG_ICCx86xASL_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
     
    38015578RELEASE_ICC11_IA32_ASM_FLAGS               = /nologo /c /WX /W3 /Zd
    38025579NOOPT_ICC11_IA32_ASM_FLAGS                 = /nologo /c /WX /W3 /Zd /Zi
     5580
     5581  DEBUG_ICC11_IA32_NASM_FLAGS              = -Ox -f win32 -g
     5582RELEASE_ICC11_IA32_NASM_FLAGS              = -Ox -f win32
     5583NOOPT_ICC11_IA32_NASM_FLAGS                = -O0 -f win32 -g
     5584
    38035585      *_ICC11_IA32_SLINK_FLAGS             = /nologo
    38045586  DEBUG_ICC11_IA32_DLINK_FLAGS             = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
     
    38305612RELEASE_ICC11_X64_ASM_FLAGS                = /nologo /c /WX /W3 /Cx /Zd
    38315613NOOPT_ICC11_X64_ASM_FLAGS                  = /nologo /c /WX /W3 /Cx /Zd /Zi
     5614
     5615  DEBUG_ICC11_X64_NASM_FLAGS               = -Ox -f win64 -g
     5616RELEASE_ICC11_X64_NASM_FLAGS               = -Ox -f win64
     5617NOOPT_ICC11_X64_NASM_FLAGS                 = -O0 -f win64 -g
     5618
    38325619  DEBUG_ICC11_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
    38335620RELEASE_ICC11_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
     
    39445731RELEASE_ICC11xASL_IA32_ASM_FLAGS               = /nologo /c /WX /W3 /Zd
    39455732NOOPT_ICC11xASL_IA32_ASM_FLAGS                 = /nologo /c /WX /W3 /Zd /Zi
     5733
     5734  DEBUG_ICC11xASL_IA32_NASM_FLAGS              = -Ox -f win32 -g
     5735RELEASE_ICC11xASL_IA32_NASM_FLAGS              = -Ox -f win32
     5736NOOPT_ICC11xASL_IA32_NASM_FLAGS                = -O0 -f win32 -g
     5737
    39465738      *_ICC11xASL_IA32_SLINK_FLAGS             = /nologo
    39475739  DEBUG_ICC11xASL_IA32_DLINK_FLAGS             = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
     
    39735765RELEASE_ICC11xASL_X64_ASM_FLAGS                = /nologo /c /WX /W3 /Cx /Zd
    39745766NOOPT_ICC11xASL_X64_ASM_FLAGS                  = /nologo /c /WX /W3 /Cx /Zd /Zi
     5767
     5768  DEBUG_ICC11xASL_X64_NASM_FLAGS               = -Ox -f win64 -g
     5769RELEASE_ICC11xASL_X64_NASM_FLAGS               = -Ox -f win64
     5770NOOPT_ICC11xASL_X64_NASM_FLAGS                 = -O0 -f win64 -g
     5771
    39755772  DEBUG_ICC11xASL_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
    39765773RELEASE_ICC11xASL_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
     
    40885885RELEASE_ICC11x86_IA32_ASM_FLAGS               = /nologo /c /WX /W3 /Zd
    40895886NOOPT_ICC11x86_IA32_ASM_FLAGS                 = /nologo /c /WX /W3 /Zd /Zi
     5887  DEBUG_ICC11x86_IA32_NASM_FLAGS              = -Ox -f win32 -g
     5888RELEASE_ICC11x86_IA32_NASM_FLAGS              = -Ox -f win32
     5889NOOPT_ICC11x86_IA32_NASM_FLAGS                = -O0 -f win32 -g
    40905890      *_ICC11x86_IA32_SLINK_FLAGS             = /nologo
    40915891  DEBUG_ICC11x86_IA32_DLINK_FLAGS             = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
     
    41165916RELEASE_ICC11x86_X64_ASM_FLAGS                = /nologo /c /WX /W3 /Cx /Zd
    41175917NOOPT_ICC11x86_X64_ASM_FLAGS                  = /nologo /c /WX /W3 /Cx /Zd /Zi
     5918  DEBUG_ICC11x86_X64_NASM_FLAGS               = -Ox -f win64 -g
     5919RELEASE_ICC11x86_X64_NASM_FLAGS               = -Ox -f win64
     5920NOOPT_ICC11x86_X64_NASM_FLAGS                 = -O0 -f win64 -g
    41185921  DEBUG_ICC11x86_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
    41195922RELEASE_ICC11x86_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
     
    42316034RELEASE_ICC11x86xASL_IA32_ASM_FLAGS               = /nologo /c /WX /W3 /Zd
    42326035NOOPT_ICC11x86xASL_IA32_ASM_FLAGS                 = /nologo /c /WX /W3 /Zd /Zi
     6036  DEBUG_ICC11x86xASL_IA32_NASM_FLAGS              = -Ox -f win32 -g
     6037RELEASE_ICC11x86xASL_IA32_NASM_FLAGS              = -Ox -f win32
     6038NOOPT_ICC11x86xASL_IA32_NASM_FLAGS                = -O0 -f win32 -g
    42336039      *_ICC11x86xASL_IA32_SLINK_FLAGS             = /nologo
    42346040  DEBUG_ICC11x86xASL_IA32_DLINK_FLAGS             = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
     
    42606066RELEASE_ICC11x86xASL_X64_ASM_FLAGS                = /nologo /c /WX /W3 /Cx /Zd
    42616067NOOPT_ICC11x86xASL_X64_ASM_FLAGS                  = /nologo /c /WX /W3 /Cx /Zd /Zi
     6068  DEBUG_ICC11x86xASL_X64_NASM_FLAGS               = -Ox -f win64 -g
     6069RELEASE_ICC11x86xASL_X64_NASM_FLAGS               = -Ox -f win64
     6070NOOPT_ICC11x86xASL_X64_NASM_FLAGS                 = -O0 -f win64 -g
     6071
    42626072  DEBUG_ICC11x86xASL_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
    42636073RELEASE_ICC11x86xASL_X64_DLINK_FLAGS              = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:CONSOLE /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
     
    43716181RELEASE_MYTOOLS_IA32_ASM_FLAGS           = /nologo /c /WX /W3 /coff /Cx /Zd
    43726182NOOPT_MYTOOLS_IA32_ASM_FLAGS             = /nologo /c /WX /W3 /coff /Cx /Zd /Zi 
     6183  DEBUG_MYTOOLS_IA32_NASM_FLAGS          = -Ox -f win32 -g
     6184RELEASE_MYTOOLS_IA32_NASM_FLAGS          = -Ox -f win32
     6185NOOPT_MYTOOLS_IA32_NASM_FLAGS            = -O0 -f win32 -g
    43736186  DEBUG_MYTOOLS_IA32_DLINK_FLAGS         = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb
    43746187RELEASE_MYTOOLS_IA32_DLINK_FLAGS         = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text /PDB:$(DEBUG_DIR)/$(BASE_NAME).pdb
     
    43996212RELEASE_MYTOOLS_X64_ASM_FLAGS            = /nologo /c /WX /W3 /Cx /Zd
    44006213NOOPT_MYTOOLS_X64_ASM_FLAGS              = /nologo /c /WX /W3 /Cx /Zd /Zi 
     6214  DEBUG_MYTOOLS_X64_NASM_FLAGS           = -Ox -f win64 -g
     6215RELEASE_MYTOOLS_X64_NASM_FLAGS           = -Ox -f win64
     6216NOOPT_MYTOOLS_X64_NASM_FLAGS             = -O0 -f win64 -g
    44016217  DEBUG_MYTOOLS_X64_DLINK_FLAGS          = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
    44026218RELEASE_MYTOOLS_X64_DLINK_FLAGS          = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.data=.text /MERGE:.rdata=.text
     
    44936309  DEBUG_XCODE32_IA32_ASM_FLAGS  = -arch i386 -g
    44946310RELEASE_XCODE32_IA32_ASM_FLAGS  = -arch i386
     6311*_XCODE32_IA32_NASM_FLAGS       = -f macho32
    44956312*_XCODE32_IA32_PP_FLAGS         = -arch i386 -E -x assembler-with-cpp -include $(DEST_DIR_DEBUG)/AutoGen.h
    44966313*_XCODE32_IA32_VFRPP_FLAGS      = -arch i386 -x c -E -P -DVFRCOMPILE --include $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h
     
    45236340  DEBUG_XCODE32_X64_ASM_FLAGS  = -arch x86_64 -g
    45246341RELEASE_XCODE32_X64_ASM_FLAGS  = -arch x86_64
     6342*_XCODE32_X64_NASM_FLAGS       = -f macho64
    45256343*_XCODE32_X64_PP_FLAGS         = -arch x86_64 -E -x assembler-with-cpp -include $(DEST_DIR_DEBUG)/AutoGen.h
    45266344*_XCODE32_X64_VFRPP_FLAGS      = -arch x86_64 -x c -E -P -DVFRCOMPILE --include $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h
    45276345
    4528   DEBUG_XCODE32_X64_CC_FLAGS   = -arch x86_64 -save-temps -g -O0 -combine -mms-bitfields -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-missing-braces -Wno-address  -fomit-frame-pointer -static  -c -include AutoGen.h -fno-stack-protector
    4529 RELEASE_XCODE32_X64_CC_FLAGS   = -arch x86_64 -Oz -combine -mms-bitfields -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-missing-braces -Wno-address  -fomit-frame-pointer -static  -c -include AutoGen.h -fno-stack-protector
     6346  DEBUG_XCODE32_X64_CC_FLAGS   = -arch x86_64 -save-temps -g -O0 -mms-bitfields -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-missing-braces -Wno-address  -fomit-frame-pointer -static  -c -include AutoGen.h -fno-stack-protector
     6347RELEASE_XCODE32_X64_CC_FLAGS   = -arch x86_64 -Oz -mms-bitfields -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-missing-braces -Wno-address  -fomit-frame-pointer -static  -c -include AutoGen.h -fno-stack-protector
    45306348
    45316349##################
     
    45556373*_XCODE32_ARM_VFRPP_FLAGS      = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -x c -E -P -DVFRCOMPILE --include $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h
    45566374
    4557   DEBUG_XCODE32_ARM_CC_FLAGS   = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -mthumb-interwork -g -Oz -mabi=aapcs -mapcs -fno-short-enums  -save-temps -combine -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-missing-braces -fomit-frame-pointer -c -include AutoGen.h -fno-stack-protector
    4558 RELEASE_XCODE32_ARM_CC_FLAGS   = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -mthumb-interwork -Oz    -mabi=aapcs -mapcs -fno-short-enums  -save-temps -combine -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-missing-braces -fomit-frame-pointer -c -include AutoGen.h  -fno-stack-protector
     6375  DEBUG_XCODE32_ARM_CC_FLAGS   = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -mthumb-interwork -g -Oz -mabi=aapcs -mapcs -fno-short-enums  -save-temps -combine -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-missing-braces -fomit-frame-pointer -c -include AutoGen.h
     6376RELEASE_XCODE32_ARM_CC_FLAGS   = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -mthumb-interwork -Oz    -mabi=aapcs -mapcs -fno-short-enums  -save-temps -combine -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-missing-braces -fomit-frame-pointer -c -include AutoGen.h
    45596377
    45606378
     
    45796397
    45806398
    4581 *_XCLANG_*_CC_PATH      = DEF(CLANG_BIN)clang
     6399*_XCLANG_*_CC_PATH      = ENV(CLANG_BIN)clang
    45826400*_XCLANG_*_SLINK_PATH   = libtool
    45836401*_XCLANG_*_DLINK_PATH   = ld
    45846402*_XCLANG_*_ASM_PATH     = as
    4585 *_XCLANG_*_PP_PATH      = DEF(CLANG_BIN)clang
    4586 *_XCLANG_*_VFRPP_PATH   = DEF(CLANG_BIN)clang
     6403*_XCLANG_*_PP_PATH      = ENV(CLANG_BIN)clang
     6404*_XCLANG_*_VFRPP_PATH   = ENV(CLANG_BIN)clang
    45876405*_XCLANG_*_ASL_PATH     = iasl
    4588 *_XCLANG_*_ASLCC_PATH   = DEF(CLANG_BIN)clang
    4589 *_XCLANG_*_ASLPP_PATH   = DEF(CLANG_BIN)clang
     6406*_XCLANG_*_ASLCC_PATH   = ENV(CLANG_BIN)clang
     6407*_XCLANG_*_ASLPP_PATH   = ENV(CLANG_BIN)clang
    45906408*_XCLANG_*_ASLDLINK_PATH  = ld
    45916409
     
    45986416  DEBUG_XCLANG_IA32_ASM_FLAGS  = -arch i386 -g
    45996417RELEASE_XCLANG_IA32_ASM_FLAGS  = -arch i386
    4600 
     6418*_XCLANG_IA32_NASM_FLAGS       = -f macho32
    46016419
    46026420  DEBUG_XCLANG_IA32_CC_FLAGS   = -arch i386 -c -g -O0  -Wall -Werror -include AutoGen.h -fno-stack-protector -fno-builtin -fshort-wchar -mdynamic-no-pic -mno-sse -mno-mmx -Wno-empty-body -Wno-pointer-sign -Wno-unused-function -Wno-unused-value -Wno-missing-braces -Wno-tautological-compare -Wreturn-type -Wno-unused-variable  -fasm-blocks  -mms-bitfields -msoft-float -ftrap-function=undefined_behavior_has_been_optimized_away_by_clang
     
    46126430  DEBUG_XCLANG_X64_ASM_FLAGS  = -arch x86_64 -g
    46136431RELEASE_XCLANG_X64_ASM_FLAGS  = -arch x86_64
     6432*_XCLANG_X64_NASM_FLAGS       = -f macho64
    46146433*_XCLANG_*_PP_FLAGS         = -E -x assembler-with-cpp -include $(DEST_DIR_DEBUG)/AutoGen.h
    46156434*_XCLANG_*_VFRPP_FLAGS      = -x c -E -P -DVFRCOMPILE -include $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h
     
    46236442*_XCLANG_*_ASL_FLAGS        =
    46246443
     6444#
     6445# XCODE5 support
     6446#
     6447
     6448*_XCODE5_*_*_FAMILY            = GCC
     6449*_XCODE5_*_*_BUILDRULEFAMILY   = XCODE
     6450
     6451*_XCODE5_*_ASL_PATH          = /usr/bin/iasl
     6452
     6453*_XCODE5_*_MAKE_PATH        = make
     6454*_XCODE5_*_DSYMUTIL_PATH    = /usr/bin/dsymutil
     6455
     6456  DEBUG_XCODE5_*_MTOC_FLAGS = -align 0x20 -d $(DEBUG_DIR)/$(MODULE_NAME).dll
     6457  NOOPT_XCODE5_*_MTOC_FLAGS = -align 0x20 -d $(DEBUG_DIR)/$(MODULE_NAME).dll
     6458RELEASE_XCODE5_*_MTOC_FLAGS = -align 0x20
     6459
     6460#
     6461# use xcode-select to change Xcode version of command line tools
     6462#
     6463*_XCODE5_*_CC_PATH      = clang
     6464*_XCODE5_*_SLINK_PATH   = libtool
     6465*_XCODE5_*_DLINK_PATH   = ld
     6466*_XCODE5_*_ASM_PATH     = as
     6467*_XCODE5_*_PP_PATH      = clang
     6468*_XCODE5_*_VFRPP_PATH   = clang
     6469*_XCODE5_*_ASL_PATH     = iasl
     6470*_XCODE5_*_ASLCC_PATH   = clang
     6471*_XCODE5_*_ASLPP_PATH   = clang
     6472*_XCODE5_*_ASLDLINK_PATH  = ld
     6473
     6474####################
     6475# IA-32 definitions
     6476####################
     6477  DEBUG_XCODE5_IA32_DLINK_FLAGS      = -arch i386 -u _$(IMAGE_ENTRY_POINT) -e _$(IMAGE_ENTRY_POINT) -preload -segalign 0x20  -pie -all_load -dead_strip -seg1addr 0x240 -read_only_relocs suppress -map $(DEST_DIR_DEBUG)/$(BASE_NAME).map
     6478  NOOPT_XCODE5_IA32_DLINK_FLAGS      = -arch i386 -u _$(IMAGE_ENTRY_POINT) -e _$(IMAGE_ENTRY_POINT) -preload -segalign 0x20  -pie -all_load -dead_strip -seg1addr 0x240 -read_only_relocs suppress -map $(DEST_DIR_DEBUG)/$(BASE_NAME).map
     6479RELEASE_XCODE5_IA32_DLINK_FLAGS      = -arch i386 -u _$(IMAGE_ENTRY_POINT) -e _$(IMAGE_ENTRY_POINT) -preload -segalign 0x20  -pie -all_load -dead_strip -seg1addr 0x240 -read_only_relocs suppress -map $(DEST_DIR_DEBUG)/$(BASE_NAME).map
     6480
     6481*_XCODE5_IA32_SLINK_FLAGS      = -static -o
     6482  DEBUG_XCODE5_IA32_ASM_FLAGS  = -arch i386 -g
     6483  NOOPT_XCODE5_IA32_ASM_FLAGS  = -arch i386 -g
     6484RELEASE_XCODE5_IA32_ASM_FLAGS  = -arch i386
     6485      *_XCODE5_IA32_NASM_FLAGS = -f macho32
     6486
     6487
     6488  DEBUG_XCODE5_IA32_CC_FLAGS   = -arch i386 -c -g -Os       -Wall -Werror -include AutoGen.h -funsigned-char -fno-stack-protector -fno-builtin -fshort-wchar -fasm-blocks -mdynamic-no-pic -mno-implicit-float -mms-bitfields -msoft-float -Wno-unused-parameter -Wno-missing-braces -Wno-missing-field-initializers -Wno-tautological-compare -Wno-sign-compare -ftrap-function=undefined_behavior_has_been_optimized_away_by_clang $(PLATFORM_FLAGS)
     6489RELEASE_XCODE5_IA32_CC_FLAGS   = -arch i386 -c    -Os       -Wall -Werror -include AutoGen.h -funsigned-char -fno-stack-protector -fno-builtin -fshort-wchar -fasm-blocks -mdynamic-no-pic -mno-implicit-float -mms-bitfields -msoft-float -Wno-unused-parameter -Wno-missing-braces -Wno-missing-field-initializers -Wno-tautological-compare -Wno-sign-compare -ftrap-function=undefined_behavior_has_been_optimized_away_by_clang $(PLATFORM_FLAGS)
     6490  NOOPT_XCODE5_IA32_CC_FLAGS   = -arch i386 -c -g -O0       -Wall -Werror -include AutoGen.h -funsigned-char -fno-stack-protector -fno-builtin -fshort-wchar -fasm-blocks -mdynamic-no-pic -mno-implicit-float -mms-bitfields -msoft-float -Wno-unused-parameter -Wno-missing-braces -Wno-missing-field-initializers -Wno-tautological-compare -Wno-sign-compare -ftrap-function=undefined_behavior_has_been_optimized_away_by_clang $(PLATFORM_FLAGS)
     6491
     6492
     6493
     6494##################
     6495# X64 definitions
     6496##################
     6497  DEBUG_XCODE5_X64_DLINK_FLAGS      = -arch x86_64 -u _$(IMAGE_ENTRY_POINT) -e _$(IMAGE_ENTRY_POINT) -preload -segalign 0x20  -pie -all_load -dead_strip -seg1addr 0x240 -map $(DEST_DIR_DEBUG)/$(BASE_NAME).map
     6498  NOOPT_XCODE5_X64_DLINK_FLAGS      = -arch x86_64 -u _$(IMAGE_ENTRY_POINT) -e _$(IMAGE_ENTRY_POINT) -preload -segalign 0x20  -pie -all_load -dead_strip -seg1addr 0x240 -map $(DEST_DIR_DEBUG)/$(BASE_NAME).map
     6499RELEASE_XCODE5_X64_DLINK_FLAGS      = -arch x86_64 -u _$(IMAGE_ENTRY_POINT) -e _$(IMAGE_ENTRY_POINT) -preload -segalign 0x20  -pie -all_load -dead_strip -seg1addr 0x240 -map $(DEST_DIR_DEBUG)/$(BASE_NAME).map
     6500
     6501*_XCODE5_X64_SLINK_FLAGS      = -static -o
     6502  DEBUG_XCODE5_X64_ASM_FLAGS  = -arch x86_64 -g
     6503  NOOPT_XCODE5_X64_ASM_FLAGS  = -arch x86_64 -g
     6504RELEASE_XCODE5_X64_ASM_FLAGS  = -arch x86_64
     6505      *_XCODE5_X64_NASM_FLAGS = -f macho64
     6506*_XCODE5_*_PP_FLAGS         = -E -x assembler-with-cpp -include $(DEST_DIR_DEBUG)/AutoGen.h
     6507*_XCODE5_*_VFRPP_FLAGS      = -x c -E -P -DVFRCOMPILE -include $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h
     6508
     6509
     6510  DEBUG_XCODE5_X64_CC_FLAGS   = -target x86_64-pc-win32-macho -c -g -Os       -Wall -Werror -Wextra -include AutoGen.h -funsigned-char -fno-ms-extensions -fno-stack-protector -fno-builtin -fshort-wchar -mno-implicit-float -mms-bitfields -Wno-unused-parameter -Wno-missing-braces -Wno-missing-field-initializers -Wno-tautological-compare -Wno-sign-compare -ftrap-function=undefined_behavior_has_been_optimized_away_by_clang $(PLATFORM_FLAGS)
     6511  NOOPT_XCODE5_X64_CC_FLAGS   = -target x86_64-pc-win32-macho -c -g -O0       -Wall -Werror -Wextra -include AutoGen.h -funsigned-char -fno-ms-extensions -fno-stack-protector -fno-builtin -fshort-wchar -mno-implicit-float -mms-bitfields -Wno-unused-parameter -Wno-missing-braces -Wno-missing-field-initializers -Wno-tautological-compare -Wno-sign-compare -ftrap-function=undefined_behavior_has_been_optimized_away_by_clang $(PLATFORM_FLAGS)
     6512RELEASE_XCODE5_X64_CC_FLAGS   = -target x86_64-pc-win32-macho -c    -Os       -Wall -Werror -Wextra -include AutoGen.h -funsigned-char -fno-ms-extensions -fno-stack-protector -fno-builtin -fshort-wchar -mno-implicit-float -mms-bitfields -Wno-unused-parameter -Wno-missing-braces -Wno-missing-field-initializers -Wno-tautological-compare -Wno-sign-compare -ftrap-function=undefined_behavior_has_been_optimized_away_by_clang $(PLATFORM_FLAGS)
     6513
     6514*_XCODE5_*_ASLCC_FLAGS      = -x c -save-temps -g -O0 -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-missing-braces -c -include AutoGen.h
     6515*_XCODE5_*_ASLDLINK_FLAGS   = -e _ReferenceAcpiTable -preload -segalign 0x20  -pie -seg1addr 0x240 -read_only_relocs suppress -map $(DEST_DIR_DEBUG)/$(BASE_NAME).map
     6516*_XCODE5_*_ASLPP_FLAGS      = -x c -E
     6517*_XCODE5_*_ASL_FLAGS        =
     6518*_XCODE5_*_ASL_OUTFLAGS     = DEF(IASL_OUTFLAGS)
     6519
    46256520####################################################################################
    46266521#
     
    46296524####################################################################################
    46306525
    4631 DEFINE RVCT_ALL_CC_FLAGS   = --c90 -c --no_autoinline --asm --gnu --apcs /interwork --signed_chars --no_unaligned_access --split_sections --enum_is_int --preinclude AutoGen.h --diag_warning 167 --diag_style=ide
    4632 DEFINE RVCT_ALL_DLINK_FLAGS   = --ro-base 0 --no_scanlib --reloc --no_exceptions --datacompressor off --strict --symbols --diag_style=ide
     6526DEFINE RVCT_ALL_ASM_FLAGS   = --diag_suppress=1786 --diag_error=warning --apcs /interwork
     6527DEFINE RVCT_ALL_CC_FLAGS    = --c90 -c --no_autoinline --asm --gnu --apcs /interwork --signed_chars --no_unaligned_access --split_sections --enum_is_int --preinclude AutoGen.h --diag_suppress=186 --diag_warning 167 --diag_error=warning --diag_style=ide --protect_stack
     6528DEFINE RVCT_ALL_DLINK_FLAGS = --ro-base 0 --no_scanlib --reloc --no_exceptions --datacompressor off --strict --symbols --diag_style=ide
    46336529
    46346530####################################################################################
     
    46446540# Use default values, or override in DSC file
    46456541#
    4646 *_RVCT_ARM_ARCHCC_FLAGS    = --thumb
     6542*_RVCT_ARM_ARCHCC_FLAGS    = --thumb --fpu=softvfp
    46476543*_RVCT_ARM_ARCHASM_FLAGS   =
    46486544*_RVCT_ARM_ARCHDLINK_FLAGS =
     
    46536549
    46546550
    4655 *_RVCT_ARM_ASM_FLAGS       = $(ARCHASM_FLAGS) $(PLATFORM_FLAGS) --apcs /interwork
     6551*_RVCT_ARM_ASM_FLAGS       = $(ARCHASM_FLAGS) $(PLATFORM_FLAGS) DEF(RVCT_ALL_ASM_FLAGS)
    46566552*_RVCT_ARM_PP_FLAGS        = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -E
    46576553*_RVCT_ARM_VFRPP_FLAGS     = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -E  -DVFRCOMPILE --preinclude $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h
     
    46596555*_RVCT_ARM_SLINK_FLAGS     = --partial -o
    46606556  DEBUG_RVCT_ARM_CC_FLAGS  = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(RVCT_ALL_CC_FLAGS) -O1 -g
    4661 RELEASE_RVCT_ARM_CC_FLAGS  = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(RVCT_ALL_CC_FLAGS) -O2
     6557RELEASE_RVCT_ARM_CC_FLAGS  = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) --diag_suppress=550 DEF(RVCT_ALL_CC_FLAGS) -O2
    46626558
    46636559##################
     
    46816577*_RVCTLINUX_*_*_BUILDRULEFAMILY      = RVCTLINUX
    46826578
     6579*_RVCTLINUX_*_MAKE_PATH       = make
     6580
    46836581#
    46846582# Use default values, or override in DSC file
    46856583#
    4686 *_RVCTLINUX_ARM_ARCHCC_FLAGS    = --thumb
     6584*_RVCTLINUX_ARM_ARCHCC_FLAGS    = --thumb --fpu=softvfp
    46876585*_RVCTLINUX_ARM_ARCHASM_FLAGS   =
    46886586*_RVCTLINUX_ARM_ARCHDLINK_FLAGS =
     
    46926590RELEASE_RVCTLINUX_ARM_DLINK_FLAGS   = $(ARCHDLINK_FLAGS) DEF(RVCT_ALL_DLINK_FLAGS) --entry $(IMAGE_ENTRY_POINT) --map --list $(DEST_DIR_DEBUG)/$(BASE_NAME).map
    46936591
    4694 *_RVCTLINUX_ARM_ASM_FLAGS       = $(ARCHASM_FLAGS) $(PLATFORM_FLAGS) --apcs /interwork
     6592*_RVCTLINUX_ARM_ASM_FLAGS       = $(ARCHASM_FLAGS) $(PLATFORM_FLAGS) DEF(RVCT_ALL_ASM_FLAGS)
    46956593*_RVCTLINUX_ARM_PP_FLAGS        = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -E
    46966594*_RVCTLINUX_ARM_VFRPP_FLAGS     = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -E  -DVFRCOMPILE --preinclude $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h
    4697 *_RVCTLINUX_ARM_MAKE_PATH       = make
    46986595*_RVCTLINUX_ARM_SLINK_FLAGS     = --partial -o
    46996596  DEBUG_RVCTLINUX_ARM_CC_FLAGS  = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(RVCT_ALL_CC_FLAGS) -O1 -g
    4700 RELEASE_RVCTLINUX_ARM_CC_FLAGS  = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(RVCT_ALL_CC_FLAGS) -O2
     6597RELEASE_RVCTLINUX_ARM_CC_FLAGS  = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) --diag_suppress=550 DEF(RVCT_ALL_CC_FLAGS) -O2
    47016598
    47026599##################
     
    47326629# Use default values, or override in DSC file
    47336630#
    4734 *_RVCTCYGWIN_ARM_ARCHCC_FLAGS    = --thumb
     6631*_RVCTCYGWIN_ARM_ARCHCC_FLAGS    = --thumb --fpu=softvfp
    47356632*_RVCTCYGWIN_ARM_ARCHASM_FLAGS   =
    47366633*_RVCTCYGWIN_ARM_ARCHDLINK_FLAGS =
     
    47406637RELEASE_RVCTCYGWIN_ARM_DLINK_FLAGS     = "$(DLINKPATH_FLAG)" $(ARCHDLINK_FLAGS) DEF(RVCT_ALL_DLINK_FLAGS) --entry $(IMAGE_ENTRY_POINT) --map --list `cygpath -m $(DEST_DIR_DEBUG)/$(BASE_NAME).map`
    47416638 
    4742 *_RVCTCYGWIN_ARM_ASM_FLAGS       = "$(ASMPATH_FLAG)" $(ARCHASM_FLAGS) $(PLATFORM_FLAGS) --apcs /interwork
     6639*_RVCTCYGWIN_ARM_ASM_FLAGS       = "$(ASMPATH_FLAG)" $(ARCHASM_FLAGS) $(PLATFORM_FLAGS) DEF(RVCT_ALL_ASM_FLAGS)
    47436640*_RVCTCYGWIN_ARM_PP_FLAGS        = "$(CCPATH_FLAG)" $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -E
    47446641*_RVCTCYGWIN_ARM_VFRPP_FLAGS     = "$(CCPATH_FLAG)" $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -E  -DVFRCOMPILE --preinclude `cygpath -m $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h`
     
    47466643*_RVCTCYGWIN_ARM_SLINK_FLAGS     = "$(SLINKPATH_FLAG)" --partial -o
    47476644  DEBUG_RVCTCYGWIN_ARM_CC_FLAGS  = "$(CCPATH_FLAG)" $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(RVCT_ALL_CC_FLAGS) -O1 -g
    4748 RELEASE_RVCTCYGWIN_ARM_CC_FLAGS  = "$(CCPATH_FLAG)" $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(RVCT_ALL_CC_FLAGS) -O2
     6645RELEASE_RVCTCYGWIN_ARM_CC_FLAGS  = "$(CCPATH_FLAG)" $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) --diag_suppress=550 DEF(RVCT_ALL_CC_FLAGS) -O2
    47496646
    47506647##################
     
    47806677*_ARMGCC_*_ASLPP_FLAGS       = -x c -E -P
    47816678*_ARMGCC_*_ASLCC_FLAGS       = -x c
    4782 *_ARMGCC_*_ASLDLINK_FLAGS    = DEF(GCC_DLINK_FLAGS_COMMON) --entry _ReferenceAcpiTable
     6679*_ARMGCC_*_ASLDLINK_FLAGS    = DEF(GCC_DLINK_FLAGS_COMMON) --entry ReferenceAcpiTable
    47836680
    47846681##################
     
    47866683##################
    47876684
    4788 *_ARMGCC_ARM_ASLCC_PATH      = ENV(ARMGCC_TOOLS_PATH)arm-none-eabi-gcc
    4789 *_ARMGCC_ARM_ASLDLINK_PATH   = ENV(ARMGCC_TOOLS_PATH)arm-none-eabi-ld
    4790 *_ARMGCC_ARM_ASLPP_PATH      = ENV(ARMGCC_TOOLS_PATH)arm-none-eabi-gcc
    4791 
    4792 *_ARMGCC_ARM_CC_PATH         = ENV(ARMGCC_TOOLS_PATH)arm-none-eabi-gcc
    4793 *_ARMGCC_ARM_SLINK_PATH      = ENV(ARMGCC_TOOLS_PATH)arm-none-eabi-ar
    4794 *_ARMGCC_ARM_DLINK_PATH      = ENV(ARMGCC_TOOLS_PATH)arm-none-eabi-ld
    4795 *_ARMGCC_ARM_ASM_PATH        = ENV(ARMGCC_TOOLS_PATH)arm-none-eabi-as
    4796 *_ARMGCC_ARM_PP_PATH         = ENV(ARMGCC_TOOLS_PATH)arm-none-eabi-gcc
    4797 *_ARMGCC_ARM_VFRPP_PATH      = ENV(ARMGCC_TOOLS_PATH)arm-none-eabi-gcc
     6685*_ARMGCC_ARM_ASLCC_PATH      = ENV(CROSS_COMPILE)gcc
     6686*_ARMGCC_ARM_ASLDLINK_PATH   = ENV(CROSS_COMPILE)ld
     6687*_ARMGCC_ARM_ASLPP_PATH      = ENV(CROSS_COMPILE)gcc
     6688
     6689*_ARMGCC_ARM_CC_PATH         = ENV(CROSS_COMPILE)gcc
     6690*_ARMGCC_ARM_SLINK_PATH      = ENV(CROSS_COMPILE)ar
     6691*_ARMGCC_ARM_DLINK_PATH      = ENV(CROSS_COMPILE)ld
     6692*_ARMGCC_ARM_ASM_PATH        = ENV(CROSS_COMPILE)as
     6693*_ARMGCC_ARM_PP_PATH         = ENV(CROSS_COMPILE)gcc
     6694*_ARMGCC_ARM_VFRPP_PATH      = ENV(CROSS_COMPILE)gcc
    47986695
    47996696#
    48006697# Use default values, or override in DSC file
    48016698#
    4802 *_ARMGCC_ARM_ARCHCC_FLAGS    = -mthumb
     6699*_ARMGCC_ARM_ARCHCC_FLAGS    =
    48036700*_ARMGCC_ARM_ARCHASM_FLAGS   =
    48046701*_ARMGCC_ARM_ARCHDLINK_FLAGS =
     
    48126709
    48136710*_ARMGCC_ARM_SLINK_FLAGS =  -rc
    4814 *_ARMGCC_ARM_DLINK_FLAGS =  $(ARCHDLINK_FLAGS) -Ttext=0x0 --oformat=elf32-littlearm --emit-relocs -nostdlib -u $(IMAGE_ENTRY_POINT) -e $(IMAGE_ENTRY_POINT) -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map
    4815 
    4816   DEBUG_ARMGCC_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ARMGCC_CC_FLAGS) -combine -O0
    4817 RELEASE_ARMGCC_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ARMGCC_CC_FLAGS) -combine -Wno-unused
     6711*_ARMGCC_ARM_DLINK_FLAGS =  $(ARCHDLINK_FLAGS) DEF(GCC_ARM_AARCH64_DLINK_COMMON) --oformat=elf32-littlearm
     6712
     6713  DEBUG_ARMGCC_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ARM_CC_FLAGS) -O0
     6714RELEASE_ARMGCC_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ARM_CC_FLAGS) -Wno-unused
     6715
     6716######################
     6717# AArch64 definitions
     6718######################
     6719# AARCH64 64bit ARM Bare-metal GCC (ARM Architecture 64)
     6720
     6721*_ARMGCC_AARCH64_ASLCC_PATH      = ENV(CROSS_COMPILE)gcc
     6722*_ARMGCC_AARCH64_ASLDLINK_PATH   = ENV(CROSS_COMPILE)ld
     6723*_ARMGCC_AARCH64_ASLPP_PATH      = ENV(CROSS_COMPILE)gcc
     6724
     6725*_ARMGCC_AARCH64_CC_PATH         = ENV(CROSS_COMPILE)gcc
     6726*_ARMGCC_AARCH64_SLINK_PATH      = ENV(CROSS_COMPILE)ar
     6727*_ARMGCC_AARCH64_DLINK_PATH      = ENV(CROSS_COMPILE)ld
     6728*_ARMGCC_AARCH64_ASM_PATH        = ENV(CROSS_COMPILE)as
     6729*_ARMGCC_AARCH64_PP_PATH         = ENV(CROSS_COMPILE)gcc
     6730*_ARMGCC_AARCH64_VFRPP_PATH      = ENV(CROSS_COMPILE)gcc
     6731
     6732#
     6733# Use default values, or override in DSC file
     6734#
     6735*_ARMGCC_AARCH64_ARCHCC_FLAGS    =
     6736*_ARMGCC_AARCH64_ARCHASM_FLAGS   =
     6737*_ARMGCC_AARCH64_ARCHDLINK_FLAGS =
     6738*_ARMGCC_AARCH64_PLATFORM_FLAGS  =
     6739
     6740  DEBUG_ARMGCC_AARCH64_ASM_FLAGS   = $(ARCHASM_FLAGS) $(PLATFORM_FLAGS) -g
     6741RELEASE_ARMGCC_AARCH64_ASM_FLAGS   = $(ARCHASM_FLAGS) $(PLATFORM_FLAGS)
     6742
     6743*_ARMGCC_AARCH64_PP_FLAGS    = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -E -x assembler-with-cpp -include $(DEST_DIR_DEBUG)/AutoGen.h
     6744*_ARMGCC_AARCH64_VFRPP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -x c -E -P -DVFRCOMPILE --include $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h
     6745
     6746*_ARMGCC_AARCH64_SLINK_FLAGS =  -rc
     6747*_ARMGCC_AARCH64_DLINK_FLAGS =  $(ARCHDLINK_FLAGS) DEF(GCC_ARM_AARCH64_DLINK_COMMON)
     6748
     6749  DEBUG_ARMGCC_AARCH64_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_AARCH64_CC_FLAGS) -Wno-address -O0
     6750RELEASE_ARMGCC_AARCH64_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_AARCH64_CC_FLAGS) -Wno-address -Wno-unused-but-set-variable
    48186751
    48196752####################################################################################
     
    48386771*_ARMLINUXGCC_*_ASLPP_FLAGS        = -x c -E -P
    48396772*_ARMLINUXGCC_*_ASLCC_FLAGS        = -x c
    4840 *_ARMLINUXGCC_*_ASLDLINK_FLAGS     = DEF(GCC_DLINK_FLAGS_COMMON) --entry _ReferenceAcpiTable
     6773*_ARMLINUXGCC_*_ASLDLINK_FLAGS     = DEF(GCC_DLINK_FLAGS_COMMON) --entry ReferenceAcpiTable
    48416774
    48426775##################
     
    48586791# Use default values, or override in DSC file
    48596792#
    4860 *_ARMLINUXGCC_ARM_ARCHCC_FLAGS    = -mthumb
     6793*_ARMLINUXGCC_ARM_ARCHCC_FLAGS    =
    48616794*_ARMLINUXGCC_ARM_ARCHASM_FLAGS   =
    48626795*_ARMLINUXGCC_ARM_ARCHDLINK_FLAGS =
     
    48706803
    48716804*_ARMLINUXGCC_ARM_SLINK_FLAGS =  -rc
    4872 *_ARMLINUXGCC_ARM_DLINK_FLAGS =  $(ARCHDLINK_FLAGS) -Ttext=0x0 --oformat=elf32-littlearm --emit-relocs -nostdlib -u $(IMAGE_ENTRY_POINT) -e $(IMAGE_ENTRY_POINT) -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map
    4873 
    4874   DEBUG_ARMLINUXGCC_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ARMGCC_CC_FLAGS) -Wno-address -O0
    4875 RELEASE_ARMLINUXGCC_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ARMGCC_CC_FLAGS) -Wno-address -Wno-unused-but-set-variable
     6805*_ARMLINUXGCC_ARM_DLINK_FLAGS =  $(ARCHDLINK_FLAGS) DEF(GCC_ARM_AARCH64_DLINK_COMMON) --oformat=elf32-littlearm
     6806
     6807  DEBUG_ARMLINUXGCC_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ARM_CC_FLAGS) -mno-unaligned-access -O0
     6808RELEASE_ARMLINUXGCC_ARM_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_ARM_CC_FLAGS) -mno-unaligned-access -Wno-unused-but-set-variable
     6809
     6810######################
     6811# AArch64 definitions
     6812######################
     6813# AARCH64 64bit ARM GNU/Linux GCC (ARM Architecture 64)
     6814
     6815*_ARMLINUXGCC_AARCH64_ASLCC_PATH      = ENV(AARCH64LINUXGCC_TOOLS_PATH)aarch64-linux-gnu-gcc
     6816*_ARMLINUXGCC_AARCH64_ASLDLINK_PATH   = ENV(AARCH64LINUXGCC_TOOLS_PATH)aarch64-linux-gnu-ld
     6817*_ARMLINUXGCC_AARCH64_ASLPP_PATH      = ENV(AARCH64LINUXGCC_TOOLS_PATH)aarch64-linux-gnu-gcc
     6818
     6819*_ARMLINUXGCC_AARCH64_CC_PATH         = ENV(AARCH64LINUXGCC_TOOLS_PATH)aarch64-linux-gnu-gcc
     6820*_ARMLINUXGCC_AARCH64_SLINK_PATH      = ENV(AARCH64LINUXGCC_TOOLS_PATH)aarch64-linux-gnu-ar
     6821*_ARMLINUXGCC_AARCH64_DLINK_PATH      = ENV(AARCH64LINUXGCC_TOOLS_PATH)aarch64-linux-gnu-ld
     6822*_ARMLINUXGCC_AARCH64_ASM_PATH        = ENV(AARCH64LINUXGCC_TOOLS_PATH)aarch64-linux-gnu-as
     6823*_ARMLINUXGCC_AARCH64_PP_PATH         = ENV(AARCH64LINUXGCC_TOOLS_PATH)aarch64-linux-gnu-gcc
     6824*_ARMLINUXGCC_AARCH64_VFRPP_PATH      = ENV(AARCH64LINUXGCC_TOOLS_PATH)aarch64-linux-gnu-gcc
     6825
     6826#
     6827# Use default values, or override in DSC file
     6828#
     6829*_ARMLINUXGCC_AARCH64_ARCHCC_FLAGS    =
     6830*_ARMLINUXGCC_AARCH64_ARCHASM_FLAGS   =
     6831*_ARMLINUXGCC_AARCH64_ARCHDLINK_FLAGS =
     6832*_ARMLINUXGCC_AARCH64_PLATFORM_FLAGS  =
     6833
     6834  DEBUG_ARMLINUXGCC_AARCH64_ASM_FLAGS   = $(ARCHASM_FLAGS) $(PLATFORM_FLAGS) -g
     6835RELEASE_ARMLINUXGCC_AARCH64_ASM_FLAGS   = $(ARCHASM_FLAGS) $(PLATFORM_FLAGS)
     6836
     6837*_ARMLINUXGCC_AARCH64_PP_FLAGS    = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -E -x assembler-with-cpp -include $(DEST_DIR_DEBUG)/AutoGen.h
     6838*_ARMLINUXGCC_AARCH64_VFRPP_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) -x c -E -P -DVFRCOMPILE --include $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h
     6839
     6840*_ARMLINUXGCC_AARCH64_SLINK_FLAGS =  -rc
     6841*_ARMLINUXGCC_AARCH64_DLINK_FLAGS =  $(ARCHDLINK_FLAGS) DEF(GCC_ARM_AARCH64_DLINK_COMMON)
     6842
     6843  DEBUG_ARMLINUXGCC_AARCH64_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_AARCH64_CC_FLAGS) -Wno-address -O0
     6844RELEASE_ARMLINUXGCC_AARCH64_CC_FLAGS = $(ARCHCC_FLAGS) $(PLATFORM_FLAGS) DEF(GCC_AARCH64_CC_FLAGS) -Wno-address -Wno-unused-but-set-variable
    48766845
    48776846#################
     
    49146883
    49156884##################
     6885# Rsa2048Sha256Sign tool definitions
     6886#
     6887# Notes: This tool defintion uses a test signing key for development purposes only.
     6888#        The tool Rsa2048Sha256GenerateKeys can be used to generate a new private/public key
     6889#        and the gEfiSecurityPkgTokenSpaceGuid.PcdRsa2048Sha256PublicKeyBuffer PCD value.
     6890#        A custom tool/script can be implemented using the new private/public key with
     6891#        the Rsa2048Sha256Sign tool and this tool defintiion can be updated to use a
     6892#        custom tool/script.
     6893#
     6894#   Generate new private/public key and gEfiSecurityPkgTokenSpaceGuid.PcdRsa2048Sha256PublicKeyBuffer PCD value
     6895#
     6896#       Rsa2048Sha256GenerateKeys.py -o MyKey.pem --public-key-hash-c MyKey.pcd
     6897#
     6898#   Custom script example (MyRsa2048Sha256Sign.cmd):
     6899#
     6900#       Rsa2048Sha256Sign --private-key MyKey.pem %1 %2 %3 %4 %5 %6 %7 %8 %9
     6901#
     6902#   WARNING: Vendors that uses private keys are responsible for proper management and protection
     6903#            of private keys.  Vendors may choose to use infrastructure such as signing servers
     6904#            or signing portals to support the management and protection of private keys.
     6905#
     6906##################
     6907*_*_*_RSA2048SHA256SIGN_PATH = Rsa2048Sha256Sign
     6908*_*_*_RSA2048SHA256SIGN_GUID = A7717414-C616-4977-9420-844712A735BF
     6909
     6910##################
    49166911# LzmaCompress tool definitions
    49176912##################
     
    49386933*_*_*_VPDTOOL_PATH         = BPDG
    49396934*_*_*_VPDTOOL_GUID         = 8C3D856A-9BE6-468E-850A-24F7A8D38E08
     6935
     6936##################
     6937# NASM tool definitions
     6938##################
     6939*_*_*_NASM_PATH                = ENV(NASM_PREFIX)nasm
     6940# NASMB uses NASM produce a .bin from a .nasmb NASM source file
     6941*_*_*_NASMB_FLAGS              = -f bin
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette