Compare commits
250 Commits
edk2-stabl
...
edk2-stabl
Author | SHA1 | Date | |
---|---|---|---|
|
d02dbb53cd | ||
|
672bd1c711 | ||
|
ac6e5d6b41 | ||
|
d497eace3b | ||
|
b40bdd6ecd | ||
|
3c6107758b | ||
|
4de77ae989 | ||
|
97fdcbda4e | ||
|
0856cdc89e | ||
|
9abc60f9f7 | ||
|
6355287206 | ||
|
55266a9b8a | ||
|
45f3dd2ce9 | ||
|
19107590b6 | ||
|
94e065582b | ||
|
a97e9e327e | ||
|
db959018b6 | ||
|
b926956418 | ||
|
3d427c5f83 | ||
|
12a4d0cb9d | ||
|
9732659698 | ||
|
bb806a6e88 | ||
|
2b47aaecef | ||
|
03e77558d4 | ||
|
fc50df0d8e | ||
|
0b1b0a9674 | ||
|
2e1fb41339 | ||
|
3445058aea | ||
|
610bcc69ed | ||
|
8e6bb64fe4 | ||
|
514b3aa08e | ||
|
385b9d80a0 | ||
|
0deeab36d1 | ||
|
5ace477f34 | ||
|
d10ad8444f | ||
|
6bf5580a3d | ||
|
c73e31f54d | ||
|
0cb48007f7 | ||
|
a26a08dc1f | ||
|
35e267cb34 | ||
|
f05eb2dfe5 | ||
|
dc485c556d | ||
|
7f05102f65 | ||
|
b461d67639 | ||
|
ab796d3e2a | ||
|
ac70e71b1f | ||
|
147f34b56c | ||
|
878a92a887 | ||
|
4d28a1c2fd | ||
|
332632abf3 | ||
|
2f5ad3f451 | ||
|
28ef05ce10 | ||
|
8781b143de | ||
|
391cffcb61 | ||
|
097aeeb119 | ||
|
c32c5911c4 | ||
|
83b43c4cb1 | ||
|
885efcd3f9 | ||
|
fddb8d24ec | ||
|
4bac086e8e | ||
|
cac83b6f3b | ||
|
be282b1493 | ||
|
91f5d3b410 | ||
|
d0b6596b8e | ||
|
9bf4aee734 | ||
|
7d748705b1 | ||
|
fda5226aa3 | ||
|
fb5b6220a9 | ||
|
50672d2692 | ||
|
a050c599df | ||
|
22fe311bd2 | ||
|
40a9066439 | ||
|
3de3c24755 | ||
|
ad1009ec62 | ||
|
5ef08a49e3 | ||
|
b491eace37 | ||
|
84af6ea320 | ||
|
cc89d245f9 | ||
|
f47c4676dd | ||
|
b560e9d9b6 | ||
|
0e3b6bd0ee | ||
|
c28fc8ab3b | ||
|
31fcee6d99 | ||
|
4c051c2c65 | ||
|
d10e058016 | ||
|
0a6b303dce | ||
|
b3db0cb1f8 | ||
|
44ced03798 | ||
|
1e0c441c92 | ||
|
fea7901dba | ||
|
8697dc60cc | ||
|
bb33c27fbe | ||
|
47fea2abcb | ||
|
903ce1d8f8 | ||
|
7b6c2b2a26 | ||
|
7eba9f698e | ||
|
49eeda113a | ||
|
3cde0d553d | ||
|
939ed3a592 | ||
|
580b11201e | ||
|
55dee4947b | ||
|
b37cfdd280 | ||
|
9421f5ab8d | ||
|
cf20302474 | ||
|
24b0e9d128 | ||
|
932449710c | ||
|
5a2e030f73 | ||
|
d1fc3d7ef3 | ||
|
27b8a52957 | ||
|
abfff7c45d | ||
|
17143c4837 | ||
|
f0a3f6d9c3 | ||
|
333a866106 | ||
|
19a541d70e | ||
|
8efd912baf | ||
|
caa139fe17 | ||
|
3eb72b308a | ||
|
2db0ed93ff | ||
|
86e6948cfb | ||
|
6b69f73b59 | ||
|
27cb64fffc | ||
|
b208d37c73 | ||
|
0ff6de9358 | ||
|
d63595c3c9 | ||
|
a75c029f60 | ||
|
ea0bd5f6a7 | ||
|
82f727c4af | ||
|
12e34cd2f7 | ||
|
eba32695ee | ||
|
18b2272e4d | ||
|
20ca528828 | ||
|
7471751a4d | ||
|
1e5e58d39b | ||
|
4dda0f7ab4 | ||
|
5959879e92 | ||
|
d9a7612f8d | ||
|
6cfeeb71c4 | ||
|
a63914d3f6 | ||
|
1162ae8297 | ||
|
2847c72fda | ||
|
cdf7544703 | ||
|
04ddd1271e | ||
|
610385fa3b | ||
|
9cf9de668f | ||
|
1b380aa603 | ||
|
ab2b389e7a | ||
|
fe471d4a57 | ||
|
c511426abe | ||
|
fa24b6ed26 | ||
|
8c0d678063 | ||
|
761329ee27 | ||
|
75293330ea | ||
|
302a8f353c | ||
|
70e8c9c3bc | ||
|
9d53e01efe | ||
|
99de2e7e03 | ||
|
b597b6e24c | ||
|
d8c18ba3f4 | ||
|
d58016b768 | ||
|
11b1c1d4b9 | ||
|
1ad794b627 | ||
|
288bd74a22 | ||
|
b8649cf2a3 | ||
|
54e90edaed | ||
|
47b76780b4 | ||
|
dc469f1371 | ||
|
d90fff40cb | ||
|
cf01b2dc8f | ||
|
e8f28b09e6 | ||
|
95616b8661 | ||
|
29cab43bb7 | ||
|
83761337ec | ||
|
702ba436ed | ||
|
beb443fde0 | ||
|
558d83ab1a | ||
|
ddb3fdbef3 | ||
|
51adb689e1 | ||
|
ce270905bf | ||
|
d4a8aaee73 | ||
|
9d84e74ca0 | ||
|
a8ab14424e | ||
|
4db374562f | ||
|
5072593738 | ||
|
7e25086a00 | ||
|
8af38170b5 | ||
|
4c81178cf0 | ||
|
33d4f3e39e | ||
|
242678da2a | ||
|
307763c3da | ||
|
c2f24ba321 | ||
|
e120c962f5 | ||
|
32fef03563 | ||
|
984c93ece3 | ||
|
8c8f886f27 | ||
|
b005f9f1f5 | ||
|
e43cca74ad | ||
|
2833589ad0 | ||
|
8899e3fe6a | ||
|
d06eb2d1d9 | ||
|
3357ac7380 | ||
|
e7641171b6 | ||
|
d491c88a0c | ||
|
4174c5c787 | ||
|
8f8d3d90c5 | ||
|
3f975ee570 | ||
|
d6ba8aa6ef | ||
|
4115840c28 | ||
|
a31fcb5096 | ||
|
c9bba52fc7 | ||
|
cc302b799e | ||
|
747b1ef725 | ||
|
6d1e56e715 | ||
|
180f1908b3 | ||
|
2a85d9b07e | ||
|
ae4aa4a346 | ||
|
d697037446 | ||
|
7bc04a75a7 | ||
|
aa7f19f480 | ||
|
e25566cd2b | ||
|
924c2b847f | ||
|
e1636fe18f | ||
|
4b56ad2049 | ||
|
cf9959adff | ||
|
c6b872c6ab | ||
|
c1aa3bab12 | ||
|
c410ad4da4 | ||
|
75e9154f81 | ||
|
1f515342d8 | ||
|
039e07f626 | ||
|
b5379899b3 | ||
|
b233eb1849 | ||
|
fdf3666f01 | ||
|
197e27c90a | ||
|
d3ff5dbe1d | ||
|
fe5da0927a | ||
|
adfa3327d4 | ||
|
b4a8de5d27 | ||
|
8ee4e52ba8 | ||
|
c394fa4c9e | ||
|
901a9bfc3a | ||
|
2b5b2ff04d | ||
|
5a7cbd54a1 | ||
|
dfd41aef78 | ||
|
4665fa6503 | ||
|
f0983b2074 | ||
|
34e16ff883 | ||
|
f828fc9876 | ||
|
0095070e70 | ||
|
dbc22a1785 | ||
|
b8ed8c0fb2 |
@@ -67,23 +67,3 @@ jobs:
|
||||
build_pkgs: $(Build.Pkgs)
|
||||
build_targets: $(Build.Targets)
|
||||
build_archs: ${{ parameters.arch_list }}
|
||||
|
||||
- job: FINISHED
|
||||
dependsOn: Build_${{ parameters.tool_chain_tag }}
|
||||
condition: succeeded()
|
||||
steps:
|
||||
- checkout: none
|
||||
- script: |
|
||||
echo FINISHED
|
||||
sleep 10
|
||||
displayName: FINISHED
|
||||
|
||||
- job: FAILED
|
||||
dependsOn: Build_${{ parameters.tool_chain_tag }}
|
||||
condition: failed()
|
||||
steps:
|
||||
- checkout: none
|
||||
- script: |
|
||||
echo FAILED
|
||||
sleep 10
|
||||
displayName: FAILED
|
||||
|
@@ -13,7 +13,7 @@ parameters:
|
||||
steps:
|
||||
- task: NodeTool@0
|
||||
inputs:
|
||||
versionSpec: '10.x'
|
||||
versionSpec: '14.x'
|
||||
#checkLatest: false # Optional
|
||||
condition: and(gt(variables.pkg_count, 0), succeeded())
|
||||
|
||||
|
@@ -16,7 +16,7 @@
|
||||
# * This file must be checked into the 'default' branch of a repo. Copies
|
||||
# of this file on other branches of a repo are ignored by Mergify.
|
||||
#
|
||||
# Copyright (c) 2019 - 2020, Intel Corporation. All rights reserved.<BR>
|
||||
# Copyright (c) 2019 - 2021, Intel Corporation. All rights reserved.<BR>
|
||||
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
#
|
||||
# https://github.com/apps/mergify
|
||||
@@ -24,74 +24,27 @@
|
||||
#
|
||||
##
|
||||
|
||||
pull_request_rules:
|
||||
queue_rules:
|
||||
- name: default
|
||||
conditions:
|
||||
- base~=(^main|^master|^stable/)
|
||||
- label=push
|
||||
|
||||
pull_request_rules:
|
||||
- name: Automatically merge a PR when all required checks pass and 'push' label is present
|
||||
conditions:
|
||||
- base~=(^master|^stable/)
|
||||
- base~=(^main|^master|^stable/)
|
||||
- label=push
|
||||
- author=@tianocore/edk-ii-maintainers
|
||||
- status-success=tianocore.PatchCheck
|
||||
- status-success=Ubuntu GCC5 PR
|
||||
- status-success=Windows VS2019 PR
|
||||
actions:
|
||||
merge:
|
||||
strict: true
|
||||
queue:
|
||||
method: rebase
|
||||
|
||||
- name: Automatically close a PR when all required checks pass and 'push' label is not present
|
||||
conditions:
|
||||
- base~=(^master|^stable/)
|
||||
- -label=push
|
||||
- -closed
|
||||
- status-success=tianocore.PatchCheck
|
||||
- status-success=Ubuntu GCC5 PR
|
||||
- status-success=Windows VS2019 PR
|
||||
- status-success=Ubuntu GCC5 PR (FINISHED)
|
||||
- status-success=Windows VS2019 PR (FINISHED)
|
||||
actions:
|
||||
close:
|
||||
message: All checks passed. Auto close personal build.
|
||||
rebase_fallback: none
|
||||
name: default
|
||||
|
||||
- name: Post a comment on a PR that can not be merged due to a merge conflict
|
||||
conditions:
|
||||
- base~=(^master|^stable/)
|
||||
- base~=(^main|^master|^stable/)
|
||||
- conflict
|
||||
actions:
|
||||
comment:
|
||||
message: PR can not be merged due to conflict. Please rebase and resubmit
|
||||
|
||||
- name: Automatically close a PR that fails the EDK II Maintainers membership check and 'push' label is present
|
||||
conditions:
|
||||
- base~=(^master|^stable/)
|
||||
- label=push
|
||||
- -author=@tianocore/edk-ii-maintainers
|
||||
actions:
|
||||
close:
|
||||
message: PR submitter is not a member of the Tianocore EDK II Maintainers team
|
||||
|
||||
- name: Post a comment on a PR if PatchCheck fails
|
||||
conditions:
|
||||
- base~=(^master|^stable/)
|
||||
- status-failure=tianocore.PatchCheck
|
||||
actions:
|
||||
comment:
|
||||
message: PR can not be merged due to a PatchCheck failure. Please resolve and resubmit
|
||||
|
||||
- name: Post a comment on a PR if Ubuntu GCC5 fails
|
||||
conditions:
|
||||
- base~=(^master|^stable/)
|
||||
- status-failure=Ubuntu GCC5 PR
|
||||
- status-success=Ubuntu GCC5 PR (FAILED)
|
||||
actions:
|
||||
comment:
|
||||
message: PR can not be merged due to an Ubuntu GCC5 failure. Please resolve and resubmit
|
||||
|
||||
- name: Post a comment on a PR if Windows VS2019 fails
|
||||
conditions:
|
||||
- base~=(^master|^stable/)
|
||||
- status-failure=Windows VS2019 PR
|
||||
- status-success=Windows VS2019 PR (FAILED)
|
||||
actions:
|
||||
comment:
|
||||
message: PR can not be merged due to a Windows VS2019 failure. Please resolve and resubmit
|
||||
|
@@ -1,5 +1,6 @@
|
||||
# @file EccCheck.py
|
||||
#
|
||||
# Copyright (c) 2021, Arm Limited. All rights reserved.<BR>
|
||||
# Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>
|
||||
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
##
|
||||
@@ -60,18 +61,20 @@ class EccCheck(ICiBuildPlugin):
|
||||
# - Junit Logger
|
||||
# - output_stream the StringIO output stream from this plugin via logging
|
||||
def RunBuildPlugin(self, packagename, Edk2pathObj, pkgconfig, environment, PLM, PLMHelper, tc, output_stream=None):
|
||||
edk2_path = Edk2pathObj.WorkspacePath
|
||||
python_path = os.path.join(edk2_path, "BaseTools", "Source", "Python")
|
||||
workspace_path = Edk2pathObj.WorkspacePath
|
||||
basetools_path = environment.GetValue("EDK_TOOLS_PATH")
|
||||
python_path = os.path.join(basetools_path, "Source", "Python")
|
||||
env = shell_environment.GetEnvironment()
|
||||
env.set_shell_var('PYTHONPATH', python_path)
|
||||
env.set_shell_var('WORKSPACE', edk2_path)
|
||||
env.set_shell_var('WORKSPACE', workspace_path)
|
||||
env.set_shell_var('PACKAGES_PATH', os.pathsep.join(Edk2pathObj.PackagePathList))
|
||||
self.ECC_PASS = True
|
||||
self.ApplyConfig(pkgconfig, edk2_path, packagename)
|
||||
self.ApplyConfig(pkgconfig, workspace_path, basetools_path, packagename)
|
||||
modify_dir_list = self.GetModifyDir(packagename)
|
||||
patch = self.GetDiff(packagename)
|
||||
ecc_diff_range = self.GetDiffRange(patch, packagename, edk2_path)
|
||||
self.GenerateEccReport(modify_dir_list, ecc_diff_range, edk2_path)
|
||||
ecc_log = os.path.join(edk2_path, "Ecc.log")
|
||||
ecc_diff_range = self.GetDiffRange(patch, packagename, workspace_path)
|
||||
self.GenerateEccReport(modify_dir_list, ecc_diff_range, workspace_path, basetools_path)
|
||||
ecc_log = os.path.join(workspace_path, "Ecc.log")
|
||||
self.RevertCode()
|
||||
if self.ECC_PASS:
|
||||
tc.SetSuccess()
|
||||
@@ -176,24 +179,24 @@ class EccCheck(ICiBuildPlugin):
|
||||
return comment_range
|
||||
|
||||
def GenerateEccReport(self, modify_dir_list: List[str], ecc_diff_range: Dict[str, List[Tuple[int, int]]],
|
||||
edk2_path: str) -> None:
|
||||
workspace_path: str, basetools_path: str) -> None:
|
||||
ecc_need = False
|
||||
ecc_run = True
|
||||
config = os.path.join(edk2_path, "BaseTools", "Source", "Python", "Ecc", "config.ini")
|
||||
exception = os.path.join(edk2_path, "BaseTools", "Source", "Python", "Ecc", "exception.xml")
|
||||
report = os.path.join(edk2_path, "Ecc.csv")
|
||||
config = os.path.join(basetools_path, "Source", "Python", "Ecc", "config.ini")
|
||||
exception = os.path.join(basetools_path, "Source", "Python", "Ecc", "exception.xml")
|
||||
report = os.path.join(workspace_path, "Ecc.csv")
|
||||
for modify_dir in modify_dir_list:
|
||||
target = os.path.join(edk2_path, modify_dir)
|
||||
target = os.path.join(workspace_path, modify_dir)
|
||||
logging.info('Run ECC tool for the commit in %s' % modify_dir)
|
||||
ecc_need = True
|
||||
ecc_params = "-c {0} -e {1} -t {2} -r {3}".format(config, exception, target, report)
|
||||
return_code = RunCmd("Ecc", ecc_params, workingdir=edk2_path)
|
||||
return_code = RunCmd("Ecc", ecc_params, workingdir=workspace_path)
|
||||
if return_code != 0:
|
||||
ecc_run = False
|
||||
break
|
||||
if not ecc_run:
|
||||
logging.error('Fail to run ECC tool')
|
||||
self.ParseEccReport(ecc_diff_range, edk2_path)
|
||||
self.ParseEccReport(ecc_diff_range, workspace_path)
|
||||
|
||||
if not ecc_need:
|
||||
logging.info("Doesn't need run ECC check")
|
||||
@@ -202,13 +205,12 @@ class EccCheck(ICiBuildPlugin):
|
||||
RunCmd("git", revert_params)
|
||||
return
|
||||
|
||||
def ParseEccReport(self, ecc_diff_range: Dict[str, List[Tuple[int, int]]], edk2_path: str) -> None:
|
||||
ecc_log = os.path.join(edk2_path, "Ecc.log")
|
||||
ecc_csv = "Ecc.csv"
|
||||
file = os.listdir(edk2_path)
|
||||
def ParseEccReport(self, ecc_diff_range: Dict[str, List[Tuple[int, int]]], workspace_path: str) -> None:
|
||||
ecc_log = os.path.join(workspace_path, "Ecc.log")
|
||||
ecc_csv = os.path.join(workspace_path, "Ecc.csv")
|
||||
row_lines = []
|
||||
ignore_error_code = self.GetIgnoreErrorCode()
|
||||
if ecc_csv in file:
|
||||
if os.path.exists(ecc_csv):
|
||||
with open(ecc_csv) as csv_file:
|
||||
reader = csv.reader(csv_file)
|
||||
for row in reader:
|
||||
@@ -234,10 +236,10 @@ class EccCheck(ICiBuildPlugin):
|
||||
log.writelines(all_line)
|
||||
return
|
||||
|
||||
def ApplyConfig(self, pkgconfig: Dict[str, List[str]], edk2_path: str, pkg: str) -> None:
|
||||
def ApplyConfig(self, pkgconfig: Dict[str, List[str]], workspace_path: str, basetools_path: str, pkg: str) -> None:
|
||||
if "IgnoreFiles" in pkgconfig:
|
||||
for a in pkgconfig["IgnoreFiles"]:
|
||||
a = os.path.join(edk2_path, pkg, a)
|
||||
a = os.path.join(workspace_path, pkg, a)
|
||||
a = a.replace(os.sep, "/")
|
||||
|
||||
logging.info("Ignoring Files {0}".format(a))
|
||||
@@ -251,7 +253,7 @@ class EccCheck(ICiBuildPlugin):
|
||||
|
||||
if "ExceptionList" in pkgconfig:
|
||||
exception_list = pkgconfig["ExceptionList"]
|
||||
exception_xml = os.path.join(edk2_path, "BaseTools", "Source", "Python", "Ecc", "exception.xml")
|
||||
exception_xml = os.path.join(basetools_path, "Source", "Python", "Ecc", "exception.xml")
|
||||
try:
|
||||
logging.info("Appending exceptions")
|
||||
self.AppendException(exception_list, exception_xml)
|
||||
|
@@ -37,12 +37,12 @@ class SpellCheck(ICiBuildPlugin):
|
||||
#
|
||||
# A package can remove any of these using IgnoreStandardPaths
|
||||
#
|
||||
STANDARD_PLUGIN_DEFINED_PATHS = ["*.c", "*.h",
|
||||
STANDARD_PLUGIN_DEFINED_PATHS = ("*.c", "*.h",
|
||||
"*.nasm", "*.asm", "*.masm", "*.s",
|
||||
"*.asl",
|
||||
"*.dsc", "*.dec", "*.fdf", "*.inf",
|
||||
"*.md", "*.txt"
|
||||
]
|
||||
)
|
||||
|
||||
def GetTestName(self, packagename: str, environment: VarDict) -> tuple:
|
||||
""" Provide the testcase name and classname for use in reporting
|
||||
@@ -107,7 +107,8 @@ class SpellCheck(ICiBuildPlugin):
|
||||
version_aggregator.GetVersionAggregator().ReportVersion(
|
||||
"CSpell", cspell_version, version_aggregator.VersionTypes.INFO)
|
||||
|
||||
package_relative_paths_to_spell_check = SpellCheck.STANDARD_PLUGIN_DEFINED_PATHS
|
||||
# copy the default as a list
|
||||
package_relative_paths_to_spell_check = list(SpellCheck.STANDARD_PLUGIN_DEFINED_PATHS)
|
||||
|
||||
#
|
||||
# Allow the ci.yaml to remove any of the above standard paths
|
||||
@@ -133,7 +134,8 @@ class SpellCheck(ICiBuildPlugin):
|
||||
#
|
||||
relpath = os.path.relpath(abs_pkg_path)
|
||||
cpsell_paths = " ".join(
|
||||
[f"{relpath}/**/{x}" for x in package_relative_paths_to_spell_check])
|
||||
# Double quote each path to defer expansion to cspell parameters
|
||||
[f'"{relpath}/**/{x}"' for x in package_relative_paths_to_spell_check])
|
||||
|
||||
# Make the config file
|
||||
config_file_path = os.path.join(
|
||||
|
@@ -94,13 +94,18 @@
|
||||
"ackintid",
|
||||
"actlr",
|
||||
"aeabi",
|
||||
"asedis",
|
||||
"ashldi",
|
||||
"ashrdi",
|
||||
"baddr",
|
||||
"ccidx",
|
||||
"ccsidr",
|
||||
"clidr",
|
||||
"clrex",
|
||||
"clzsi",
|
||||
"cnthctl",
|
||||
"cortexa",
|
||||
"cpacr",
|
||||
"cpuactlr",
|
||||
"csselr",
|
||||
"ctzsi",
|
||||
@@ -116,6 +121,7 @@
|
||||
"divdi",
|
||||
"divsi",
|
||||
"dmdepkg",
|
||||
"dpref",
|
||||
"drsub",
|
||||
"fcmpeq",
|
||||
"fcmpge",
|
||||
@@ -125,17 +131,25 @@
|
||||
"ffreestanding",
|
||||
"frsub",
|
||||
"hisilicon",
|
||||
"iccabpr",
|
||||
"iccbpr",
|
||||
"icciar",
|
||||
"iccicr",
|
||||
"icciidr",
|
||||
"iccpir",
|
||||
"iccpmr",
|
||||
"iccrpr",
|
||||
"icdabr",
|
||||
"icdicer",
|
||||
"icdicfr",
|
||||
"icdicpr",
|
||||
"icdictr",
|
||||
"icdiidr",
|
||||
"icdiser",
|
||||
"icdisr",
|
||||
"icdppisr",
|
||||
"icdsgir",
|
||||
"icdspr",
|
||||
"icenabler",
|
||||
"intid",
|
||||
"ipriority",
|
||||
@@ -160,6 +174,7 @@
|
||||
"lshrdi",
|
||||
"moddi",
|
||||
"modsi",
|
||||
"mpcore",
|
||||
"mpidr",
|
||||
"muldi",
|
||||
"mullu",
|
||||
@@ -168,6 +183,9 @@
|
||||
"nsasedis",
|
||||
"nuvia",
|
||||
"oldit",
|
||||
"pcten",
|
||||
"plpis",
|
||||
"procno",
|
||||
"readc",
|
||||
"revsh",
|
||||
"rfedb",
|
||||
@@ -189,6 +207,7 @@
|
||||
"smmlsr",
|
||||
"sourcery",
|
||||
"srsdb",
|
||||
"ssacr",
|
||||
"stmdb",
|
||||
"stmia",
|
||||
"strbt",
|
||||
|
112
ArmPkg/Include/IndustryStandard/ArmCache.h
Normal file
112
ArmPkg/Include/IndustryStandard/ArmCache.h
Normal file
@@ -0,0 +1,112 @@
|
||||
/** @file
|
||||
|
||||
Copyright (c) 2020 - 2021, NUVIA Inc. All rights reserved.<BR>
|
||||
|
||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
|
||||
**/
|
||||
|
||||
#ifndef ARM_CACHE_H_
|
||||
#define ARM_CACHE_H_
|
||||
|
||||
#include <Uefi/UefiBaseType.h>
|
||||
|
||||
// The ARM Architecture Reference Manual for ARMv8-A defines up
|
||||
// to 7 levels of cache, L1 through L7.
|
||||
#define MAX_ARM_CACHE_LEVEL 7
|
||||
|
||||
/// Defines the structure of the CSSELR (Cache Size Selection) register
|
||||
typedef union {
|
||||
struct {
|
||||
UINT32 InD :1; ///< Instruction not Data bit
|
||||
UINT32 Level :3; ///< Cache level (zero based)
|
||||
UINT32 TnD :1; ///< Allocation not Data bit
|
||||
UINT32 Reserved :27; ///< Reserved, RES0
|
||||
} Bits; ///< Bitfield definition of the register
|
||||
UINT32 Data; ///< The entire 32-bit value
|
||||
} CSSELR_DATA;
|
||||
|
||||
/// The cache type values for the InD field of the CSSELR register
|
||||
typedef enum
|
||||
{
|
||||
/// Select the data or unified cache
|
||||
CsselrCacheTypeDataOrUnified = 0,
|
||||
/// Select the instruction cache
|
||||
CsselrCacheTypeInstruction,
|
||||
CsselrCacheTypeMax
|
||||
} CSSELR_CACHE_TYPE;
|
||||
|
||||
/// Defines the structure of the CCSIDR (Current Cache Size ID) register
|
||||
typedef union {
|
||||
struct {
|
||||
UINT64 LineSize :3; ///< Line size (Log2(Num bytes in cache) - 4)
|
||||
UINT64 Associativity :10; ///< Associativity - 1
|
||||
UINT64 NumSets :15; ///< Number of sets in the cache -1
|
||||
UINT64 Unknown :4; ///< Reserved, UNKNOWN
|
||||
UINT64 Reserved :32; ///< Reserved, RES0
|
||||
} BitsNonCcidx; ///< Bitfield definition of the register when FEAT_CCIDX is not supported.
|
||||
struct {
|
||||
UINT64 LineSize :3; ///< Line size (Log2(Num bytes in cache) - 4)
|
||||
UINT64 Associativity :21; ///< Associativity - 1
|
||||
UINT64 Reserved1 :8; ///< Reserved, RES0
|
||||
UINT64 NumSets :24; ///< Number of sets in the cache -1
|
||||
UINT64 Reserved2 :8; ///< Reserved, RES0
|
||||
} BitsCcidxAA64; ///< Bitfield definition of the register when FEAT_IDX is supported.
|
||||
struct {
|
||||
UINT64 LineSize : 3;
|
||||
UINT64 Associativity : 21;
|
||||
UINT64 Reserved : 8;
|
||||
UINT64 Unallocated : 32;
|
||||
} BitsCcidxAA32;
|
||||
UINT64 Data; ///< The entire 64-bit value
|
||||
} CCSIDR_DATA;
|
||||
|
||||
/// Defines the structure of the AARCH32 CCSIDR2 register.
|
||||
typedef union {
|
||||
struct {
|
||||
UINT32 NumSets :24; ///< Number of sets in the cache - 1
|
||||
UINT32 Reserved :8; ///< Reserved, RES0
|
||||
} Bits; ///< Bitfield definition of the register
|
||||
UINT32 Data; ///< The entire 32-bit value
|
||||
} CCSIDR2_DATA;
|
||||
|
||||
/** Defines the structure of the CLIDR (Cache Level ID) register.
|
||||
*
|
||||
* The lower 32 bits are the same for both AARCH32 and AARCH64
|
||||
* so we can use the same structure for both.
|
||||
**/
|
||||
typedef union {
|
||||
struct {
|
||||
UINT32 Ctype1 : 3; ///< Level 1 cache type
|
||||
UINT32 Ctype2 : 3; ///< Level 2 cache type
|
||||
UINT32 Ctype3 : 3; ///< Level 3 cache type
|
||||
UINT32 Ctype4 : 3; ///< Level 4 cache type
|
||||
UINT32 Ctype5 : 3; ///< Level 5 cache type
|
||||
UINT32 Ctype6 : 3; ///< Level 6 cache type
|
||||
UINT32 Ctype7 : 3; ///< Level 7 cache type
|
||||
UINT32 LoUIS : 3; ///< Level of Unification Inner Shareable
|
||||
UINT32 LoC : 3; ///< Level of Coherency
|
||||
UINT32 LoUU : 3; ///< Level of Unification Uniprocessor
|
||||
UINT32 Icb : 3; ///< Inner Cache Boundary
|
||||
} Bits; ///< Bitfield definition of the register
|
||||
UINT32 Data; ///< The entire 32-bit value
|
||||
} CLIDR_DATA;
|
||||
|
||||
/// The cache types reported in the CLIDR register.
|
||||
typedef enum {
|
||||
/// No cache is present
|
||||
ClidrCacheTypeNone = 0,
|
||||
/// There is only an instruction cache
|
||||
ClidrCacheTypeInstructionOnly,
|
||||
/// There is only a data cache
|
||||
ClidrCacheTypeDataOnly,
|
||||
/// There are separate data and instruction caches
|
||||
ClidrCacheTypeSeparate,
|
||||
/// There is a unified cache
|
||||
ClidrCacheTypeUnified,
|
||||
ClidrCacheTypeMax
|
||||
} CLIDR_CACHE_TYPE;
|
||||
|
||||
#define CLIDR_GET_CACHE_TYPE(x, level) ((x >> (3 * (level))) & 0b111)
|
||||
|
||||
#endif /* ARM_CACHE_H_ */
|
@@ -2,7 +2,7 @@
|
||||
|
||||
Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
|
||||
Copyright (c) 2011 - 2016, ARM Ltd. All rights reserved.<BR>
|
||||
Copyright (c) 2020, NUVIA Inc. All rights reserved.<BR>
|
||||
Copyright (c) 2020 - 2021, NUVIA Inc. All rights reserved.<BR>
|
||||
|
||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
|
||||
@@ -109,9 +109,37 @@ typedef enum {
|
||||
#define GET_MPID(ClusterId, CoreId) (((ClusterId) << 8) | (CoreId))
|
||||
#define PRIMARY_CORE_ID (PcdGet32(PcdArmPrimaryCore) & ARM_CORE_MASK)
|
||||
|
||||
// The ARM Architecture Reference Manual for ARMv8-A defines up
|
||||
// to 7 levels of cache, L1 through L7.
|
||||
#define MAX_ARM_CACHE_LEVEL 7
|
||||
/** Reads the CCSIDR register for the specified cache.
|
||||
|
||||
@param CSSELR The CSSELR cache selection register value.
|
||||
|
||||
@return The contents of the CCSIDR_EL1 register for the specified cache, when in AARCH64 mode.
|
||||
Returns the contents of the CCSIDR register in AARCH32 mode.
|
||||
**/
|
||||
UINTN
|
||||
ReadCCSIDR (
|
||||
IN UINT32 CSSELR
|
||||
);
|
||||
|
||||
/** Reads the CCSIDR2 for the specified cache.
|
||||
|
||||
@param CSSELR The CSSELR cache selection register value
|
||||
|
||||
@return The contents of the CCSIDR2 register for the specified cache.
|
||||
**/
|
||||
UINT32
|
||||
ReadCCSIDR2 (
|
||||
IN UINT32 CSSELR
|
||||
);
|
||||
|
||||
/** Reads the Cache Level ID (CLIDR) register.
|
||||
|
||||
@return The contents of the CLIDR_EL1 register.
|
||||
**/
|
||||
UINT32
|
||||
ReadCLIDR (
|
||||
VOID
|
||||
);
|
||||
|
||||
UINTN
|
||||
EFIAPI
|
||||
|
@@ -52,101 +52,6 @@
|
||||
#define CACHE_ARCHITECTURE_UNIFIED (0UL)
|
||||
#define CACHE_ARCHITECTURE_SEPARATE (1UL)
|
||||
|
||||
|
||||
/// Defines the structure of the CSSELR (Cache Size Selection) register
|
||||
typedef union {
|
||||
struct {
|
||||
UINT32 InD :1; ///< Instruction not Data bit
|
||||
UINT32 Level :3; ///< Cache level (zero based)
|
||||
UINT32 TnD :1; ///< Allocation not Data bit
|
||||
UINT32 Reserved :27; ///< Reserved, RES0
|
||||
} Bits; ///< Bitfield definition of the register
|
||||
UINT32 Data; ///< The entire 32-bit value
|
||||
} CSSELR_DATA;
|
||||
|
||||
/// The cache type values for the InD field of the CSSELR register
|
||||
typedef enum
|
||||
{
|
||||
/// Select the data or unified cache
|
||||
CsselrCacheTypeDataOrUnified = 0,
|
||||
/// Select the instruction cache
|
||||
CsselrCacheTypeInstruction,
|
||||
CsselrCacheTypeMax
|
||||
} CSSELR_CACHE_TYPE;
|
||||
|
||||
/// Defines the structure of the CCSIDR (Current Cache Size ID) register
|
||||
typedef union {
|
||||
struct {
|
||||
UINT64 LineSize :3; ///< Line size (Log2(Num bytes in cache) - 4)
|
||||
UINT64 Associativity :10; ///< Associativity - 1
|
||||
UINT64 NumSets :15; ///< Number of sets in the cache -1
|
||||
UINT64 Unknown :4; ///< Reserved, UNKNOWN
|
||||
UINT64 Reserved :32; ///< Reserved, RES0
|
||||
} BitsNonCcidx; ///< Bitfield definition of the register when FEAT_CCIDX is not supported.
|
||||
struct {
|
||||
UINT64 LineSize :3; ///< Line size (Log2(Num bytes in cache) - 4)
|
||||
UINT64 Associativity :21; ///< Associativity - 1
|
||||
UINT64 Reserved1 :8; ///< Reserved, RES0
|
||||
UINT64 NumSets :24; ///< Number of sets in the cache -1
|
||||
UINT64 Reserved2 :8; ///< Reserved, RES0
|
||||
} BitsCcidxAA64; ///< Bitfield definition of the register when FEAT_IDX is supported.
|
||||
struct {
|
||||
UINT64 LineSize : 3;
|
||||
UINT64 Associativity : 21;
|
||||
UINT64 Reserved : 8;
|
||||
UINT64 Unallocated : 32;
|
||||
} BitsCcidxAA32;
|
||||
UINT64 Data; ///< The entire 64-bit value
|
||||
} CCSIDR_DATA;
|
||||
|
||||
/// Defines the structure of the AARCH32 CCSIDR2 register.
|
||||
typedef union {
|
||||
struct {
|
||||
UINT32 NumSets :24; ///< Number of sets in the cache - 1
|
||||
UINT32 Reserved :8; ///< Reserved, RES0
|
||||
} Bits; ///< Bitfield definition of the register
|
||||
UINT32 Data; ///< The entire 32-bit value
|
||||
} CCSIDR2_DATA;
|
||||
|
||||
/** Defines the structure of the CLIDR (Cache Level ID) register.
|
||||
*
|
||||
* The lower 32 bits are the same for both AARCH32 and AARCH64
|
||||
* so we can use the same structure for both.
|
||||
**/
|
||||
typedef union {
|
||||
struct {
|
||||
UINT32 Ctype1 : 3; ///< Level 1 cache type
|
||||
UINT32 Ctype2 : 3; ///< Level 2 cache type
|
||||
UINT32 Ctype3 : 3; ///< Level 3 cache type
|
||||
UINT32 Ctype4 : 3; ///< Level 4 cache type
|
||||
UINT32 Ctype5 : 3; ///< Level 5 cache type
|
||||
UINT32 Ctype6 : 3; ///< Level 6 cache type
|
||||
UINT32 Ctype7 : 3; ///< Level 7 cache type
|
||||
UINT32 LoUIS : 3; ///< Level of Unification Inner Shareable
|
||||
UINT32 LoC : 3; ///< Level of Coherency
|
||||
UINT32 LoUU : 3; ///< Level of Unification Uniprocessor
|
||||
UINT32 Icb : 3; ///< Inner Cache Boundary
|
||||
} Bits; ///< Bitfield definition of the register
|
||||
UINT32 Data; ///< The entire 32-bit value
|
||||
} CLIDR_DATA;
|
||||
|
||||
/// The cache types reported in the CLIDR register.
|
||||
typedef enum {
|
||||
/// No cache is present
|
||||
ClidrCacheTypeNone = 0,
|
||||
/// There is only an instruction cache
|
||||
ClidrCacheTypeInstructionOnly,
|
||||
/// There is only a data cache
|
||||
ClidrCacheTypeDataOnly,
|
||||
/// There are separate data and instruction caches
|
||||
ClidrCacheTypeSeparate,
|
||||
/// There is a unified cache
|
||||
ClidrCacheTypeUnified,
|
||||
ClidrCacheTypeMax
|
||||
} CLIDR_CACHE_TYPE;
|
||||
|
||||
#define CLIDR_GET_CACHE_TYPE(x, level) ((x >> (3 * (level))) & 0b111)
|
||||
|
||||
VOID
|
||||
CPSRMaskInsert (
|
||||
IN UINT32 Mask,
|
||||
@@ -158,32 +63,4 @@ CPSRRead (
|
||||
VOID
|
||||
);
|
||||
|
||||
/** Reads the CCSIDR register for the specified cache.
|
||||
|
||||
@param CSSELR The CSSELR cache selection register value.
|
||||
|
||||
@return The contents of the CCSIDR_EL1 register for the specified cache, when in AARCH64 mode.
|
||||
Returns the contents of the CCSIDR register in AARCH32 mode.
|
||||
**/
|
||||
UINTN
|
||||
ReadCCSIDR (
|
||||
IN UINT32 CSSELR
|
||||
);
|
||||
|
||||
/** Reads the CCSIDR2 for the specified cache.
|
||||
|
||||
@param CSSELR The CSSELR cache selection register value
|
||||
|
||||
@return The contents of the CCSIDR2 register for the specified cache.
|
||||
**/
|
||||
UINT32
|
||||
ReadCCSIDR2 (
|
||||
IN UINT32 CSSELR
|
||||
);
|
||||
|
||||
UINT32
|
||||
ReadCLIDR (
|
||||
VOID
|
||||
);
|
||||
|
||||
#endif // ARM_LIB_PRIVATE_H_
|
||||
|
@@ -10,11 +10,11 @@
|
||||
|
||||
#include <Uefi.h>
|
||||
#include <Protocol/Smbios.h>
|
||||
#include <IndustryStandard/ArmCache.h>
|
||||
#include <IndustryStandard/ArmStdSmc.h>
|
||||
#include <IndustryStandard/SmBios.h>
|
||||
#include <Library/ArmLib.h>
|
||||
#include <Library/ArmSmcLib.h>
|
||||
#include <Library/ArmLib/ArmLibPrivate.h>
|
||||
#include <Library/BaseLib.h>
|
||||
#include <Library/BaseMemoryLib.h>
|
||||
#include <Library/DebugLib.h>
|
||||
|
@@ -8,8 +8,8 @@
|
||||
**/
|
||||
|
||||
#include <Uefi.h>
|
||||
#include <IndustryStandard/ArmCache.h>
|
||||
#include <Library/ArmLib.h>
|
||||
#include <Library/ArmLib/ArmLibPrivate.h>
|
||||
|
||||
#include "SmbiosProcessor.h"
|
||||
|
||||
|
@@ -8,8 +8,8 @@
|
||||
**/
|
||||
|
||||
#include <Uefi.h>
|
||||
#include <IndustryStandard/ArmCache.h>
|
||||
#include <Library/ArmLib.h>
|
||||
#include <Library/ArmLib/ArmLibPrivate.h>
|
||||
|
||||
#include "SmbiosProcessor.h"
|
||||
|
||||
|
@@ -8,10 +8,10 @@
|
||||
**/
|
||||
|
||||
#include <Uefi.h>
|
||||
#include <IndustryStandard/ArmCache.h>
|
||||
#include <IndustryStandard/ArmStdSmc.h>
|
||||
#include <IndustryStandard/SmBios.h>
|
||||
#include <Library/ArmLib.h>
|
||||
#include <Library/ArmLib/ArmLibPrivate.h>
|
||||
#include <Library/ArmSmcLib.h>
|
||||
#include <Library/BaseMemoryLib.h>
|
||||
|
||||
|
@@ -83,7 +83,7 @@
|
||||
|
||||
## options defined .pytool/Plugin/SpellCheck
|
||||
"SpellCheck": {
|
||||
"AuditOnly": False,
|
||||
"AuditOnly": True,
|
||||
"IgnoreFiles": [], # use gitignore syntax to ignore errors
|
||||
# in matching files
|
||||
"ExtendWords": [
|
||||
|
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2011-2013, ARM Limited. All rights reserved.
|
||||
# Copyright (c) 2011-2021, Arm Limited. All rights reserved.
|
||||
#
|
||||
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
#
|
||||
@@ -7,6 +7,8 @@
|
||||
from arm_ds.debugger_v1 import Debugger
|
||||
from arm_ds.debugger_v1 import DebugException
|
||||
|
||||
from console_loader import load_symbol_from_console
|
||||
|
||||
import re, sys, getopt
|
||||
|
||||
import edk2_debugger
|
||||
@@ -21,12 +23,16 @@ def usage():
|
||||
print "-m,--sysmem=(base,size): System Memory region"
|
||||
print "-f,--fv=(base,size): Firmware region"
|
||||
print "-r,--rom=(base,size): ROM region"
|
||||
print "-i,--input=: Filename for the EDK2 console output"
|
||||
print "-o,--objdump=: Path to the objdump tool"
|
||||
|
||||
verbose = False
|
||||
load_all = False
|
||||
report_file = None
|
||||
input_file = None
|
||||
objdump = None
|
||||
regions = []
|
||||
opts,args = getopt.getopt(sys.argv[1:], "hvar:vm:vr:vf:v", ["help","verbose","all","report=","sysmem=","rom=","fv="])
|
||||
opts,args = getopt.getopt(sys.argv[1:], "hvar:i:o:vm:vr:vf:v", ["help","verbose","all","report=","sysmem=","rom=","fv=","input=","objdump="])
|
||||
if (opts is None) or (not opts):
|
||||
report_file = '../../../report.log'
|
||||
else:
|
||||
@@ -55,6 +61,10 @@ else:
|
||||
elif o in ("-r","--rom"):
|
||||
region_type = edk2_debugger.ArmPlatformDebugger.REGION_TYPE_ROM
|
||||
regex = region_reg
|
||||
elif o in ("-i","--input"):
|
||||
input_file = a
|
||||
elif o in ("-o", "--objdump"):
|
||||
objdump = a
|
||||
else:
|
||||
assert False, "Unhandled option (%s)" % o
|
||||
|
||||
@@ -94,3 +104,6 @@ except Exception, (ErrorClass, ErrorMessage):
|
||||
print "Error(%s): %s" % (ErrorClass, ErrorMessage)
|
||||
except DebugException, de:
|
||||
print "DebugError: %s" % (de.getMessage())
|
||||
|
||||
if input_file:
|
||||
load_symbol_from_console(ec, input_file, objdump, verbose)
|
||||
|
68
ArmPlatformPkg/Scripts/Ds5/console_loader.py
Normal file
68
ArmPlatformPkg/Scripts/Ds5/console_loader.py
Normal file
@@ -0,0 +1,68 @@
|
||||
#
|
||||
# Copyright (c) 2021, Arm Limited. All rights reserved.
|
||||
#
|
||||
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
#
|
||||
|
||||
from arm_ds.debugger_v1 import DebugException
|
||||
|
||||
import subprocess, os, edk2_debugger, re
|
||||
|
||||
def get_module_name(line):
|
||||
path = line.rsplit(' ')[1]
|
||||
return os.path.splitext(os.path.basename(path))[0]
|
||||
|
||||
def get_module_path(line):
|
||||
return line.rsplit(' ')[1]
|
||||
|
||||
def get_module_entrypoint(list, module_name):
|
||||
line = [i for i in list if module_name in i and re.search(r'\b'+module_name+r'\b', i)]
|
||||
if len(line) == 0:
|
||||
# Module was not loaded using DxeDispatcher or PeiDispatcher. It is a SEC module
|
||||
# Symbols for these modules are loaded from FV, not from console log
|
||||
return None
|
||||
|
||||
entrypoint_str = line[0].rsplit(' ')[4]
|
||||
return entrypoint_str.rsplit('=')[1]
|
||||
|
||||
def load_symbol_from_console(ec, console_file, objdump, verbose):
|
||||
if objdump is None:
|
||||
print "Error: A path to objdump tool is not specified, but -i parameter is provided"
|
||||
elif not os.path.exists(objdump):
|
||||
print "Error: Provided path to objdump is invalid: %s" % objdump
|
||||
elif not os.path.exists(console_file):
|
||||
print "Error: UEFI console file is not found: %s" % console_file
|
||||
else:
|
||||
|
||||
full_list = open(console_file).read().splitlines()
|
||||
|
||||
efi_list = [i for i in full_list if "EntryPoint=" in i]
|
||||
|
||||
full_list = dict.fromkeys(full_list)
|
||||
full_list = [i for i in full_list if "add-symbol-file" in i]
|
||||
|
||||
module_dict = {}
|
||||
|
||||
for line in full_list:
|
||||
name = get_module_name(line)
|
||||
module_dict[name] = (get_module_path(line), get_module_entrypoint(efi_list, name))
|
||||
|
||||
for module in module_dict:
|
||||
entrypoint_addr = module_dict[module][1]
|
||||
|
||||
if entrypoint_addr is not None:
|
||||
path = module_dict[module][0]
|
||||
if not os.path.exists(path):
|
||||
print "Module not found: " + path + ". Skipping..."
|
||||
continue
|
||||
|
||||
sp = subprocess.Popen([objdump,'-S', path], stdout = subprocess.PIPE)
|
||||
|
||||
objdump_out = sp.stdout.readlines()
|
||||
entrypoint_record = [i for i in objdump_out if "<_ModuleEntryPoint>" in i]
|
||||
|
||||
entrypoint_offset = entrypoint_record[0].split(' ')[0]
|
||||
|
||||
load_addr = int(entrypoint_addr, 16) - int(entrypoint_offset, 16)
|
||||
|
||||
edk2_debugger.load_symbol_from_file(ec, path, load_addr, verbose)
|
70
ArmPlatformPkg/SecureBootDefaultKeys.fdf.inc
Normal file
70
ArmPlatformPkg/SecureBootDefaultKeys.fdf.inc
Normal file
@@ -0,0 +1,70 @@
|
||||
## @file
|
||||
# FDF include file which allows to embed Secure Boot keys
|
||||
#
|
||||
# Copyright (c) 2021, ARM Limited. All rights reserved.
|
||||
# Copyright (c) 2021, Semihalf. All rights reserved.
|
||||
#
|
||||
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
#
|
||||
|
||||
!if $(DEFAULT_KEYS) == TRUE
|
||||
FILE FREEFORM = 85254ea7-4759-4fc4-82d4-5eed5fb0a4a0 {
|
||||
!ifdef $(PK_DEFAULT_FILE)
|
||||
SECTION RAW = $(PK_DEFAULT_FILE)
|
||||
!endif
|
||||
SECTION UI = "PK Default"
|
||||
}
|
||||
|
||||
FILE FREEFORM = 6f64916e-9f7a-4c35-b952-cd041efb05a3 {
|
||||
!ifdef $(KEK_DEFAULT_FILE1)
|
||||
SECTION RAW = $(KEK_DEFAULT_FILE1)
|
||||
!endif
|
||||
!ifdef $(KEK_DEFAULT_FILE2)
|
||||
SECTION RAW = $(KEK_DEFAULT_FILE2)
|
||||
!endif
|
||||
!ifdef $(KEK_DEFAULT_FILE3)
|
||||
SECTION RAW = $(KEK_DEFAULT_FILE3)
|
||||
!endif
|
||||
SECTION UI = "KEK Default"
|
||||
}
|
||||
|
||||
FILE FREEFORM = c491d352-7623-4843-accc-2791a7574421 {
|
||||
!ifdef $(DB_DEFAULT_FILE1)
|
||||
SECTION RAW = $(DB_DEFAULT_FILE1)
|
||||
!endif
|
||||
!ifdef $(DB_DEFAULT_FILE2)
|
||||
SECTION RAW = $(DB_DEFAULT_FILE2)
|
||||
!endif
|
||||
!ifdef $(DB_DEFAULT_FILE3)
|
||||
SECTION RAW = $(DB_DEFAULT_FILE3)
|
||||
!endif
|
||||
SECTION UI = "DB Default"
|
||||
}
|
||||
|
||||
FILE FREEFORM = 36c513ee-a338-4976-a0fb-6ddba3dafe87 {
|
||||
!ifdef $(DBT_DEFAULT_FILE1)
|
||||
SECTION RAW = $(DBT_DEFAULT_FILE1)
|
||||
!endif
|
||||
!ifdef $(DBT_DEFAULT_FILE2)
|
||||
SECTION RAW = $(DBT_DEFAULT_FILE2)
|
||||
!endif
|
||||
!ifdef $(DBT_DEFAULT_FILE3)
|
||||
SECTION RAW = $(DBT_DEFAULT_FILE3)
|
||||
!endif
|
||||
SECTION UI = "DBT Default"
|
||||
}
|
||||
|
||||
FILE FREEFORM = 5740766a-718e-4dc0-9935-c36f7d3f884f {
|
||||
!ifdef $(DBX_DEFAULT_FILE1)
|
||||
SECTION RAW = $(DBX_DEFAULT_FILE1)
|
||||
!endif
|
||||
!ifdef $(DBX_DEFAULT_FILE2)
|
||||
SECTION RAW = $(DBX_DEFAULT_FILE2)
|
||||
!endif
|
||||
!ifdef $(DBX_DEFAULT_FILE3)
|
||||
SECTION RAW = $(DBX_DEFAULT_FILE3)
|
||||
!endif
|
||||
SECTION UI = "DBX Default"
|
||||
}
|
||||
|
||||
!endif
|
@@ -168,6 +168,8 @@
|
||||
#
|
||||
!if $(SECURE_BOOT_ENABLE) == TRUE
|
||||
AuthVariableLib|SecurityPkg/Library/AuthVariableLib/AuthVariableLib.inf
|
||||
SecureBootVariableLib|SecurityPkg/Library/SecureBootVariableLib/SecureBootVariableLib.inf
|
||||
SecureBootVariableProvisionLib|SecurityPkg/Library/SecureBootVariableProvisionLib/SecureBootVariableProvisionLib.inf
|
||||
|
||||
# re-use the UserPhysicalPresent() dummy implementation from the ovmf tree
|
||||
PlatformSecureLib|OvmfPkg/Library/PlatformSecureLib/PlatformSecureLib.inf
|
||||
@@ -375,9 +377,6 @@
|
||||
#
|
||||
MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskDxe.inf
|
||||
|
||||
#
|
||||
# UEFI application (Shell Embedded Boot Loader)
|
||||
#
|
||||
ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.inf {
|
||||
<PcdsFixedAtBuild>
|
||||
gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE
|
||||
|
364
ArmVirtPkg/ArmVirtCloudHv.dsc
Normal file
364
ArmVirtPkg/ArmVirtCloudHv.dsc
Normal file
@@ -0,0 +1,364 @@
|
||||
#
|
||||
# Copyright (c) 2021, ARM Limited. All rights reserved.
|
||||
#
|
||||
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
#
|
||||
#
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# Defines Section - statements that will be processed to create a Makefile.
|
||||
#
|
||||
################################################################################
|
||||
[Defines]
|
||||
PLATFORM_NAME = ArmVirtCloudHv
|
||||
PLATFORM_GUID = DFFED32B-DFFE-D32B-DFFE-D32BDFFED32B
|
||||
PLATFORM_VERSION = 0.1
|
||||
DSC_SPECIFICATION = 0x00010005
|
||||
OUTPUT_DIRECTORY = Build/ArmVirtCloudHv-$(ARCH)
|
||||
SUPPORTED_ARCHITECTURES = AARCH64|ARM
|
||||
BUILD_TARGETS = DEBUG|RELEASE|NOOPT
|
||||
SKUID_IDENTIFIER = DEFAULT
|
||||
FLASH_DEFINITION = ArmVirtPkg/ArmVirtCloudHv.fdf
|
||||
|
||||
#
|
||||
# Defines for default states. These can be changed on the command line.
|
||||
# -D FLAG=VALUE
|
||||
#
|
||||
DEFINE TTY_TERMINAL = FALSE
|
||||
DEFINE SECURE_BOOT_ENABLE = FALSE
|
||||
|
||||
!include ArmVirtPkg/ArmVirt.dsc.inc
|
||||
|
||||
[LibraryClasses.common]
|
||||
ArmLib|ArmPkg/Library/ArmLib/ArmBaseLib.inf
|
||||
ArmMmuLib|ArmPkg/Library/ArmMmuLib/ArmMmuBaseLib.inf
|
||||
|
||||
# Virtio Support
|
||||
VirtioLib|OvmfPkg/Library/VirtioLib/VirtioLib.inf
|
||||
VirtioMmioDeviceLib|OvmfPkg/Library/VirtioMmioDeviceLib/VirtioMmioDeviceLib.inf
|
||||
|
||||
ArmPlatformLib|ArmPlatformPkg/Library/ArmPlatformLibNull/ArmPlatformLibNull.inf
|
||||
|
||||
TimerLib|ArmPkg/Library/ArmArchTimerLib/ArmArchTimerLib.inf
|
||||
CapsuleLib|MdeModulePkg/Library/DxeCapsuleLibNull/DxeCapsuleLibNull.inf
|
||||
BootLogoLib|MdeModulePkg/Library/BootLogoLib/BootLogoLib.inf
|
||||
PlatformBootManagerLib|ArmPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf
|
||||
PlatformBmPrintScLib|OvmfPkg/Library/PlatformBmPrintScLib/PlatformBmPrintScLib.inf
|
||||
CustomizedDisplayLib|MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf
|
||||
FrameBufferBltLib|MdeModulePkg/Library/FrameBufferBltLib/FrameBufferBltLib.inf
|
||||
QemuBootOrderLib|OvmfPkg/Library/QemuBootOrderLib/QemuBootOrderLib.inf
|
||||
FileExplorerLib|MdeModulePkg/Library/FileExplorerLib/FileExplorerLib.inf
|
||||
PciPcdProducerLib|ArmVirtPkg/Library/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf
|
||||
PciSegmentLib|MdePkg/Library/BasePciSegmentLibPci/BasePciSegmentLibPci.inf
|
||||
PciHostBridgeLib|ArmVirtPkg/Library/FdtPciHostBridgeLib/FdtPciHostBridgeLib.inf
|
||||
PciHostBridgeUtilityLib|ArmVirtPkg/Library/ArmVirtPciHostBridgeUtilityLib/ArmVirtPciHostBridgeUtilityLib.inf
|
||||
|
||||
TpmMeasurementLib|MdeModulePkg/Library/TpmMeasurementLibNull/TpmMeasurementLibNull.inf
|
||||
|
||||
!include MdePkg/MdeLibs.dsc.inc
|
||||
|
||||
[LibraryClasses.common.PEIM]
|
||||
ArmVirtMemInfoLib|ArmVirtPkg/Library/QemuVirtMemInfoLib/QemuVirtMemInfoPeiLib.inf
|
||||
|
||||
[LibraryClasses.common.DXE_DRIVER]
|
||||
ReportStatusCodeLib|MdeModulePkg/Library/DxeReportStatusCodeLib/DxeReportStatusCodeLib.inf
|
||||
|
||||
[LibraryClasses.common.UEFI_DRIVER]
|
||||
UefiScsiLib|MdePkg/Library/UefiScsiLib/UefiScsiLib.inf
|
||||
|
||||
[BuildOptions]
|
||||
!include NetworkPkg/NetworkBuildOptions.dsc.inc
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# Pcd Section - list of all EDK II PCD Entries defined by this Platform
|
||||
#
|
||||
################################################################################
|
||||
|
||||
[PcdsFeatureFlag.common]
|
||||
## If TRUE, Graphics Output Protocol will be installed on virtual handle created by ConsplitterDxe.
|
||||
# It could be set FALSE to save size.
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdConOutGopSupport|TRUE
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdConOutUgaSupport|FALSE
|
||||
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdTurnOffUsbLegacySupport|TRUE
|
||||
|
||||
[PcdsFixedAtBuild.common]
|
||||
!if $(ARCH) == AARCH64
|
||||
gArmTokenSpaceGuid.PcdVFPEnabled|1
|
||||
!endif
|
||||
|
||||
gArmPlatformTokenSpaceGuid.PcdCPUCoresStackBase|0x4007c000
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved|0
|
||||
gArmPlatformTokenSpaceGuid.PcdCPUCorePrimaryStackSize|0x4000
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVariableSize|0x2000
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdMaxAuthVariableSize|0x2800
|
||||
|
||||
# Rsdp base address in Cloud Hypervisor
|
||||
gArmVirtTokenSpaceGuid.PcdCloudHvAcpiRsdpBaseAddress|0x40200000
|
||||
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase|0x4000000
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize|0x40000
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvModeEnable|TRUE
|
||||
!if $(NETWORK_TLS_ENABLE) == TRUE
|
||||
#
|
||||
# The cumulative and individual VOLATILE variable size limits should be set
|
||||
# high enough for accommodating several and/or large CA certificates.
|
||||
#
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdVariableStoreSize|0x80000
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdMaxVolatileVariableSize|0x40000
|
||||
!endif
|
||||
|
||||
# Size of the region used by UEFI in permanent memory (Reserved 64MB)
|
||||
gArmPlatformTokenSpaceGuid.PcdSystemMemoryUefiRegionSize|0x04000000
|
||||
|
||||
#
|
||||
# ARM PrimeCell
|
||||
#
|
||||
|
||||
## PL011 - Serial Terminal
|
||||
gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate|38400
|
||||
|
||||
## Default Terminal Type
|
||||
## 0-PCANSI, 1-VT100, 2-VT00+, 3-UTF8, 4-TTYTERM
|
||||
gEfiMdePkgTokenSpaceGuid.PcdDefaultTerminalType|4
|
||||
|
||||
# System Memory Base -- fixed at 0x4000_0000
|
||||
gArmTokenSpaceGuid.PcdSystemMemoryBase|0x40000000
|
||||
|
||||
# initial location of the device tree blob passed by Cloud Hypervisor -- base of DRAM
|
||||
gArmVirtTokenSpaceGuid.PcdDeviceTreeInitialBaseAddress|0x40000000
|
||||
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdResetOnMemoryTypeInformationChange|FALSE
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdBootManagerMenuFile|{ 0x21, 0xaa, 0x2c, 0x46, 0x14, 0x76, 0x03, 0x45, 0x83, 0x6e, 0x8a, 0xb6, 0xf4, 0x66, 0x23, 0x31 }
|
||||
|
||||
#
|
||||
# The maximum physical I/O addressability of the processor, set with
|
||||
# BuildCpuHob().
|
||||
#
|
||||
gEmbeddedTokenSpaceGuid.PcdPrePiCpuIoSize|16
|
||||
|
||||
#
|
||||
# Enable the non-executable DXE stack. (This gets set up by DxeIpl)
|
||||
#
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdSetNxForStack|TRUE
|
||||
|
||||
!if $(SECURE_BOOT_ENABLE) == TRUE
|
||||
# override the default values from SecurityPkg to ensure images from all sources are verified in secure boot
|
||||
gEfiSecurityPkgTokenSpaceGuid.PcdOptionRomImageVerificationPolicy|0x04
|
||||
gEfiSecurityPkgTokenSpaceGuid.PcdFixedMediaImageVerificationPolicy|0x04
|
||||
gEfiSecurityPkgTokenSpaceGuid.PcdRemovableMediaImageVerificationPolicy|0x04
|
||||
!endif
|
||||
|
||||
gEfiMdePkgTokenSpaceGuid.PcdReportStatusCodePropertyMask|3
|
||||
gEfiShellPkgTokenSpaceGuid.PcdShellFileOperationSize|0x20000
|
||||
|
||||
[PcdsFixedAtBuild.AARCH64]
|
||||
# Clearing BIT0 in this PCD prevents installing a 32-bit SMBIOS entry point,
|
||||
# if the entry point version is >= 3.0. AARCH64 OSes cannot assume the
|
||||
# presence of the 32-bit entry point anyway (because many AARCH64 systems
|
||||
# don't have 32-bit addressable physical RAM), and the additional allocations
|
||||
# below 4 GB needlessly fragment the memory map. So expose the 64-bit entry
|
||||
# point only, for entry point versions >= 3.0.
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdSmbiosEntryPointProvideMethod|0x2
|
||||
|
||||
[PcdsDynamicDefault.common]
|
||||
gEfiMdePkgTokenSpaceGuid.PcdPlatformBootTimeOut|3
|
||||
|
||||
## If TRUE, OvmfPkg/AcpiPlatformDxe will not wait for PCI
|
||||
# enumeration to complete before installing ACPI tables.
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdPciDisableBusEnumeration|TRUE
|
||||
|
||||
# System Memory Size -- 1 MB initially, actual size will be fetched from DT
|
||||
gArmTokenSpaceGuid.PcdSystemMemorySize|0x00100000
|
||||
|
||||
gArmTokenSpaceGuid.PcdArmArchTimerSecIntrNum|0x0
|
||||
gArmTokenSpaceGuid.PcdArmArchTimerIntrNum|0x0
|
||||
gArmTokenSpaceGuid.PcdArmArchTimerVirtIntrNum|0x0
|
||||
gArmTokenSpaceGuid.PcdArmArchTimerHypIntrNum|0x0
|
||||
|
||||
#
|
||||
# ARM General Interrupt Controller
|
||||
#
|
||||
gArmTokenSpaceGuid.PcdGicDistributorBase|0x0
|
||||
gArmTokenSpaceGuid.PcdGicRedistributorsBase|0x0
|
||||
gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase|0x0
|
||||
|
||||
## PL031 RealTimeClock
|
||||
gArmPlatformTokenSpaceGuid.PcdPL031RtcBase|0x0
|
||||
|
||||
# set PcdPciExpressBaseAddress to MAX_UINT64, which signifies that this
|
||||
# PCD and PcdPciDisableBusEnumeration above have not been assigned yet
|
||||
gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress|0xFFFFFFFFFFFFFFFF
|
||||
|
||||
gArmTokenSpaceGuid.PcdPciIoTranslation|0
|
||||
|
||||
gEfiSecurityPkgTokenSpaceGuid.PcdTpmBaseAddress|0x0
|
||||
|
||||
[PcdsDynamicHii]
|
||||
gArmVirtTokenSpaceGuid.PcdForceNoAcpi|L"ForceNoAcpi"|gArmVirtVariableGuid|0x0|FALSE|NV,BS
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# Components Section - list of all EDK II Modules needed by this Platform
|
||||
#
|
||||
################################################################################
|
||||
[Components.common]
|
||||
#
|
||||
# PEI Phase modules
|
||||
#
|
||||
ArmPlatformPkg/PrePeiCore/PrePeiCoreUniCore.inf
|
||||
MdeModulePkg/Core/Pei/PeiMain.inf
|
||||
MdeModulePkg/Universal/PCD/Pei/Pcd.inf {
|
||||
<LibraryClasses>
|
||||
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
|
||||
}
|
||||
ArmPlatformPkg/PlatformPei/PlatformPeim.inf
|
||||
ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.inf
|
||||
ArmPkg/Drivers/CpuPei/CpuPei.inf
|
||||
|
||||
MdeModulePkg/Universal/Variable/Pei/VariablePei.inf
|
||||
|
||||
MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf {
|
||||
<LibraryClasses>
|
||||
NULL|MdeModulePkg/Library/LzmaCustomDecompressLib/LzmaCustomDecompressLib.inf
|
||||
}
|
||||
|
||||
#
|
||||
# DXE
|
||||
#
|
||||
MdeModulePkg/Core/Dxe/DxeMain.inf {
|
||||
<LibraryClasses>
|
||||
NULL|MdeModulePkg/Library/DxeCrc32GuidedSectionExtractLib/DxeCrc32GuidedSectionExtractLib.inf
|
||||
DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
|
||||
}
|
||||
MdeModulePkg/Universal/PCD/Dxe/Pcd.inf {
|
||||
<LibraryClasses>
|
||||
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
|
||||
}
|
||||
|
||||
#
|
||||
# Architectural Protocols
|
||||
#
|
||||
ArmPkg/Drivers/CpuDxe/CpuDxe.inf
|
||||
MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
|
||||
MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf {
|
||||
<LibraryClasses>
|
||||
NULL|MdeModulePkg/Library/VarCheckUefiLib/VarCheckUefiLib.inf
|
||||
# don't use unaligned CopyMem () on the UEFI varstore NOR flash region
|
||||
BaseMemoryLib|MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf
|
||||
}
|
||||
!if $(SECURE_BOOT_ENABLE) == TRUE
|
||||
MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf {
|
||||
<LibraryClasses>
|
||||
NULL|SecurityPkg/Library/DxeImageVerificationLib/DxeImageVerificationLib.inf
|
||||
}
|
||||
SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDxe.inf
|
||||
OvmfPkg/EnrollDefaultKeys/EnrollDefaultKeys.inf
|
||||
!else
|
||||
MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
|
||||
!endif
|
||||
MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
|
||||
MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf
|
||||
MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf
|
||||
MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf
|
||||
EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf {
|
||||
<LibraryClasses>
|
||||
NULL|ArmVirtPkg/Library/ArmVirtPL031FdtClientLib/ArmVirtPL031FdtClientLib.inf
|
||||
}
|
||||
EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf
|
||||
|
||||
MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf
|
||||
MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf
|
||||
MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf
|
||||
MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
|
||||
MdeModulePkg/Universal/SerialDxe/SerialDxe.inf
|
||||
|
||||
MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
|
||||
|
||||
ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
|
||||
ArmPkg/Drivers/TimerDxe/TimerDxe.inf {
|
||||
<LibraryClasses>
|
||||
NULL|ArmVirtPkg/Library/ArmVirtTimerFdtClientLib/ArmVirtTimerFdtClientLib.inf
|
||||
}
|
||||
MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
|
||||
|
||||
#
|
||||
# Status Code Routing
|
||||
#
|
||||
MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusCodeRouterRuntimeDxe.inf
|
||||
|
||||
#
|
||||
# Platform Driver
|
||||
#
|
||||
ArmVirtPkg/VirtioFdtDxe/VirtioFdtDxe.inf
|
||||
ArmVirtPkg/FdtClientDxe/FdtClientDxe.inf
|
||||
ArmVirtPkg/HighMemDxe/HighMemDxe.inf
|
||||
OvmfPkg/VirtioBlkDxe/VirtioBlk.inf
|
||||
OvmfPkg/VirtioScsiDxe/VirtioScsi.inf
|
||||
OvmfPkg/VirtioNetDxe/VirtioNet.inf
|
||||
OvmfPkg/VirtioRngDxe/VirtioRng.inf
|
||||
|
||||
#
|
||||
# FAT filesystem + GPT/MBR partitioning + UDF filesystem + virtio-fs
|
||||
#
|
||||
MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf
|
||||
MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf
|
||||
MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
|
||||
FatPkg/EnhancedFatDxe/Fat.inf
|
||||
MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf
|
||||
OvmfPkg/VirtioFsDxe/VirtioFsDxe.inf
|
||||
|
||||
#
|
||||
# Bds
|
||||
#
|
||||
MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf {
|
||||
<LibraryClasses>
|
||||
DevicePathLib|MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf
|
||||
PcdLib|MdePkg/Library/BasePcdLibNull/BasePcdLibNull.inf
|
||||
}
|
||||
MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf
|
||||
MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
|
||||
MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerDxe.inf
|
||||
MdeModulePkg/Universal/BdsDxe/BdsDxe.inf
|
||||
MdeModulePkg/Logo/LogoDxe.inf
|
||||
MdeModulePkg/Application/UiApp/UiApp.inf {
|
||||
<LibraryClasses>
|
||||
NULL|MdeModulePkg/Library/DeviceManagerUiLib/DeviceManagerUiLib.inf
|
||||
NULL|MdeModulePkg/Library/BootManagerUiLib/BootManagerUiLib.inf
|
||||
NULL|MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib.inf
|
||||
}
|
||||
|
||||
#
|
||||
# SCSI Bus and Disk Driver
|
||||
#
|
||||
MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf
|
||||
MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf
|
||||
|
||||
#
|
||||
# PCI support
|
||||
#
|
||||
ArmPkg/Drivers/ArmPciCpuIo2Dxe/ArmPciCpuIo2Dxe.inf {
|
||||
<LibraryClasses>
|
||||
NULL|ArmVirtPkg/Library/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf
|
||||
}
|
||||
MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.inf
|
||||
MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf {
|
||||
<LibraryClasses>
|
||||
NULL|ArmVirtPkg/Library/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf
|
||||
}
|
||||
OvmfPkg/PciHotPlugInitDxe/PciHotPlugInit.inf
|
||||
OvmfPkg/VirtioPciDeviceDxe/VirtioPciDeviceDxe.inf
|
||||
OvmfPkg/Virtio10Dxe/Virtio10.inf
|
||||
|
||||
#
|
||||
# ACPI Support
|
||||
#
|
||||
ArmVirtPkg/CloudHvPlatformHasAcpiDtDxe/CloudHvHasAcpiDtDxe.inf
|
||||
[Components.AARCH64]
|
||||
MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResourceTableDxe.inf
|
||||
ArmVirtPkg/CloudHvAcpiPlatformDxe/CloudHvAcpiPlatformDxe.inf {
|
||||
<LibraryClasses>
|
||||
NULL|ArmVirtPkg/Library/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf
|
||||
}
|
258
ArmVirtPkg/ArmVirtCloudHv.fdf
Normal file
258
ArmVirtPkg/ArmVirtCloudHv.fdf
Normal file
@@ -0,0 +1,258 @@
|
||||
#
|
||||
# Copyright (c) 2021, ARM Limited. All rights reserved.
|
||||
#
|
||||
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
#
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# FD Section
|
||||
# The [FD] Section is made up of the definition statements and a
|
||||
# description of what goes into the Flash Device Image. Each FD section
|
||||
# defines one flash "device" image. A flash device image may be one of
|
||||
# the following: Removable media bootable image (like a boot floppy
|
||||
# image,) an Option ROM image (that would be "flashed" into an add-in
|
||||
# card,) a System "Flash" image (that would be burned into a system's
|
||||
# flash) or an Update ("Capsule") image that will be used to update and
|
||||
# existing system flash.
|
||||
#
|
||||
################################################################################
|
||||
|
||||
[Defines]
|
||||
!if $(FD_SIZE_IN_MB) == 2
|
||||
DEFINE FVMAIN_COMPACT_SIZE = 0x1ff000
|
||||
!endif
|
||||
!if $(FD_SIZE_IN_MB) == 3
|
||||
DEFINE FVMAIN_COMPACT_SIZE = 0x2ff000
|
||||
!endif
|
||||
|
||||
[FD.CLOUDHV_EFI]
|
||||
BaseAddress = 0x00000000|gArmTokenSpaceGuid.PcdFdBaseAddress # cloud-hypervisor assigns 0 - 0x8000000 for a BootROM
|
||||
Size = $(FD_SIZE)|gArmTokenSpaceGuid.PcdFdSize # The size in bytes of the FLASH Device
|
||||
ErasePolarity = 1
|
||||
|
||||
# This one is tricky, it must be: BlockSize * NumBlocks = Size
|
||||
BlockSize = 0x00001000
|
||||
NumBlocks = $(FD_NUM_BLOCKS)
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# Following are lists of FD Region layout which correspond to the locations of different
|
||||
# images within the flash device.
|
||||
#
|
||||
# Regions must be defined in ascending order and may not overlap.
|
||||
#
|
||||
# A Layout Region start with a eight digit hex offset (leading "0x" required) followed by
|
||||
# the pipe "|" character, followed by the size of the region, also in hex with the leading
|
||||
# "0x" characters. Like:
|
||||
# Offset|Size
|
||||
# PcdOffsetCName|PcdSizeCName
|
||||
# RegionType <FV, DATA, or FILE>
|
||||
#
|
||||
################################################################################
|
||||
|
||||
#
|
||||
# UEFI has trouble dealing with FVs that reside at physical address 0x0.
|
||||
# So instead, put a hardcoded 'jump to 0x1000' at offset 0x0, and put the
|
||||
# real FV at offset 0x1000
|
||||
#
|
||||
0x00000000|0x00001000
|
||||
DATA = {
|
||||
!if $(ARCH) == AARCH64
|
||||
0x00, 0x04, 0x00, 0x14 # 'b 0x1000' in AArch64 ASM
|
||||
!else
|
||||
0xfe, 0x03, 0x00, 0xea # 'b 0x1000' in AArch32 ASM
|
||||
!endif
|
||||
}
|
||||
|
||||
0x00001000|$(FVMAIN_COMPACT_SIZE)
|
||||
gArmTokenSpaceGuid.PcdFvBaseAddress|gArmTokenSpaceGuid.PcdFvSize
|
||||
FV = FVMAIN_COMPACT
|
||||
|
||||
!include VarStore.fdf.inc
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# FV Section
|
||||
#
|
||||
# [FV] section is used to define what components or modules are placed within a flash
|
||||
# device file. This section also defines order the components and modules are positioned
|
||||
# within the image. The [FV] section consists of define statements, set statements and
|
||||
# module statements.
|
||||
#
|
||||
################################################################################
|
||||
|
||||
[FV.FvMain]
|
||||
FvNameGuid = 2A88A00E-E267-C8BF-0E80-AE1BD504ED90
|
||||
BlockSize = 0x40
|
||||
NumBlocks = 0 # This FV gets compressed so make it just big enough
|
||||
FvAlignment = 16 # FV alignment and FV attributes setting.
|
||||
ERASE_POLARITY = 1
|
||||
MEMORY_MAPPED = TRUE
|
||||
STICKY_WRITE = TRUE
|
||||
LOCK_CAP = TRUE
|
||||
LOCK_STATUS = TRUE
|
||||
WRITE_DISABLED_CAP = TRUE
|
||||
WRITE_ENABLED_CAP = TRUE
|
||||
WRITE_STATUS = TRUE
|
||||
WRITE_LOCK_CAP = TRUE
|
||||
WRITE_LOCK_STATUS = TRUE
|
||||
READ_DISABLED_CAP = TRUE
|
||||
READ_ENABLED_CAP = TRUE
|
||||
READ_STATUS = TRUE
|
||||
READ_LOCK_CAP = TRUE
|
||||
READ_LOCK_STATUS = TRUE
|
||||
|
||||
INF MdeModulePkg/Core/Dxe/DxeMain.inf
|
||||
INF MdeModulePkg/Universal/PCD/Dxe/Pcd.inf
|
||||
INF ArmVirtPkg/VirtioFdtDxe/VirtioFdtDxe.inf
|
||||
INF ArmVirtPkg/FdtClientDxe/FdtClientDxe.inf
|
||||
INF ArmVirtPkg/HighMemDxe/HighMemDxe.inf
|
||||
|
||||
#
|
||||
# PI DXE Drivers producing Architectural Protocols (EFI Services)
|
||||
#
|
||||
INF ArmPkg/Drivers/CpuDxe/CpuDxe.inf
|
||||
INF MdeModulePkg/Core/RuntimeDxe/RuntimeDxe.inf
|
||||
INF MdeModulePkg/Universal/SecurityStubDxe/SecurityStubDxe.inf
|
||||
INF MdeModulePkg/Universal/CapsuleRuntimeDxe/CapsuleRuntimeDxe.inf
|
||||
INF MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf
|
||||
INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf
|
||||
!if $(SECURE_BOOT_ENABLE) == TRUE
|
||||
INF SecurityPkg/VariableAuthenticated/SecureBootConfigDxe/SecureBootConfigDxe.inf
|
||||
!endif
|
||||
INF MdeModulePkg/Universal/MonotonicCounterRuntimeDxe/MonotonicCounterRuntimeDxe.inf
|
||||
INF MdeModulePkg/Universal/ResetSystemRuntimeDxe/ResetSystemRuntimeDxe.inf
|
||||
INF EmbeddedPkg/RealTimeClockRuntimeDxe/RealTimeClockRuntimeDxe.inf
|
||||
INF EmbeddedPkg/MetronomeDxe/MetronomeDxe.inf
|
||||
INF MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf
|
||||
|
||||
#
|
||||
# Multiple Console IO support
|
||||
#
|
||||
INF MdeModulePkg/Universal/Console/ConPlatformDxe/ConPlatformDxe.inf
|
||||
INF MdeModulePkg/Universal/Console/ConSplitterDxe/ConSplitterDxe.inf
|
||||
INF MdeModulePkg/Universal/Console/GraphicsConsoleDxe/GraphicsConsoleDxe.inf
|
||||
INF MdeModulePkg/Universal/Console/TerminalDxe/TerminalDxe.inf
|
||||
INF MdeModulePkg/Universal/SerialDxe/SerialDxe.inf
|
||||
|
||||
INF ArmPkg/Drivers/ArmGic/ArmGicDxe.inf
|
||||
INF ArmPkg/Drivers/TimerDxe/TimerDxe.inf
|
||||
INF MdeModulePkg/Universal/WatchdogTimerDxe/WatchdogTimer.inf
|
||||
|
||||
#
|
||||
# FAT filesystem + GPT/MBR partitioning + UDF filesystem + virtio-fs
|
||||
#
|
||||
INF MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf
|
||||
INF MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf
|
||||
INF FatPkg/EnhancedFatDxe/Fat.inf
|
||||
INF MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
|
||||
INF MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf
|
||||
INF OvmfPkg/VirtioFsDxe/VirtioFsDxe.inf
|
||||
|
||||
#
|
||||
# Status Code Routing
|
||||
#
|
||||
INF MdeModulePkg/Universal/ReportStatusCodeRouter/RuntimeDxe/ReportStatusCodeRouterRuntimeDxe.inf
|
||||
|
||||
#
|
||||
# Platform Driver
|
||||
#
|
||||
INF OvmfPkg/VirtioBlkDxe/VirtioBlk.inf
|
||||
INF OvmfPkg/VirtioNetDxe/VirtioNet.inf
|
||||
INF OvmfPkg/VirtioScsiDxe/VirtioScsi.inf
|
||||
INF OvmfPkg/VirtioRngDxe/VirtioRng.inf
|
||||
|
||||
#
|
||||
# UEFI application (Shell Embedded Boot Loader)
|
||||
#
|
||||
INF ShellPkg/Application/Shell/Shell.inf
|
||||
INF ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.inf
|
||||
INF ShellPkg/DynamicCommand/HttpDynamicCommand/HttpDynamicCommand.inf
|
||||
INF OvmfPkg/LinuxInitrdDynamicShellCommand/LinuxInitrdDynamicShellCommand.inf
|
||||
|
||||
#
|
||||
# Bds
|
||||
#
|
||||
INF MdeModulePkg/Universal/DevicePathDxe/DevicePathDxe.inf
|
||||
INF MdeModulePkg/Universal/DisplayEngineDxe/DisplayEngineDxe.inf
|
||||
INF MdeModulePkg/Universal/SetupBrowserDxe/SetupBrowserDxe.inf
|
||||
INF MdeModulePkg/Universal/DriverHealthManagerDxe/DriverHealthManagerDxe.inf
|
||||
INF MdeModulePkg/Universal/BdsDxe/BdsDxe.inf
|
||||
INF MdeModulePkg/Application/UiApp/UiApp.inf
|
||||
|
||||
#
|
||||
# SCSI Bus and Disk Driver
|
||||
#
|
||||
INF MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf
|
||||
INF MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf
|
||||
|
||||
#
|
||||
# ACPI Support
|
||||
#
|
||||
INF ArmVirtPkg/CloudHvPlatformHasAcpiDtDxe/CloudHvHasAcpiDtDxe.inf
|
||||
!if $(ARCH) == AARCH64
|
||||
INF MdeModulePkg/Universal/Acpi/AcpiTableDxe/AcpiTableDxe.inf
|
||||
INF MdeModulePkg/Universal/Acpi/BootGraphicsResourceTableDxe/BootGraphicsResourceTableDxe.inf
|
||||
INF ArmVirtPkg/CloudHvAcpiPlatformDxe/CloudHvAcpiPlatformDxe.inf
|
||||
|
||||
#
|
||||
# EBC support
|
||||
#
|
||||
INF MdeModulePkg/Universal/EbcDxe/EbcDxe.inf
|
||||
!endif
|
||||
|
||||
#
|
||||
# PCI support
|
||||
#
|
||||
INF ArmPkg/Drivers/ArmPciCpuIo2Dxe/ArmPciCpuIo2Dxe.inf
|
||||
INF MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.inf
|
||||
INF MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf
|
||||
INF OvmfPkg/PciHotPlugInitDxe/PciHotPlugInit.inf
|
||||
INF OvmfPkg/VirtioPciDeviceDxe/VirtioPciDeviceDxe.inf
|
||||
INF OvmfPkg/Virtio10Dxe/Virtio10.inf
|
||||
|
||||
#
|
||||
# TianoCore logo (splash screen)
|
||||
#
|
||||
INF MdeModulePkg/Logo/LogoDxe.inf
|
||||
|
||||
#
|
||||
# Ramdisk support
|
||||
#
|
||||
INF MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskDxe.inf
|
||||
|
||||
[FV.FVMAIN_COMPACT]
|
||||
FvAlignment = 16
|
||||
ERASE_POLARITY = 1
|
||||
MEMORY_MAPPED = TRUE
|
||||
STICKY_WRITE = TRUE
|
||||
LOCK_CAP = TRUE
|
||||
LOCK_STATUS = TRUE
|
||||
WRITE_DISABLED_CAP = TRUE
|
||||
WRITE_ENABLED_CAP = TRUE
|
||||
WRITE_STATUS = TRUE
|
||||
WRITE_LOCK_CAP = TRUE
|
||||
WRITE_LOCK_STATUS = TRUE
|
||||
READ_DISABLED_CAP = TRUE
|
||||
READ_ENABLED_CAP = TRUE
|
||||
READ_STATUS = TRUE
|
||||
READ_LOCK_CAP = TRUE
|
||||
READ_LOCK_STATUS = TRUE
|
||||
|
||||
INF ArmPlatformPkg/PrePeiCore/PrePeiCoreUniCore.inf
|
||||
INF MdeModulePkg/Core/Pei/PeiMain.inf
|
||||
INF ArmPlatformPkg/PlatformPei/PlatformPeim.inf
|
||||
INF ArmPlatformPkg/MemoryInitPei/MemoryInitPeim.inf
|
||||
INF ArmPkg/Drivers/CpuPei/CpuPei.inf
|
||||
INF MdeModulePkg/Universal/PCD/Pei/Pcd.inf
|
||||
INF MdeModulePkg/Universal/Variable/Pei/VariablePei.inf
|
||||
INF MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf
|
||||
|
||||
FILE FV_IMAGE = 9E21FD93-9C72-4c15-8C4B-E77F1DB2D792 {
|
||||
SECTION GUIDED EE4E5898-3914-4259-9D6E-DC7BD79403CF PROCESSING_REQUIRED = TRUE {
|
||||
SECTION FV_IMAGE = FVMAIN
|
||||
}
|
||||
}
|
||||
|
||||
!include ArmVirtRules.fdf.inc
|
@@ -1,7 +1,7 @@
|
||||
# @file
|
||||
# Workspace file for KVMTool virtual platform.
|
||||
#
|
||||
# Copyright (c) 2018 - 2020, ARM Limited. All rights reserved.
|
||||
# Copyright (c) 2018 - 2021, ARM Limited. All rights reserved.
|
||||
#
|
||||
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
#
|
||||
@@ -60,7 +60,7 @@
|
||||
PciPcdProducerLib|ArmVirtPkg/Library/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf
|
||||
PciSegmentLib|MdePkg/Library/BasePciSegmentLibPci/BasePciSegmentLibPci.inf
|
||||
PciHostBridgeLib|ArmVirtPkg/Library/FdtPciHostBridgeLib/FdtPciHostBridgeLib.inf
|
||||
PciHostBridgeUtilityLib|OvmfPkg/Library/PciHostBridgeUtilityLib/PciHostBridgeUtilityLib.inf
|
||||
PciHostBridgeUtilityLib|ArmVirtPkg/Library/ArmVirtPciHostBridgeUtilityLib/ArmVirtPciHostBridgeUtilityLib.inf
|
||||
|
||||
TpmMeasurementLib|MdeModulePkg/Library/TpmMeasurementLibNull/TpmMeasurementLibNull.inf
|
||||
AuthVariableLib|MdeModulePkg/Library/AuthVariableLibNull/AuthVariableLibNull.inf
|
||||
@@ -175,6 +175,17 @@
|
||||
gArmTokenSpaceGuid.PcdGicRedistributorsBase|0x0
|
||||
gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase|0x0
|
||||
|
||||
#
|
||||
# PCI settings
|
||||
#
|
||||
gEfiMdeModulePkgTokenSpaceGuid.PcdPciDisableBusEnumeration|TRUE
|
||||
|
||||
# set PcdPciExpressBaseAddress to MAX_UINT64, which signifies that this
|
||||
# PCD and PcdPciDisableBusEnumeration above have not been assigned yet
|
||||
gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress|0xFFFFFFFFFFFFFFFF
|
||||
|
||||
gArmTokenSpaceGuid.PcdPciIoTranslation|0x0
|
||||
|
||||
#
|
||||
# Set video resolution for boot options and for text setup.
|
||||
# PlatformDxe can set the former at runtime.
|
||||
@@ -322,3 +333,23 @@
|
||||
#
|
||||
MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf
|
||||
MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf
|
||||
#
|
||||
# PCI support
|
||||
#
|
||||
ArmPkg/Drivers/ArmPciCpuIo2Dxe/ArmPciCpuIo2Dxe.inf {
|
||||
<LibraryClasses>
|
||||
NULL|ArmVirtPkg/Library/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf
|
||||
NULL|ArmVirtPkg/Library/BaseCachingPciExpressLib/BaseCachingPciExpressLib.inf
|
||||
}
|
||||
MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.inf {
|
||||
<LibraryClasses>
|
||||
NULL|ArmVirtPkg/Library/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf
|
||||
NULL|ArmVirtPkg/Library/BaseCachingPciExpressLib/BaseCachingPciExpressLib.inf
|
||||
}
|
||||
MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf {
|
||||
<LibraryClasses>
|
||||
NULL|ArmVirtPkg/Library/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf
|
||||
NULL|ArmVirtPkg/Library/BaseCachingPciExpressLib/BaseCachingPciExpressLib.inf
|
||||
}
|
||||
OvmfPkg/VirtioPciDeviceDxe/VirtioPciDeviceDxe.inf
|
||||
OvmfPkg/Virtio10Dxe/Virtio10.inf
|
||||
|
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# Copyright (c) 2018 - 2020, ARM Limited. All rights reserved.
|
||||
# Copyright (c) 2018 - 2021, ARM Limited. All rights reserved.
|
||||
#
|
||||
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
#
|
||||
@@ -173,9 +173,6 @@ READ_LOCK_STATUS = TRUE
|
||||
INF OvmfPkg/VirtioScsiDxe/VirtioScsi.inf
|
||||
INF OvmfPkg/VirtioRngDxe/VirtioRng.inf
|
||||
|
||||
#
|
||||
# UEFI application (Shell Embedded Boot Loader)
|
||||
#
|
||||
INF ShellPkg/Application/Shell/Shell.inf
|
||||
INF ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.inf
|
||||
|
||||
@@ -195,6 +192,15 @@ READ_LOCK_STATUS = TRUE
|
||||
INF MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf
|
||||
INF MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.inf
|
||||
|
||||
#
|
||||
# PCI support
|
||||
#
|
||||
INF ArmPkg/Drivers/ArmPciCpuIo2Dxe/ArmPciCpuIo2Dxe.inf
|
||||
INF MdeModulePkg/Bus/Pci/PciHostBridgeDxe/PciHostBridgeDxe.inf
|
||||
INF MdeModulePkg/Bus/Pci/PciBusDxe/PciBusDxe.inf
|
||||
INF OvmfPkg/VirtioPciDeviceDxe/VirtioPciDeviceDxe.inf
|
||||
INF OvmfPkg/Virtio10Dxe/Virtio10.inf
|
||||
|
||||
#
|
||||
# TianoCore logo (splash screen)
|
||||
#
|
||||
|
@@ -115,7 +115,8 @@
|
||||
"virt's",
|
||||
"werror",
|
||||
"xenio",
|
||||
"kvmtool"
|
||||
"kvmtool",
|
||||
"cloudhv"
|
||||
], # words to extend to the dictionary for this package
|
||||
"IgnoreStandardPaths": [], # Standard Plugin defined paths that should be ignore
|
||||
"AdditionalIncludePaths": [] # Additional paths to spell check (wildcards supported)
|
||||
|
@@ -66,6 +66,12 @@
|
||||
#
|
||||
gArmVirtTokenSpaceGuid.PcdTerminalTypeGuidBuffer|{0x65, 0x60, 0xA6, 0xDF, 0x19, 0xB4, 0xD3, 0x11, 0x9A, 0x2D, 0x00, 0x90, 0x27, 0x3F, 0xC1, 0x4D}|VOID*|0x00000007
|
||||
|
||||
##
|
||||
# This is the physical address of Rsdp which is the core struct of Acpi.
|
||||
# Cloud Hypervisor has no other way to pass Rsdp address to the guest except use a PCD.
|
||||
#
|
||||
gArmVirtTokenSpaceGuid.PcdCloudHvAcpiRsdpBaseAddress|0x0|UINT64|0x00000005
|
||||
|
||||
[PcdsDynamic]
|
||||
#
|
||||
# Whether to force disable ACPI, regardless of the fw_cfg settings
|
||||
|
@@ -440,7 +440,10 @@
|
||||
NULL|MdeModulePkg/Library/BootManagerUiLib/BootManagerUiLib.inf
|
||||
NULL|MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib.inf
|
||||
}
|
||||
OvmfPkg/QemuKernelLoaderFsDxe/QemuKernelLoaderFsDxe.inf
|
||||
OvmfPkg/QemuKernelLoaderFsDxe/QemuKernelLoaderFsDxe.inf {
|
||||
<LibraryClasses>
|
||||
NULL|OvmfPkg/Library/BlobVerifierLibNull/BlobVerifierLibNull.inf
|
||||
}
|
||||
|
||||
#
|
||||
# Networking stack
|
||||
|
@@ -99,9 +99,6 @@ READ_LOCK_STATUS = TRUE
|
||||
INF OvmfPkg/VirtioScsiDxe/VirtioScsi.inf
|
||||
INF OvmfPkg/VirtioRngDxe/VirtioRng.inf
|
||||
|
||||
#
|
||||
# UEFI application (Shell Embedded Boot Loader)
|
||||
#
|
||||
INF ShellPkg/Application/Shell/Shell.inf
|
||||
INF ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.inf
|
||||
INF ShellPkg/DynamicCommand/HttpDynamicCommand/HttpDynamicCommand.inf
|
||||
|
@@ -376,7 +376,10 @@
|
||||
NULL|MdeModulePkg/Library/BootManagerUiLib/BootManagerUiLib.inf
|
||||
NULL|MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib.inf
|
||||
}
|
||||
OvmfPkg/QemuKernelLoaderFsDxe/QemuKernelLoaderFsDxe.inf
|
||||
OvmfPkg/QemuKernelLoaderFsDxe/QemuKernelLoaderFsDxe.inf {
|
||||
<LibraryClasses>
|
||||
NULL|OvmfPkg/Library/BlobVerifierLibNull/BlobVerifierLibNull.inf
|
||||
}
|
||||
|
||||
#
|
||||
# Networking stack
|
||||
|
@@ -177,9 +177,6 @@ READ_LOCK_STATUS = TRUE
|
||||
INF MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
|
||||
INF MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf
|
||||
|
||||
#
|
||||
# UEFI application (Shell Embedded Boot Loader)
|
||||
#
|
||||
INF ShellPkg/Application/Shell/Shell.inf
|
||||
INF ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.inf
|
||||
INF ShellPkg/DynamicCommand/HttpDynamicCommand/HttpDynamicCommand.inf
|
||||
|
160
ArmVirtPkg/CloudHvAcpiPlatformDxe/CloudHvAcpi.c
Normal file
160
ArmVirtPkg/CloudHvAcpiPlatformDxe/CloudHvAcpi.c
Normal file
@@ -0,0 +1,160 @@
|
||||
/** @file
|
||||
Install Acpi tables for Cloud Hypervisor
|
||||
|
||||
Copyright (c) 2021, Arm Limited. All rights reserved.<BR>
|
||||
|
||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
**/
|
||||
|
||||
#include <Library/BaseLib.h>
|
||||
#include <Library/MemoryAllocationLib.h>
|
||||
#include <IndustryStandard/Acpi63.h>
|
||||
#include <Protocol/AcpiTable.h>
|
||||
#include <Library/UefiBootServicesTableLib.h>
|
||||
#include <Library/UefiDriverEntryPoint.h>
|
||||
#include <Library/DebugLib.h>
|
||||
|
||||
/**
|
||||
Find Acpi table Protocol and return it
|
||||
|
||||
@return AcpiTable Protocol, which is used to handle Acpi Table, on SUCCESS or NULL on FAILURE.
|
||||
|
||||
**/
|
||||
STATIC
|
||||
EFI_ACPI_TABLE_PROTOCOL *
|
||||
FindAcpiTableProtocol (
|
||||
VOID
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
EFI_ACPI_TABLE_PROTOCOL *AcpiTable;
|
||||
|
||||
Status = gBS->LocateProtocol (
|
||||
&gEfiAcpiTableProtocolGuid,
|
||||
NULL,
|
||||
(VOID**)&AcpiTable
|
||||
);
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
return AcpiTable;
|
||||
}
|
||||
|
||||
/** Install Acpi tables for Cloud Hypervisor
|
||||
|
||||
@param [in] AcpiProtocol Acpi Protocol which is used to install Acpi tables
|
||||
|
||||
@return EFI_SUCCESS The table was successfully inserted.
|
||||
@return EFI_INVALID_PARAMETER Either AcpiProtocol, AcpiTablePtr or DsdtPtr is NULL
|
||||
and the size field embedded in the ACPI table pointed
|
||||
by AcpiTablePtr or DsdtPtr are not in sync.
|
||||
@return EFI_OUT_OF_RESOURCES Insufficient resources exist to complete the request.
|
||||
@return EFI_NOT_FOUND DSDT table not found.
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
InstallCloudHvAcpiTables (
|
||||
IN EFI_ACPI_TABLE_PROTOCOL *AcpiProtocol
|
||||
)
|
||||
{
|
||||
UINTN InstalledKey;
|
||||
UINTN TableSize;
|
||||
UINTN AcpiTableLength;
|
||||
UINT64 RsdpPtr;
|
||||
UINT64 XsdtPtr;
|
||||
UINT64 TableOffset;
|
||||
UINT64 AcpiTablePtr;
|
||||
UINT64 *DsdtPtr;
|
||||
EFI_STATUS Status;
|
||||
|
||||
if (AcpiProtocol == NULL) {
|
||||
return EFI_INVALID_PARAMETER;
|
||||
}
|
||||
|
||||
RsdpPtr = PcdGet64 (PcdCloudHvAcpiRsdpBaseAddress);
|
||||
XsdtPtr = ((EFI_ACPI_6_3_ROOT_SYSTEM_DESCRIPTION_POINTER *)RsdpPtr)->XsdtAddress;
|
||||
AcpiTableLength = ((EFI_ACPI_COMMON_HEADER *)XsdtPtr)->Length;
|
||||
TableOffset = sizeof (EFI_ACPI_DESCRIPTION_HEADER);
|
||||
DsdtPtr = NULL;
|
||||
|
||||
while (TableOffset < AcpiTableLength) {
|
||||
AcpiTablePtr = *(UINT64 *)(XsdtPtr + TableOffset);
|
||||
TableSize = ((EFI_ACPI_COMMON_HEADER *)AcpiTablePtr)->Length;
|
||||
|
||||
//
|
||||
// Install ACPI tables from XSDT
|
||||
//
|
||||
Status = AcpiProtocol->InstallAcpiTable (
|
||||
AcpiProtocol,
|
||||
(VOID *)AcpiTablePtr,
|
||||
TableSize,
|
||||
&InstalledKey
|
||||
);
|
||||
if (EFI_ERROR (Status)) {
|
||||
return Status;
|
||||
}
|
||||
|
||||
//
|
||||
// Get DSDT from FADT
|
||||
//
|
||||
if ((DsdtPtr == NULL) &&
|
||||
(EFI_ACPI_6_3_FIXED_ACPI_DESCRIPTION_TABLE_SIGNATURE ==
|
||||
((EFI_ACPI_COMMON_HEADER *)AcpiTablePtr)->Signature)) {
|
||||
DsdtPtr = (UINT64 *)((EFI_ACPI_6_3_FIXED_ACPI_DESCRIPTION_TABLE *)AcpiTablePtr)->XDsdt;
|
||||
}
|
||||
|
||||
TableOffset += sizeof (UINT64);
|
||||
} // while
|
||||
|
||||
if (DsdtPtr == NULL) {
|
||||
DEBUG ((DEBUG_ERROR, "%a: no DSDT found\n", __FUNCTION__));
|
||||
return EFI_NOT_FOUND;
|
||||
}
|
||||
|
||||
//
|
||||
// Install DSDT table
|
||||
//
|
||||
TableSize = ((EFI_ACPI_COMMON_HEADER *)DsdtPtr)->Length;
|
||||
Status = AcpiProtocol->InstallAcpiTable (
|
||||
AcpiProtocol,
|
||||
DsdtPtr,
|
||||
TableSize,
|
||||
&InstalledKey
|
||||
);
|
||||
|
||||
return Status;
|
||||
}
|
||||
|
||||
/** Entry point for Cloud Hypervisor Platform Dxe
|
||||
|
||||
@param [in] ImageHandle Handle for this image.
|
||||
@param [in] SystemTable Pointer to the EFI system table.
|
||||
|
||||
@return EFI_SUCCESS The table was successfully inserted.
|
||||
@return EFI_INVALID_PARAMETER Either AcpiProtocol, AcpiTablePtr or DsdtPtr is NULL
|
||||
and the size field embedded in the ACPI table pointed to
|
||||
by AcpiTablePtr or DsdtPtr are not in sync.
|
||||
@return EFI_OUT_OF_RESOURCES Insufficient resources exist to complete the request.
|
||||
@return EFI_NOT_FOUND DSDT table not found
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
CloudHvAcpiPlatformEntryPoint (
|
||||
IN EFI_HANDLE ImageHandle,
|
||||
IN EFI_SYSTEM_TABLE *SystemTable
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
|
||||
Status = InstallCloudHvAcpiTables (FindAcpiTableProtocol ());
|
||||
|
||||
if (EFI_ERROR (Status)) {
|
||||
DEBUG ((
|
||||
DEBUG_ERROR,
|
||||
"%a: Fail to install Acpi table: %r\n",
|
||||
__FUNCTION__,
|
||||
Status
|
||||
));
|
||||
CpuDeadLoop ();
|
||||
}
|
||||
|
||||
return EFI_SUCCESS;
|
||||
}
|
46
ArmVirtPkg/CloudHvAcpiPlatformDxe/CloudHvAcpiPlatformDxe.inf
Normal file
46
ArmVirtPkg/CloudHvAcpiPlatformDxe/CloudHvAcpiPlatformDxe.inf
Normal file
@@ -0,0 +1,46 @@
|
||||
## @file
|
||||
# ACPI Platform Driver for Cloud Hypervisor
|
||||
#
|
||||
# Copyright (c) 2021, ARM Limited. All rights reserved.<BR>
|
||||
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
#
|
||||
##
|
||||
|
||||
[Defines]
|
||||
INF_VERSION = 0x0001001B
|
||||
BASE_NAME = CloudHvAcpiPlatformDxe
|
||||
FILE_GUID = 6c76e407-73f2-dc1c-938f-5d6c4691ea93
|
||||
MODULE_TYPE = DXE_DRIVER
|
||||
VERSION_STRING = 1.0
|
||||
ENTRY_POINT = CloudHvAcpiPlatformEntryPoint
|
||||
|
||||
#
|
||||
# The following information is for reference only and not required by the build tools.
|
||||
#
|
||||
# VALID_ARCHITECTURES = AARCH64
|
||||
#
|
||||
|
||||
[Sources]
|
||||
CloudHvAcpi.c
|
||||
|
||||
[Packages]
|
||||
ArmVirtPkg/ArmVirtPkg.dec
|
||||
MdePkg/MdePkg.dec
|
||||
MdeModulePkg/MdeModulePkg.dec
|
||||
|
||||
[LibraryClasses]
|
||||
BaseLib
|
||||
DebugLib
|
||||
MemoryAllocationLib
|
||||
OrderedCollectionLib
|
||||
UefiBootServicesTableLib
|
||||
UefiDriverEntryPoint
|
||||
|
||||
[Protocols]
|
||||
gEfiAcpiTableProtocolGuid # PROTOCOL ALWAYS_CONSUMED
|
||||
|
||||
[Pcd]
|
||||
gArmVirtTokenSpaceGuid.PcdCloudHvAcpiRsdpBaseAddress
|
||||
|
||||
[Depex]
|
||||
gEfiAcpiTableProtocolGuid
|
79
ArmVirtPkg/CloudHvPlatformHasAcpiDtDxe/CloudHvHasAcpiDtDxe.c
Normal file
79
ArmVirtPkg/CloudHvPlatformHasAcpiDtDxe/CloudHvHasAcpiDtDxe.c
Normal file
@@ -0,0 +1,79 @@
|
||||
/** @file
|
||||
Decide whether the firmware should expose an ACPI- and/or a Device Tree-based
|
||||
hardware description to the operating system.
|
||||
|
||||
Copyright (c) 2021, Arm Limited. All rights reserved.<BR>
|
||||
|
||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
**/
|
||||
|
||||
#include <Guid/PlatformHasAcpi.h>
|
||||
#include <Guid/PlatformHasDeviceTree.h>
|
||||
#include <Library/BaseLib.h>
|
||||
#include <Library/DebugLib.h>
|
||||
#include <Library/PcdLib.h>
|
||||
#include <Library/UefiBootServicesTableLib.h>
|
||||
|
||||
/** Entry point for the Cloud Hypervisor PlatformHasAcpiDtDxe.
|
||||
|
||||
@param [in] ImageHandle Handle for this image.
|
||||
@param [in] SystemTable Pointer to the EFI system table.
|
||||
|
||||
@return EFI_SUCCESS If ACPI or Device Tree based hardware
|
||||
description protocol was installed.
|
||||
@return EFI_INVALID_PARAMETER A parameter was invalid.
|
||||
@return EFI_OUT_OF_RESOURCES Insufficient resources exist to complete
|
||||
the request.
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
PlatformHasAcpiDt (
|
||||
IN EFI_HANDLE ImageHandle,
|
||||
IN EFI_SYSTEM_TABLE *SystemTable
|
||||
)
|
||||
{
|
||||
EFI_STATUS Status;
|
||||
|
||||
//
|
||||
// If we fail to install any of the necessary protocols below, the OS will be
|
||||
// unbootable anyway (due to lacking hardware description), so tolerate no
|
||||
// errors here.
|
||||
//
|
||||
if (MAX_UINTN == MAX_UINT64 &&
|
||||
!PcdGetBool (PcdForceNoAcpi)) {
|
||||
Status = gBS->InstallProtocolInterface (
|
||||
&ImageHandle,
|
||||
&gEdkiiPlatformHasAcpiGuid,
|
||||
EFI_NATIVE_INTERFACE,
|
||||
NULL
|
||||
);
|
||||
if (EFI_ERROR (Status)) {
|
||||
goto Failed;
|
||||
}
|
||||
|
||||
return Status;
|
||||
}
|
||||
|
||||
//
|
||||
// Expose the Device Tree otherwise.
|
||||
//
|
||||
Status = gBS->InstallProtocolInterface (
|
||||
&ImageHandle,
|
||||
&gEdkiiPlatformHasDeviceTreeGuid,
|
||||
EFI_NATIVE_INTERFACE,
|
||||
NULL
|
||||
);
|
||||
if (EFI_ERROR (Status)) {
|
||||
goto Failed;
|
||||
}
|
||||
|
||||
return Status;
|
||||
|
||||
Failed:
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
CpuDeadLoop ();
|
||||
//
|
||||
// Keep compilers happy.
|
||||
//
|
||||
return Status;
|
||||
}
|
@@ -0,0 +1,42 @@
|
||||
## @file
|
||||
# Decide whether the firmware should expose an ACPI- and/or a Device Tree-based
|
||||
# hardware description to the operating system.
|
||||
#
|
||||
# Copyright (c) 2021, Arm Limited. All rights reserved.<BR>
|
||||
#
|
||||
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
##
|
||||
|
||||
[Defines]
|
||||
INF_VERSION = 0x0001001B
|
||||
BASE_NAME = CloudHvPlatformHasAcpiDtDxe
|
||||
FILE_GUID = 71fe72f9-6dc1-199d-5054-13b4200ee88d
|
||||
MODULE_TYPE = DXE_DRIVER
|
||||
VERSION_STRING = 1.0
|
||||
ENTRY_POINT = PlatformHasAcpiDt
|
||||
|
||||
[Sources]
|
||||
CloudHvHasAcpiDtDxe.c
|
||||
|
||||
[Packages]
|
||||
ArmVirtPkg/ArmVirtPkg.dec
|
||||
EmbeddedPkg/EmbeddedPkg.dec
|
||||
MdeModulePkg/MdeModulePkg.dec
|
||||
MdePkg/MdePkg.dec
|
||||
|
||||
[LibraryClasses]
|
||||
BaseLib
|
||||
DebugLib
|
||||
PcdLib
|
||||
UefiBootServicesTableLib
|
||||
UefiDriverEntryPoint
|
||||
|
||||
[Guids]
|
||||
gEdkiiPlatformHasAcpiGuid ## SOMETIMES_PRODUCES ## PROTOCOL
|
||||
gEdkiiPlatformHasDeviceTreeGuid ## SOMETIMES_PRODUCES ## PROTOCOL
|
||||
|
||||
[Pcd]
|
||||
gArmVirtTokenSpaceGuid.PcdForceNoAcpi
|
||||
|
||||
[Depex]
|
||||
gEfiVariableArchProtocolGuid
|
@@ -0,0 +1,218 @@
|
||||
/** @file
|
||||
PCI Host Bridge utility functions for ArmVirt.
|
||||
|
||||
Copyright (c) 2021, Arm Limited. All rights reserved.<BR>
|
||||
|
||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
|
||||
**/
|
||||
|
||||
#include <IndustryStandard/Acpi10.h>
|
||||
#include <IndustryStandard/Pci.h>
|
||||
#include <Library/BaseMemoryLib.h>
|
||||
#include <Library/DebugLib.h>
|
||||
#include <Library/DevicePathLib.h>
|
||||
#include <Library/MemoryAllocationLib.h>
|
||||
#include <Library/PciHostBridgeLib.h>
|
||||
#include <Library/PciHostBridgeUtilityLib.h>
|
||||
#include <Library/PciLib.h>
|
||||
|
||||
#pragma pack(1)
|
||||
typedef struct {
|
||||
ACPI_HID_DEVICE_PATH AcpiDevicePath;
|
||||
EFI_DEVICE_PATH_PROTOCOL EndDevicePath;
|
||||
} EFI_PCI_ROOT_BRIDGE_DEVICE_PATH;
|
||||
#pragma pack ()
|
||||
|
||||
GLOBAL_REMOVE_IF_UNREFERENCED
|
||||
CHAR16 *mPciHostBridgeAcpiAddressSpaceTypeStr[] = {
|
||||
L"Mem",
|
||||
L"I/O",
|
||||
L"Bus"
|
||||
};
|
||||
|
||||
STATIC CONST EFI_PCI_ROOT_BRIDGE_DEVICE_PATH mEfiPciRootBridgeDevicePath = {
|
||||
{
|
||||
{
|
||||
ACPI_DEVICE_PATH,
|
||||
ACPI_DP,
|
||||
{
|
||||
(UINT8) (sizeof (ACPI_HID_DEVICE_PATH)),
|
||||
(UINT8) ((sizeof (ACPI_HID_DEVICE_PATH)) >> 8)
|
||||
}
|
||||
},
|
||||
EISA_PNP_ID (0x0A03), // HID
|
||||
0 // UID
|
||||
},
|
||||
|
||||
{
|
||||
END_DEVICE_PATH_TYPE,
|
||||
END_ENTIRE_DEVICE_PATH_SUBTYPE,
|
||||
{
|
||||
END_DEVICE_PATH_LENGTH,
|
||||
0
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
GLOBAL_REMOVE_IF_UNREFERENCED
|
||||
CHAR16 *mPciHostBridgeLibAcpiAddressSpaceTypeStr[] = {
|
||||
L"Mem", L"I/O", L"Bus"
|
||||
};
|
||||
|
||||
STATIC PCI_ROOT_BRIDGE mRootBridge;
|
||||
|
||||
/**
|
||||
Utility function to return all the root bridge instances in an array.
|
||||
|
||||
@param [out] Count The number of root bridge instances.
|
||||
@param [in] Attributes Initial attributes.
|
||||
@param [in] AllocationAttributes Allocation attributes.
|
||||
@param [in] DmaAbove4G DMA above 4GB memory.
|
||||
@param [in] NoExtendedConfigSpace No Extended Config Space.
|
||||
@param [in] BusMin Minimum Bus number, inclusive.
|
||||
@param [in] BusMax Maximum Bus number, inclusive.
|
||||
@param [in] Io IO aperture.
|
||||
@param [in] Mem MMIO aperture.
|
||||
@param [in] MemAbove4G MMIO aperture above 4G.
|
||||
@param [in] PMem Prefetchable MMIO aperture.
|
||||
@param [in] PMemAbove4G Prefetchable MMIO aperture above 4G.
|
||||
|
||||
@return All the root bridge instances in an array.
|
||||
**/
|
||||
PCI_ROOT_BRIDGE *
|
||||
EFIAPI
|
||||
PciHostBridgeUtilityGetRootBridges (
|
||||
OUT UINTN *Count,
|
||||
IN UINT64 Attributes,
|
||||
IN UINT64 AllocationAttributes,
|
||||
IN BOOLEAN DmaAbove4G,
|
||||
IN BOOLEAN NoExtendedConfigSpace,
|
||||
IN UINTN BusMin,
|
||||
IN UINTN BusMax,
|
||||
IN PCI_ROOT_BRIDGE_APERTURE *Io,
|
||||
IN PCI_ROOT_BRIDGE_APERTURE *Mem,
|
||||
IN PCI_ROOT_BRIDGE_APERTURE *MemAbove4G,
|
||||
IN PCI_ROOT_BRIDGE_APERTURE *PMem,
|
||||
IN PCI_ROOT_BRIDGE_APERTURE *PMemAbove4G
|
||||
)
|
||||
{
|
||||
if ((Count == NULL) ||
|
||||
(Io == NULL) ||
|
||||
(Mem == NULL) ||
|
||||
(MemAbove4G == NULL) ||
|
||||
(PMem == NULL) ||
|
||||
(PMemAbove4G == NULL)) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
*Count = 1;
|
||||
|
||||
mRootBridge.Segment = 0;
|
||||
mRootBridge.Supports = Attributes;
|
||||
mRootBridge.Attributes = Attributes;
|
||||
|
||||
mRootBridge.DmaAbove4G = DmaAbove4G;
|
||||
mRootBridge.NoExtendedConfigSpace = NoExtendedConfigSpace;
|
||||
mRootBridge.ResourceAssigned = FALSE;
|
||||
|
||||
mRootBridge.AllocationAttributes = AllocationAttributes;
|
||||
|
||||
mRootBridge.Bus.Base = BusMin;
|
||||
mRootBridge.Bus.Limit = BusMax;
|
||||
mRootBridge.Io.Base = Io->Base;
|
||||
mRootBridge.Io.Limit = Io->Limit;
|
||||
mRootBridge.Mem.Base = Mem->Base;
|
||||
mRootBridge.Mem.Limit = Mem->Limit;
|
||||
mRootBridge.MemAbove4G.Base = MemAbove4G->Base;
|
||||
mRootBridge.MemAbove4G.Limit = MemAbove4G->Limit;
|
||||
mRootBridge.PMem.Base = PMem->Base;
|
||||
mRootBridge.PMem.Limit = PMem->Limit;
|
||||
mRootBridge.PMemAbove4G.Base = PMemAbove4G->Base;
|
||||
mRootBridge.PMemAbove4G.Limit = PMemAbove4G->Limit;
|
||||
|
||||
mRootBridge.DevicePath =
|
||||
(EFI_DEVICE_PATH_PROTOCOL*)&mEfiPciRootBridgeDevicePath;
|
||||
|
||||
return &mRootBridge;
|
||||
}
|
||||
|
||||
/**
|
||||
Utility function to free root bridge instances array from
|
||||
PciHostBridgeUtilityGetRootBridges().
|
||||
|
||||
@param[in] Bridges The root bridge instances array.
|
||||
@param[in] Count The count of the array.
|
||||
**/
|
||||
VOID
|
||||
EFIAPI
|
||||
PciHostBridgeUtilityFreeRootBridges (
|
||||
IN PCI_ROOT_BRIDGE *Bridges,
|
||||
IN UINTN Count
|
||||
)
|
||||
{
|
||||
// Nothing to do here.
|
||||
}
|
||||
|
||||
/**
|
||||
Utility function to inform the platform that the resource conflict happens.
|
||||
|
||||
@param[in] Configuration Pointer to PCI I/O and PCI memory resource
|
||||
descriptors. The Configuration contains the
|
||||
resources for all the root bridges. The resource
|
||||
for each root bridge is terminated with END
|
||||
descriptor and an additional END is appended
|
||||
indicating the end of the entire resources. The
|
||||
resource descriptor field values follow the
|
||||
description in
|
||||
EFI_PCI_HOST_BRIDGE_RESOURCE_ALLOCATION_PROTOCOL
|
||||
.SubmitResources().
|
||||
**/
|
||||
VOID
|
||||
EFIAPI
|
||||
PciHostBridgeUtilityResourceConflict (
|
||||
IN VOID *Configuration
|
||||
)
|
||||
{
|
||||
EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR *Descriptor;
|
||||
UINTN RootBridgeIndex;
|
||||
DEBUG ((DEBUG_ERROR, "PciHostBridge: Resource conflict happens!\n"));
|
||||
|
||||
RootBridgeIndex = 0;
|
||||
Descriptor = (EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR*)Configuration;
|
||||
while (Descriptor->Desc == ACPI_ADDRESS_SPACE_DESCRIPTOR) {
|
||||
DEBUG ((DEBUG_ERROR, "RootBridge[%d]:\n", RootBridgeIndex++));
|
||||
for (; Descriptor->Desc == ACPI_ADDRESS_SPACE_DESCRIPTOR; Descriptor++) {
|
||||
ASSERT (Descriptor->ResType <
|
||||
ARRAY_SIZE (mPciHostBridgeAcpiAddressSpaceTypeStr)
|
||||
);
|
||||
DEBUG ((
|
||||
DEBUG_ERROR,
|
||||
" %s: Length/Alignment = 0x%lx / 0x%lx\n",
|
||||
mPciHostBridgeAcpiAddressSpaceTypeStr[Descriptor->ResType],
|
||||
Descriptor->AddrLen,
|
||||
Descriptor->AddrRangeMax
|
||||
));
|
||||
if (Descriptor->ResType == ACPI_ADDRESS_SPACE_TYPE_MEM) {
|
||||
DEBUG ((
|
||||
DEBUG_ERROR,
|
||||
" Granularity/SpecificFlag = %ld / %02x%s\n",
|
||||
Descriptor->AddrSpaceGranularity,
|
||||
Descriptor->SpecificFlag,
|
||||
((Descriptor->SpecificFlag &
|
||||
EFI_ACPI_MEMORY_RESOURCE_SPECIFIC_FLAG_CACHEABLE_PREFETCHABLE
|
||||
) != 0) ? L" (Prefetchable)" : L""
|
||||
));
|
||||
}
|
||||
}
|
||||
//
|
||||
// Skip the END descriptor for root bridge
|
||||
//
|
||||
ASSERT (Descriptor->Desc == ACPI_END_TAG_DESCRIPTOR);
|
||||
Descriptor = (EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR*)(
|
||||
(EFI_ACPI_END_TAG_DESCRIPTOR*)Descriptor + 1
|
||||
);
|
||||
}
|
||||
}
|
@@ -0,0 +1,39 @@
|
||||
## @file
|
||||
# PciHostBridgeLib utility functions for ArmVirt.
|
||||
#
|
||||
# Copyright (c) 2021, Arm Limited. All rights reserved.
|
||||
#
|
||||
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
#
|
||||
#
|
||||
##
|
||||
|
||||
[Defines]
|
||||
INF_VERSION = 0x0001001B
|
||||
BASE_NAME = ArmVirtPciHostBridgeUtilityLib
|
||||
FILE_GUID = 22A8844E-2AE7-4BF1-91FA-6EFDE3FE540C
|
||||
MODULE_TYPE = DXE_DRIVER
|
||||
VERSION_STRING = 1.0
|
||||
LIBRARY_CLASS = PciHostBridgeUtilityLib
|
||||
|
||||
#
|
||||
# The following information is for reference only and not required by the build
|
||||
# tools.
|
||||
#
|
||||
# VALID_ARCHITECTURES = AARCH64 ARM
|
||||
#
|
||||
|
||||
[Sources]
|
||||
ArmVirtPciHostBridgeUtilityLib.c
|
||||
|
||||
[Packages]
|
||||
MdeModulePkg/MdeModulePkg.dec
|
||||
MdePkg/MdePkg.dec
|
||||
OvmfPkg/OvmfPkg.dec
|
||||
|
||||
[LibraryClasses]
|
||||
BaseMemoryLib
|
||||
DebugLib
|
||||
DevicePathLib
|
||||
MemoryAllocationLib
|
||||
PciLib
|
@@ -669,6 +669,5 @@
|
||||
<Command.GCC>
|
||||
"$(GENFW)" -o $(OUTPUT_DIR)(+)$(MODULE_NAME)hii.rc -g $(MODULE_GUID) --hiibinpackage $(HII_BINARY_PACKAGES) $(GENFW_FLAGS)
|
||||
"$(RC)" $(RC_FLAGS) $(OUTPUT_DIR)(+)$(MODULE_NAME)hii.rc ${dst}
|
||||
|
||||
<Command.XCODE, Command.RVCT>
|
||||
GenFw -o $(OUTPUT_DIR)(+)$(MODULE_NAME)hii.rc -g $(MODULE_GUID) --hiibinpackage $(HII_BINARY_PACKAGES)
|
||||
<Command.XCODE, Command.RVCT, Command.CLANGGCC>
|
||||
"$(GENFW)" -o $(OUTPUT_DIR)(+)$(MODULE_NAME)hii.rc -g $(MODULE_GUID) --hiibinpackage $(HII_BINARY_PACKAGES) $(GENFW_FLAGS)
|
||||
|
@@ -292,9 +292,12 @@ DEFINE DTC_BIN = ENV(DTC_PREFIX)dtc
|
||||
# Required to compile nasm source:
|
||||
# nasm compiler from
|
||||
# NASM -- http://www.nasm.us/
|
||||
# Required to build platforms or ACPI tables:
|
||||
# Intel(r) ACPI Compiler from
|
||||
# https://acpica.org/downloads
|
||||
# CLANGDWARF -Linux, Windows, Mac- Requires:
|
||||
# Clang 9 or above from http://releases.llvm.org/
|
||||
# Optional:
|
||||
# Required to compile nasm source:
|
||||
# nasm compiler from
|
||||
# NASM -- http://www.nasm.us/
|
||||
# VS2008x86 -win64- Requires:
|
||||
# Microsoft Visual Studio 2008 (x86)
|
||||
# Microsoft Windows Server 2003 Driver Development Kit (Microsoft WINDDK) version 3790.1830
|
||||
@@ -2828,6 +2831,106 @@ NOOPT_CLANGPDB_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:RE
|
||||
NOOPT_CLANGPDB_X64_DLINK2_FLAGS =
|
||||
NOOPT_CLANGPDB_X64_GENFW_FLAGS = --keepexceptiontable
|
||||
|
||||
####################################################################################
|
||||
#
|
||||
# CLANGDWARF - This configuration is used to compile under Windows/Linux/Mac to produce
|
||||
# ELF binaries using LLVM/Clang/LLD with Link Time Optimization enabled
|
||||
#
|
||||
####################################################################################
|
||||
*_CLANGDWARF_*_*_FAMILY = GCC
|
||||
*_CLANGDWARF_*_*_BUILDRULEFAMILY = CLANGGCC
|
||||
*_CLANGDWARF_*_MAKE_PATH = ENV(CLANG_HOST_BIN)make
|
||||
*_CLANGDWARF_*_*_DLL = ENV(CLANGDWARF_DLL)
|
||||
*_CLANGDWARF_*_ASL_PATH = DEF(UNIX_IASL_BIN)
|
||||
|
||||
*_CLANGDWARF_*_APP_FLAGS =
|
||||
*_CLANGDWARF_*_ASL_FLAGS = DEF(IASL_FLAGS)
|
||||
*_CLANGDWARF_*_ASL_OUTFLAGS = DEF(IASL_OUTFLAGS)
|
||||
|
||||
DEFINE CLANGDWARF_IA32_PREFIX = ENV(CLANG_BIN)
|
||||
DEFINE CLANGDWARF_X64_PREFIX = ENV(CLANG_BIN)
|
||||
|
||||
# LLVM/CLANG doesn't support -n link option. So, it can't share the same IA32_X64_DLINK_COMMON flag.
|
||||
# LLVM/CLANG doesn't support common page size. So, it can't share the same GccBase.lds script.
|
||||
DEFINE CLANGDWARF_IA32_X64_DLINK_COMMON = -nostdlib -Wl,-q,--gc-sections -z max-page-size=0x40
|
||||
DEFINE CLANGDWARF_DLINK2_FLAGS_COMMON = -Wl,--script=$(EDK_TOOLS_PATH)/Scripts/ClangBase.lds
|
||||
DEFINE CLANGDWARF_IA32_X64_ASLDLINK_FLAGS = DEF(CLANGDWARF_IA32_X64_DLINK_COMMON) -Wl,--defsym=PECOFF_HEADER_SIZE=0 DEF(CLANGDWARF_DLINK2_FLAGS_COMMON) -Wl,--entry,ReferenceAcpiTable -u ReferenceAcpiTable
|
||||
DEFINE CLANGDWARF_IA32_X64_DLINK_FLAGS = DEF(CLANGDWARF_IA32_X64_DLINK_COMMON) -Wl,--entry,$(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT) -Wl,-Map,$(DEST_DIR_DEBUG)/$(BASE_NAME).map,--whole-archive
|
||||
DEFINE CLANGDWARF_IA32_DLINK2_FLAGS = -Wl,--defsym=PECOFF_HEADER_SIZE=0x220 DEF(CLANGDWARF_DLINK2_FLAGS_COMMON)
|
||||
DEFINE CLANGDWARF_X64_DLINK2_FLAGS = -Wl,--defsym=PECOFF_HEADER_SIZE=0x228 DEF(CLANGDWARF_DLINK2_FLAGS_COMMON)
|
||||
|
||||
###########################
|
||||
# CLANGDWARF IA32 definitions
|
||||
###########################
|
||||
*_CLANGDWARF_IA32_CC_PATH = DEF(CLANGDWARF_IA32_PREFIX)clang
|
||||
*_CLANGDWARF_IA32_SLINK_PATH = DEF(CLANGDWARF_IA32_PREFIX)llvm-ar
|
||||
*_CLANGDWARF_IA32_DLINK_PATH = DEF(CLANGDWARF_IA32_PREFIX)clang
|
||||
*_CLANGDWARF_IA32_ASLDLINK_PATH = DEF(CLANGDWARF_IA32_PREFIX)clang
|
||||
*_CLANGDWARF_IA32_ASM_PATH = DEF(CLANGDWARF_IA32_PREFIX)clang
|
||||
*_CLANGDWARF_IA32_PP_PATH = DEF(CLANGDWARF_IA32_PREFIX)clang
|
||||
*_CLANGDWARF_IA32_VFRPP_PATH = DEF(CLANGDWARF_IA32_PREFIX)clang
|
||||
*_CLANGDWARF_IA32_ASLCC_PATH = DEF(CLANGDWARF_IA32_PREFIX)clang
|
||||
*_CLANGDWARF_IA32_ASLPP_PATH = DEF(CLANGDWARF_IA32_PREFIX)clang
|
||||
*_CLANGDWARF_IA32_RC_PATH = DEF(CLANGDWARF_IA32_PREFIX)llvm-rc
|
||||
|
||||
*_CLANGDWARF_IA32_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) -m32 -fno-lto DEF(CLANG38_IA32_TARGET)
|
||||
*_CLANGDWARF_IA32_ASLDLINK_FLAGS = DEF(CLANGDWARF_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386 -fuse-ld=lld
|
||||
*_CLANGDWARF_IA32_ASM_FLAGS = DEF(GCC5_ASM_FLAGS) -m32 -march=i386 DEF(CLANG38_IA32_TARGET)
|
||||
*_CLANGDWARF_IA32_RC_FLAGS = DEF(GCC_IA32_RC_FLAGS)
|
||||
*_CLANGDWARF_IA32_OBJCOPY_FLAGS =
|
||||
*_CLANGDWARF_IA32_NASM_FLAGS = -f elf32
|
||||
*_CLANGDWARF_IA32_PP_FLAGS = DEF(GCC_PP_FLAGS) DEF(CLANG38_IA32_TARGET)
|
||||
*_CLANGDWARF_IA32_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS) DEF(CLANG38_IA32_TARGET)
|
||||
*_CLANGDWARF_IA32_VFRPP_FLAGS = DEF(GCC_VFRPP_FLAGS) DEF(CLANG38_IA32_TARGET)
|
||||
|
||||
DEBUG_CLANGDWARF_IA32_CC_FLAGS = DEF(CLANG38_ALL_CC_FLAGS) -m32 -Oz -flto -march=i586 DEF(CLANG38_IA32_TARGET) -g
|
||||
DEBUG_CLANGDWARF_IA32_DLINK_FLAGS = DEF(CLANGDWARF_IA32_X64_DLINK_FLAGS) -flto -Wl,-O3 -Wl,-melf_i386 -Wl,--oformat,elf32-i386
|
||||
DEBUG_CLANGDWARF_IA32_DLINK2_FLAGS = DEF(CLANGDWARF_IA32_DLINK2_FLAGS) -O3 -fuse-ld=lld
|
||||
|
||||
RELEASE_CLANGDWARF_IA32_CC_FLAGS = DEF(CLANG38_ALL_CC_FLAGS) -m32 -Oz -flto -march=i586 DEF(CLANG38_IA32_TARGET)
|
||||
RELEASE_CLANGDWARF_IA32_DLINK_FLAGS = DEF(CLANGDWARF_IA32_X64_DLINK_FLAGS) -flto -Wl,-O3 -Wl,-melf_i386 -Wl,--oformat,elf32-i386
|
||||
RELEASE_CLANGDWARF_IA32_DLINK2_FLAGS = DEF(CLANGDWARF_IA32_DLINK2_FLAGS) -O3 -fuse-ld=lld
|
||||
|
||||
NOOPT_CLANGDWARF_IA32_CC_FLAGS = DEF(CLANG38_ALL_CC_FLAGS) -m32 -O0 -march=i586 DEF(CLANG38_IA32_TARGET) -g
|
||||
NOOPT_CLANGDWARF_IA32_DLINK_FLAGS = DEF(CLANGDWARF_IA32_X64_DLINK_FLAGS) -Wl,-O0 -Wl,-melf_i386 -Wl,--oformat,elf32-i386
|
||||
NOOPT_CLANGDWARF_IA32_DLINK2_FLAGS = DEF(CLANGDWARF_IA32_DLINK2_FLAGS) -O0 -fuse-ld=lld
|
||||
|
||||
##########################
|
||||
# CLANGDWARF X64 definitions
|
||||
##########################
|
||||
*_CLANGDWARF_X64_CC_PATH = DEF(CLANGDWARF_X64_PREFIX)clang
|
||||
*_CLANGDWARF_X64_SLINK_PATH = DEF(CLANGDWARF_X64_PREFIX)llvm-ar
|
||||
*_CLANGDWARF_X64_DLINK_PATH = DEF(CLANGDWARF_X64_PREFIX)clang
|
||||
*_CLANGDWARF_X64_ASLDLINK_PATH = DEF(CLANGDWARF_X64_PREFIX)clang
|
||||
*_CLANGDWARF_X64_ASM_PATH = DEF(CLANGDWARF_X64_PREFIX)clang
|
||||
*_CLANGDWARF_X64_PP_PATH = DEF(CLANGDWARF_X64_PREFIX)clang
|
||||
*_CLANGDWARF_X64_VFRPP_PATH = DEF(CLANGDWARF_X64_PREFIX)clang
|
||||
*_CLANGDWARF_X64_ASLCC_PATH = DEF(CLANGDWARF_X64_PREFIX)clang
|
||||
*_CLANGDWARF_X64_ASLPP_PATH = DEF(CLANGDWARF_X64_PREFIX)clang
|
||||
*_CLANGDWARF_X64_RC_PATH = DEF(CLANGDWARF_X64_PREFIX)llvm-rc
|
||||
|
||||
*_CLANGDWARF_X64_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) -m64 -fno-lto DEF(CLANG38_X64_TARGET)
|
||||
*_CLANGDWARF_X64_ASLDLINK_FLAGS = DEF(CLANGDWARF_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_x86_64 -fuse-ld=lld
|
||||
*_CLANGDWARF_X64_ASM_FLAGS = DEF(GCC5_ASM_FLAGS) -m64 DEF(CLANG38_X64_TARGET)
|
||||
*_CLANGDWARF_X64_RC_FLAGS = DEF(GCC_X64_RC_FLAGS)
|
||||
*_CLANGDWARF_X64_OBJCOPY_FLAGS =
|
||||
*_CLANGDWARF_X64_NASM_FLAGS = -f elf64
|
||||
*_CLANGDWARF_X64_PP_FLAGS = DEF(GCC_PP_FLAGS) DEF(CLANG38_X64_TARGET)
|
||||
*_CLANGDWARF_X64_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS) DEF(CLANG38_X64_TARGET)
|
||||
*_CLANGDWARF_X64_VFRPP_FLAGS = DEF(GCC_VFRPP_FLAGS) DEF(CLANG38_X64_TARGET)
|
||||
|
||||
DEBUG_CLANGDWARF_X64_CC_FLAGS = DEF(CLANG38_ALL_CC_FLAGS) -m64 "-DEFIAPI=__attribute__((ms_abi))" -mno-red-zone -mcmodel=small -fpie -Oz -flto DEF(CLANG38_X64_TARGET) -g
|
||||
DEBUG_CLANGDWARF_X64_DLINK_FLAGS = DEF(CLANGDWARF_IA32_X64_DLINK_FLAGS) -flto -Wl,-O3 -Wl,-melf_x86_64 -Wl,--oformat,elf64-x86-64 -Wl,-pie -mcmodel=small -Wl,--apply-dynamic-relocs
|
||||
DEBUG_CLANGDWARF_X64_DLINK2_FLAGS = DEF(CLANGDWARF_X64_DLINK2_FLAGS) -O3 -fuse-ld=lld
|
||||
|
||||
RELEASE_CLANGDWARF_X64_CC_FLAGS = DEF(CLANG38_ALL_CC_FLAGS) -m64 "-DEFIAPI=__attribute__((ms_abi))" -mno-red-zone -mcmodel=small -fpie -Oz -flto DEF(CLANG38_X64_TARGET)
|
||||
RELEASE_CLANGDWARF_X64_DLINK_FLAGS = DEF(CLANGDWARF_IA32_X64_DLINK_FLAGS) -flto -Wl,-O3 -Wl,-melf_x86_64 -Wl,--oformat,elf64-x86-64 -Wl,-pie -mcmodel=small -Wl,--apply-dynamic-relocs
|
||||
RELEASE_CLANGDWARF_X64_DLINK2_FLAGS = DEF(CLANGDWARF_X64_DLINK2_FLAGS) -O3 -fuse-ld=lld
|
||||
|
||||
NOOPT_CLANGDWARF_X64_CC_FLAGS = DEF(CLANG38_ALL_CC_FLAGS) -m64 "-DEFIAPI=__attribute__((ms_abi))" -mno-red-zone -mcmodel=small -fpie -O0 DEF(CLANG38_X64_TARGET) -g
|
||||
NOOPT_CLANGDWARF_X64_DLINK_FLAGS = DEF(CLANGDWARF_IA32_X64_DLINK_FLAGS) -Wl,-O0 -Wl,-melf_x86_64 -Wl,--oformat,elf64-x86-64 -Wl,-pie -mcmodel=small -Wl,--apply-dynamic-relocs
|
||||
NOOPT_CLANGDWARF_X64_DLINK2_FLAGS = DEF(CLANGDWARF_X64_DLINK2_FLAGS) -O0 -fuse-ld=lld
|
||||
|
||||
#
|
||||
#
|
||||
# XCODE5 support
|
||||
|
78
BaseTools/Scripts/ClangBase.lds
Normal file
78
BaseTools/Scripts/ClangBase.lds
Normal file
@@ -0,0 +1,78 @@
|
||||
/** @file
|
||||
|
||||
Unified linker script for CLANG based builds
|
||||
|
||||
Copyright (c) 2010 - 2021, Intel Corporation. All rights reserved.<BR>
|
||||
Copyright (c) 2015, Linaro Ltd. All rights reserved.<BR>
|
||||
(C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>
|
||||
|
||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
|
||||
**/
|
||||
|
||||
SECTIONS {
|
||||
|
||||
/*
|
||||
* The PE/COFF binary consists of DOS and PE/COFF headers, and a sequence of
|
||||
* section headers adding up to PECOFF_HEADER_SIZE bytes (which differs
|
||||
* between 32-bit and 64-bit builds). The actual start of the .text section
|
||||
* will be rounded up based on its actual alignment.
|
||||
*/
|
||||
. = PECOFF_HEADER_SIZE;
|
||||
|
||||
.text : ALIGN(CONSTANT(MAXPAGESIZE)) {
|
||||
*(.text .text.* .stub .gnu.linkonce.t.*)
|
||||
*(.rodata .rodata.* .gnu.linkonce.r.*)
|
||||
*(.got .got.*)
|
||||
|
||||
/*
|
||||
* The contents of AutoGen.c files are mostly constant from the POV of the
|
||||
* program, but most of it ends up in .data or .bss by default since few of
|
||||
* the variable definitions that get emitted are declared as CONST.
|
||||
* Unfortunately, we cannot pull it into the .text section entirely, since
|
||||
* patchable PCDs are also emitted here, but we can at least move all of the
|
||||
* emitted GUIDs here.
|
||||
*/
|
||||
*:AutoGen.obj(.data.g*Guid)
|
||||
}
|
||||
|
||||
/*
|
||||
* The alignment of the .data section should be less than or equal to the
|
||||
* alignment of the .text section. This ensures that the relative offset
|
||||
* between these sections is the same in the ELF and the PE/COFF versions of
|
||||
* this binary.
|
||||
*/
|
||||
.data ALIGN(ALIGNOF(.text)) : ALIGN(CONSTANT(MAXPAGESIZE)) {
|
||||
*(.data .data.* .gnu.linkonce.d.*)
|
||||
*(.bss .bss.*)
|
||||
}
|
||||
|
||||
.eh_frame ALIGN(CONSTANT(MAXPAGESIZE)) : {
|
||||
KEEP (*(.eh_frame))
|
||||
}
|
||||
|
||||
.rela (INFO) : {
|
||||
*(.rela .rela.*)
|
||||
}
|
||||
|
||||
.hii : ALIGN(CONSTANT(MAXPAGESIZE)) {
|
||||
KEEP (*(.hii))
|
||||
}
|
||||
|
||||
/*
|
||||
* Retain the GNU build id but in a non-allocatable section so GenFw
|
||||
* does not copy it into the PE/COFF image.
|
||||
*/
|
||||
.build-id (INFO) : { *(.note.gnu.build-id) }
|
||||
|
||||
/DISCARD/ : {
|
||||
*(.note.GNU-stack)
|
||||
*(.gnu_debuglink)
|
||||
*(.interp)
|
||||
*(.dynsym)
|
||||
*(.dynstr)
|
||||
*(.hash .gnu.hash)
|
||||
*(.comment)
|
||||
*(COMMON)
|
||||
}
|
||||
}
|
@@ -284,7 +284,15 @@ class Config(object):
|
||||
line=x.split('\n')[0]
|
||||
comment_list = value_re.findall(line) # the string \\... in "Q...." line
|
||||
comment_list[0] = comment_list[0].replace('//', '')
|
||||
comment = comment_list[0].strip()
|
||||
comment_ori = comment_list[0].strip()
|
||||
comment = ""
|
||||
for each in comment_ori:
|
||||
if each != " " and "\x21" > each or each > "\x7E":
|
||||
if bytes(each, 'utf-16') == b'\xff\xfe\xae\x00':
|
||||
each = '(R)'
|
||||
else:
|
||||
each = ""
|
||||
comment += each
|
||||
line=value_re.sub('',line) #delete \\... in "Q...." line
|
||||
list1=line.split(' ')
|
||||
value=self.value_parser(list1)
|
||||
|
@@ -74,6 +74,5 @@ SECTIONS {
|
||||
*(.dynamic)
|
||||
*(.hash .gnu.hash)
|
||||
*(.comment)
|
||||
*(COMMON)
|
||||
}
|
||||
}
|
||||
|
@@ -1,194 +1,196 @@
|
||||
## @file
|
||||
# Retrieves the people to request review from on submission of a commit.
|
||||
#
|
||||
# Copyright (c) 2019, Linaro Ltd. All rights reserved.<BR>
|
||||
#
|
||||
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
#
|
||||
|
||||
from __future__ import print_function
|
||||
from collections import defaultdict
|
||||
from collections import OrderedDict
|
||||
import argparse
|
||||
import os
|
||||
import re
|
||||
import SetupGit
|
||||
|
||||
EXPRESSIONS = {
|
||||
'exclude': re.compile(r'^X:\s*(?P<exclude>.*?)\r*$'),
|
||||
'file': re.compile(r'^F:\s*(?P<file>.*?)\r*$'),
|
||||
'list': re.compile(r'^L:\s*(?P<list>.*?)\r*$'),
|
||||
'maintainer': re.compile(r'^M:\s*(?P<maintainer>.*<.*?>)\r*$'),
|
||||
'reviewer': re.compile(r'^R:\s*(?P<reviewer>.*?)\r*$'),
|
||||
'status': re.compile(r'^S:\s*(?P<status>.*?)\r*$'),
|
||||
'tree': re.compile(r'^T:\s*(?P<tree>.*?)\r*$'),
|
||||
'webpage': re.compile(r'^W:\s*(?P<webpage>.*?)\r*$')
|
||||
}
|
||||
|
||||
def printsection(section):
|
||||
"""Prints out the dictionary describing a Maintainers.txt section."""
|
||||
print('===')
|
||||
for key in section.keys():
|
||||
print("Key: %s" % key)
|
||||
for item in section[key]:
|
||||
print(' %s' % item)
|
||||
|
||||
def pattern_to_regex(pattern):
|
||||
"""Takes a string containing regular UNIX path wildcards
|
||||
and returns a string suitable for matching with regex."""
|
||||
|
||||
pattern = pattern.replace('.', r'\.')
|
||||
pattern = pattern.replace('?', r'.')
|
||||
pattern = pattern.replace('*', r'.*')
|
||||
|
||||
if pattern.endswith('/'):
|
||||
pattern += r'.*'
|
||||
elif pattern.endswith('.*'):
|
||||
pattern = pattern[:-2]
|
||||
pattern += r'(?!.*?/.*?)'
|
||||
|
||||
return pattern
|
||||
|
||||
def path_in_section(path, section):
|
||||
"""Returns True of False indicating whether the path is covered by
|
||||
the current section."""
|
||||
if not 'file' in section:
|
||||
return False
|
||||
|
||||
for pattern in section['file']:
|
||||
regex = pattern_to_regex(pattern)
|
||||
|
||||
match = re.match(regex, path)
|
||||
if match:
|
||||
# Check if there is an exclude pattern that applies
|
||||
for pattern in section['exclude']:
|
||||
regex = pattern_to_regex(pattern)
|
||||
|
||||
match = re.match(regex, path)
|
||||
if match:
|
||||
return False
|
||||
|
||||
return True
|
||||
|
||||
return False
|
||||
|
||||
def get_section_maintainers(path, section):
|
||||
"""Returns a list with email addresses to any M: and R: entries
|
||||
matching the provided path in the provided section."""
|
||||
maintainers = []
|
||||
lists = []
|
||||
## @file
|
||||
# Retrieves the people to request review from on submission of a commit.
|
||||
#
|
||||
# Copyright (c) 2019, Linaro Ltd. All rights reserved.<BR>
|
||||
#
|
||||
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
#
|
||||
|
||||
from __future__ import print_function
|
||||
from collections import defaultdict
|
||||
from collections import OrderedDict
|
||||
import argparse
|
||||
import os
|
||||
import re
|
||||
import SetupGit
|
||||
|
||||
EXPRESSIONS = {
|
||||
'exclude': re.compile(r'^X:\s*(?P<exclude>.*?)\r*$'),
|
||||
'file': re.compile(r'^F:\s*(?P<file>.*?)\r*$'),
|
||||
'list': re.compile(r'^L:\s*(?P<list>.*?)\r*$'),
|
||||
'maintainer': re.compile(r'^M:\s*(?P<maintainer>.*?)\r*$'),
|
||||
'reviewer': re.compile(r'^R:\s*(?P<reviewer>.*?)\r*$'),
|
||||
'status': re.compile(r'^S:\s*(?P<status>.*?)\r*$'),
|
||||
'tree': re.compile(r'^T:\s*(?P<tree>.*?)\r*$'),
|
||||
'webpage': re.compile(r'^W:\s*(?P<webpage>.*?)\r*$')
|
||||
}
|
||||
|
||||
def printsection(section):
|
||||
"""Prints out the dictionary describing a Maintainers.txt section."""
|
||||
print('===')
|
||||
for key in section.keys():
|
||||
print("Key: %s" % key)
|
||||
for item in section[key]:
|
||||
print(' %s' % item)
|
||||
|
||||
def pattern_to_regex(pattern):
|
||||
"""Takes a string containing regular UNIX path wildcards
|
||||
and returns a string suitable for matching with regex."""
|
||||
|
||||
pattern = pattern.replace('.', r'\.')
|
||||
pattern = pattern.replace('?', r'.')
|
||||
pattern = pattern.replace('*', r'.*')
|
||||
|
||||
if pattern.endswith('/'):
|
||||
pattern += r'.*'
|
||||
elif pattern.endswith('.*'):
|
||||
pattern = pattern[:-2]
|
||||
pattern += r'(?!.*?/.*?)'
|
||||
|
||||
return pattern
|
||||
|
||||
def path_in_section(path, section):
|
||||
"""Returns True of False indicating whether the path is covered by
|
||||
the current section."""
|
||||
if not 'file' in section:
|
||||
return False
|
||||
|
||||
for pattern in section['file']:
|
||||
regex = pattern_to_regex(pattern)
|
||||
|
||||
match = re.match(regex, path)
|
||||
if match:
|
||||
# Check if there is an exclude pattern that applies
|
||||
for pattern in section['exclude']:
|
||||
regex = pattern_to_regex(pattern)
|
||||
|
||||
match = re.match(regex, path)
|
||||
if match:
|
||||
return False
|
||||
|
||||
return True
|
||||
|
||||
return False
|
||||
|
||||
def get_section_maintainers(path, section):
|
||||
"""Returns a list with email addresses to any M: and R: entries
|
||||
matching the provided path in the provided section."""
|
||||
maintainers = []
|
||||
lists = []
|
||||
nowarn_status = ['Supported', 'Maintained']
|
||||
|
||||
if path_in_section(path, section):
|
||||
|
||||
if path_in_section(path, section):
|
||||
for status in section['status']:
|
||||
if status not in nowarn_status:
|
||||
print('WARNING: Maintained status for "%s" is \'%s\'!' % (path, status))
|
||||
for address in section['maintainer'], section['reviewer']:
|
||||
# Convert to list if necessary
|
||||
if isinstance(address, list):
|
||||
maintainers += address
|
||||
else:
|
||||
lists += [address]
|
||||
for address in section['list']:
|
||||
# Convert to list if necessary
|
||||
if isinstance(address, list):
|
||||
lists += address
|
||||
else:
|
||||
lists += [address]
|
||||
|
||||
return maintainers, lists
|
||||
|
||||
def get_maintainers(path, sections, level=0):
|
||||
"""For 'path', iterates over all sections, returning maintainers
|
||||
for matching ones."""
|
||||
maintainers = []
|
||||
lists = []
|
||||
for section in sections:
|
||||
tmp_maint, tmp_lists = get_section_maintainers(path, section)
|
||||
if tmp_maint:
|
||||
maintainers += tmp_maint
|
||||
if tmp_lists:
|
||||
lists += tmp_lists
|
||||
|
||||
if not maintainers:
|
||||
# If no match found, look for match for (nonexistent) file
|
||||
# REPO.working_dir/<default>
|
||||
print('"%s": no maintainers found, looking for default' % path)
|
||||
if level == 0:
|
||||
maintainers = get_maintainers('<default>', sections, level=level + 1)
|
||||
else:
|
||||
print("No <default> maintainers set for project.")
|
||||
if not maintainers:
|
||||
return None
|
||||
|
||||
return maintainers + lists
|
||||
|
||||
def parse_maintainers_line(line):
|
||||
"""Parse one line of Maintainers.txt, returning any match group and its key."""
|
||||
for key, expression in EXPRESSIONS.items():
|
||||
match = expression.match(line)
|
||||
if match:
|
||||
return key, match.group(key)
|
||||
return None, None
|
||||
|
||||
def parse_maintainers_file(filename):
|
||||
"""Parse the Maintainers.txt from top-level of repo and
|
||||
return a list containing dictionaries of all sections."""
|
||||
with open(filename, 'r') as text:
|
||||
line = text.readline()
|
||||
sectionlist = []
|
||||
section = defaultdict(list)
|
||||
while line:
|
||||
key, value = parse_maintainers_line(line)
|
||||
if key and value:
|
||||
section[key].append(value)
|
||||
|
||||
line = text.readline()
|
||||
# If end of section (end of file, or non-tag line encountered)...
|
||||
if not key or not value or not line:
|
||||
# ...if non-empty, append section to list.
|
||||
if section:
|
||||
sectionlist.append(section.copy())
|
||||
section.clear()
|
||||
|
||||
return sectionlist
|
||||
|
||||
def get_modified_files(repo, args):
|
||||
"""Returns a list of the files modified by the commit specified in 'args'."""
|
||||
commit = repo.commit(args.commit)
|
||||
return commit.stats.files
|
||||
|
||||
if __name__ == '__main__':
|
||||
PARSER = argparse.ArgumentParser(
|
||||
description='Retrieves information on who to cc for review on a given commit')
|
||||
PARSER.add_argument('commit',
|
||||
action="store",
|
||||
help='git revision to examine (default: HEAD)',
|
||||
nargs='?',
|
||||
default='HEAD')
|
||||
PARSER.add_argument('-l', '--lookup',
|
||||
help='Find section matches for path LOOKUP',
|
||||
required=False)
|
||||
ARGS = PARSER.parse_args()
|
||||
|
||||
REPO = SetupGit.locate_repo()
|
||||
|
||||
CONFIG_FILE = os.path.join(REPO.working_dir, 'Maintainers.txt')
|
||||
|
||||
SECTIONS = parse_maintainers_file(CONFIG_FILE)
|
||||
|
||||
if ARGS.lookup:
|
||||
FILES = [ARGS.lookup]
|
||||
else:
|
||||
FILES = get_modified_files(REPO, ARGS)
|
||||
|
||||
ADDRESSES = []
|
||||
|
||||
for file in FILES:
|
||||
print(file)
|
||||
addresslist = get_maintainers(file, SECTIONS)
|
||||
if addresslist:
|
||||
ADDRESSES += addresslist
|
||||
|
||||
for address in list(OrderedDict.fromkeys(ADDRESSES)):
|
||||
print(' %s' % address)
|
||||
for address in section['maintainer'], section['reviewer']:
|
||||
# Convert to list if necessary
|
||||
if isinstance(address, list):
|
||||
maintainers += address
|
||||
else:
|
||||
lists += [address]
|
||||
for address in section['list']:
|
||||
# Convert to list if necessary
|
||||
if isinstance(address, list):
|
||||
lists += address
|
||||
else:
|
||||
lists += [address]
|
||||
|
||||
return maintainers, lists
|
||||
|
||||
def get_maintainers(path, sections, level=0):
|
||||
"""For 'path', iterates over all sections, returning maintainers
|
||||
for matching ones."""
|
||||
maintainers = []
|
||||
lists = []
|
||||
for section in sections:
|
||||
tmp_maint, tmp_lists = get_section_maintainers(path, section)
|
||||
if tmp_maint:
|
||||
maintainers += tmp_maint
|
||||
if tmp_lists:
|
||||
lists += tmp_lists
|
||||
|
||||
if not maintainers:
|
||||
# If no match found, look for match for (nonexistent) file
|
||||
# REPO.working_dir/<default>
|
||||
print('"%s": no maintainers found, looking for default' % path)
|
||||
if level == 0:
|
||||
maintainers = get_maintainers('<default>', sections, level=level + 1)
|
||||
else:
|
||||
print("No <default> maintainers set for project.")
|
||||
if not maintainers:
|
||||
return None
|
||||
|
||||
return maintainers + lists
|
||||
|
||||
def parse_maintainers_line(line):
|
||||
"""Parse one line of Maintainers.txt, returning any match group and its key."""
|
||||
for key, expression in EXPRESSIONS.items():
|
||||
match = expression.match(line)
|
||||
if match:
|
||||
return key, match.group(key)
|
||||
return None, None
|
||||
|
||||
def parse_maintainers_file(filename):
|
||||
"""Parse the Maintainers.txt from top-level of repo and
|
||||
return a list containing dictionaries of all sections."""
|
||||
with open(filename, 'r') as text:
|
||||
line = text.readline()
|
||||
sectionlist = []
|
||||
section = defaultdict(list)
|
||||
while line:
|
||||
key, value = parse_maintainers_line(line)
|
||||
if key and value:
|
||||
section[key].append(value)
|
||||
|
||||
line = text.readline()
|
||||
# If end of section (end of file, or non-tag line encountered)...
|
||||
if not key or not value or not line:
|
||||
# ...if non-empty, append section to list.
|
||||
if section:
|
||||
sectionlist.append(section.copy())
|
||||
section.clear()
|
||||
|
||||
return sectionlist
|
||||
|
||||
def get_modified_files(repo, args):
|
||||
"""Returns a list of the files modified by the commit specified in 'args'."""
|
||||
commit = repo.commit(args.commit)
|
||||
return commit.stats.files
|
||||
|
||||
if __name__ == '__main__':
|
||||
PARSER = argparse.ArgumentParser(
|
||||
description='Retrieves information on who to cc for review on a given commit')
|
||||
PARSER.add_argument('commit',
|
||||
action="store",
|
||||
help='git revision to examine (default: HEAD)',
|
||||
nargs='?',
|
||||
default='HEAD')
|
||||
PARSER.add_argument('-l', '--lookup',
|
||||
help='Find section matches for path LOOKUP',
|
||||
required=False)
|
||||
ARGS = PARSER.parse_args()
|
||||
|
||||
REPO = SetupGit.locate_repo()
|
||||
|
||||
CONFIG_FILE = os.path.join(REPO.working_dir, 'Maintainers.txt')
|
||||
|
||||
SECTIONS = parse_maintainers_file(CONFIG_FILE)
|
||||
|
||||
if ARGS.lookup:
|
||||
FILES = [ARGS.lookup.replace('\\','/')]
|
||||
else:
|
||||
FILES = get_modified_files(REPO, ARGS)
|
||||
|
||||
ADDRESSES = []
|
||||
|
||||
for file in FILES:
|
||||
print(file)
|
||||
addresslist = get_maintainers(file, SECTIONS)
|
||||
if addresslist:
|
||||
ADDRESSES += addresslist
|
||||
|
||||
for address in list(OrderedDict.fromkeys(ADDRESSES)):
|
||||
if '<' in address and '>' in address:
|
||||
address = address.split('>', 1)[0] + '>'
|
||||
print(' %s' % address)
|
||||
|
@@ -1,7 +1,7 @@
|
||||
## @file
|
||||
# Check a patch for various format issues
|
||||
#
|
||||
# Copyright (c) 2015 - 2020, Intel Corporation. All rights reserved.<BR>
|
||||
# Copyright (c) 2015 - 2021, Intel Corporation. All rights reserved.<BR>
|
||||
# Copyright (C) 2020, Red Hat, Inc.<BR>
|
||||
# Copyright (c) 2020, ARM Ltd. All rights reserved.<BR>
|
||||
#
|
||||
@@ -89,22 +89,28 @@ class EmailAddressCheck:
|
||||
class CommitMessageCheck:
|
||||
"""Checks the contents of a git commit message."""
|
||||
|
||||
def __init__(self, subject, message):
|
||||
def __init__(self, subject, message, author_email):
|
||||
self.ok = True
|
||||
|
||||
if subject is None and message is None:
|
||||
self.error('Commit message is missing!')
|
||||
return
|
||||
|
||||
MergifyMerge = False
|
||||
if "mergify[bot]@users.noreply.github.com" in author_email:
|
||||
if "Merge branch" in subject:
|
||||
MergifyMerge = True
|
||||
|
||||
self.subject = subject
|
||||
self.msg = message
|
||||
|
||||
print (subject)
|
||||
|
||||
self.check_contributed_under()
|
||||
self.check_signed_off_by()
|
||||
self.check_misc_signatures()
|
||||
self.check_overall_format()
|
||||
if not MergifyMerge:
|
||||
self.check_signed_off_by()
|
||||
self.check_misc_signatures()
|
||||
self.check_overall_format()
|
||||
self.report_message_result()
|
||||
|
||||
url = 'https://github.com/tianocore/tianocore.github.io/wiki/Commit-Message-Format'
|
||||
@@ -522,7 +528,7 @@ class CheckOnePatch:
|
||||
email_check = EmailAddressCheck(self.author_email, 'Author')
|
||||
email_ok = email_check.ok
|
||||
|
||||
msg_check = CommitMessageCheck(self.commit_subject, self.commit_msg)
|
||||
msg_check = CommitMessageCheck(self.commit_subject, self.commit_msg, self.author_email)
|
||||
msg_ok = msg_check.ok
|
||||
|
||||
diff_ok = True
|
||||
|
@@ -238,7 +238,8 @@ IsTextShdr (
|
||||
Elf_Shdr *Shdr
|
||||
)
|
||||
{
|
||||
return (BOOLEAN) ((Shdr->sh_flags & (SHF_WRITE | SHF_ALLOC)) == SHF_ALLOC);
|
||||
return (BOOLEAN) (((Shdr->sh_flags & (SHF_EXECINSTR | SHF_ALLOC)) == (SHF_EXECINSTR | SHF_ALLOC)) ||
|
||||
((Shdr->sh_flags & (SHF_WRITE | SHF_ALLOC)) == SHF_ALLOC));
|
||||
}
|
||||
|
||||
STATIC
|
||||
@@ -261,7 +262,7 @@ IsDataShdr (
|
||||
if (IsHiiRsrcShdr(Shdr)) {
|
||||
return FALSE;
|
||||
}
|
||||
return (BOOLEAN) (Shdr->sh_flags & (SHF_WRITE | SHF_ALLOC)) == (SHF_ALLOC | SHF_WRITE);
|
||||
return (BOOLEAN) (Shdr->sh_flags & (SHF_EXECINSTR | SHF_WRITE | SHF_ALLOC)) == (SHF_ALLOC | SHF_WRITE);
|
||||
}
|
||||
|
||||
STATIC
|
||||
@@ -435,7 +436,7 @@ ScanSections32 (
|
||||
}
|
||||
}
|
||||
|
||||
if (!FoundSection) {
|
||||
if (!FoundSection && mOutImageType != FW_ACPI_IMAGE) {
|
||||
Error (NULL, 0, 3000, "Invalid", "Did not find any '.text' section.");
|
||||
assert (FALSE);
|
||||
}
|
||||
@@ -749,13 +750,7 @@ WriteSections32 (
|
||||
if (SymName == NULL) {
|
||||
SymName = (const UINT8 *)"<unknown>";
|
||||
}
|
||||
|
||||
Error (NULL, 0, 3000, "Invalid",
|
||||
"%s: Bad definition for symbol '%s'@%#x or unsupported symbol type. "
|
||||
"For example, absolute and undefined symbols are not supported.",
|
||||
mInImageName, SymName, Sym->st_value);
|
||||
|
||||
exit(EXIT_FAILURE);
|
||||
continue;
|
||||
}
|
||||
SymShdr = GetShdrByIndex(Sym->st_shndx);
|
||||
|
||||
|
@@ -129,6 +129,8 @@ STATIC UINT32 mDebugOffset;
|
||||
STATIC UINT8 *mRiscVPass1Targ = NULL;
|
||||
STATIC Elf_Shdr *mRiscVPass1Sym = NULL;
|
||||
STATIC Elf64_Half mRiscVPass1SymSecIndex = 0;
|
||||
STATIC INT32 mRiscVPass1Offset;
|
||||
STATIC INT32 mRiscVPass1GotFixup;
|
||||
|
||||
//
|
||||
// Initialization Function
|
||||
@@ -246,7 +248,8 @@ IsTextShdr (
|
||||
Elf_Shdr *Shdr
|
||||
)
|
||||
{
|
||||
return (BOOLEAN) ((Shdr->sh_flags & (SHF_WRITE | SHF_ALLOC)) == SHF_ALLOC);
|
||||
return (BOOLEAN) (((Shdr->sh_flags & (SHF_EXECINSTR | SHF_ALLOC)) == (SHF_EXECINSTR | SHF_ALLOC)) ||
|
||||
((Shdr->sh_flags & (SHF_WRITE | SHF_ALLOC)) == SHF_ALLOC));
|
||||
}
|
||||
|
||||
STATIC
|
||||
@@ -269,7 +272,7 @@ IsDataShdr (
|
||||
if (IsHiiRsrcShdr(Shdr)) {
|
||||
return FALSE;
|
||||
}
|
||||
return (BOOLEAN) (Shdr->sh_flags & (SHF_WRITE | SHF_ALLOC)) == (SHF_ALLOC | SHF_WRITE);
|
||||
return (BOOLEAN) (Shdr->sh_flags & (SHF_EXECINSTR | SHF_WRITE | SHF_ALLOC)) == (SHF_ALLOC | SHF_WRITE);
|
||||
}
|
||||
|
||||
STATIC
|
||||
@@ -473,17 +476,18 @@ WriteSectionRiscV64 (
|
||||
{
|
||||
UINT32 Value;
|
||||
UINT32 Value2;
|
||||
Elf64_Addr GOTEntryRva;
|
||||
|
||||
switch (ELF_R_TYPE(Rel->r_info)) {
|
||||
case R_RISCV_NONE:
|
||||
break;
|
||||
|
||||
case R_RISCV_32:
|
||||
*(UINT32 *)Targ = (UINT32)((UINT64)(*(UINT32 *)Targ) - SymShdr->sh_addr + mCoffSectionsOffset[Sym->st_shndx]);
|
||||
*(UINT64 *)Targ = Sym->st_value + Rel->r_addend;
|
||||
break;
|
||||
|
||||
case R_RISCV_64:
|
||||
*(UINT64 *)Targ = *(UINT64 *)Targ - SymShdr->sh_addr + mCoffSectionsOffset[Sym->st_shndx];
|
||||
*(UINT64 *)Targ = Sym->st_value + Rel->r_addend;
|
||||
break;
|
||||
|
||||
case R_RISCV_HI20:
|
||||
@@ -533,6 +537,18 @@ WriteSectionRiscV64 (
|
||||
mRiscVPass1SymSecIndex = 0;
|
||||
break;
|
||||
|
||||
case R_RISCV_GOT_HI20:
|
||||
GOTEntryRva = (Sym->st_value - Rel->r_offset);
|
||||
mRiscVPass1Offset = RV_X(GOTEntryRva, 0, 12);
|
||||
Value = (UINT32)RV_X(GOTEntryRva, 12, 20);
|
||||
*(UINT32 *)Targ = (Value << 12) | (RV_X(*(UINT32*)Targ, 0, 12));
|
||||
|
||||
mRiscVPass1Targ = Targ;
|
||||
mRiscVPass1Sym = SymShdr;
|
||||
mRiscVPass1SymSecIndex = Sym->st_shndx;
|
||||
mRiscVPass1GotFixup = 1;
|
||||
break;
|
||||
|
||||
case R_RISCV_PCREL_HI20:
|
||||
mRiscVPass1Targ = Targ;
|
||||
mRiscVPass1Sym = SymShdr;
|
||||
@@ -541,15 +557,19 @@ WriteSectionRiscV64 (
|
||||
Value = (UINT32)(RV_X(*(UINT32 *)mRiscVPass1Targ, 12, 20));
|
||||
break;
|
||||
|
||||
case R_RISCV_PCREL_LO12_I:
|
||||
case R_RISCV_PCREL_LO12_S:
|
||||
if (mRiscVPass1Targ != NULL && mRiscVPass1Sym != NULL && mRiscVPass1SymSecIndex != 0) {
|
||||
int i;
|
||||
Value2 = (UINT32)(RV_X(*(UINT32 *)mRiscVPass1Targ, 12, 20));
|
||||
Value = (UINT32)(RV_X(*(UINT32 *)Targ, 20, 12));
|
||||
|
||||
Value = ((UINT32)(RV_X(*(UINT32 *)Targ, 25, 7)) << 5);
|
||||
Value = (Value | (UINT32)(RV_X(*(UINT32 *)Targ, 7, 5)));
|
||||
|
||||
if(Value & (RISCV_IMM_REACH/2)) {
|
||||
Value |= ~(RISCV_IMM_REACH-1);
|
||||
}
|
||||
Value = Value - (UINT32)mRiscVPass1Sym->sh_addr + mCoffSectionsOffset[mRiscVPass1SymSecIndex];
|
||||
|
||||
if(-2048 > (INT32)Value) {
|
||||
i = (((INT32)Value * -1) / 4096);
|
||||
Value2 -= i;
|
||||
@@ -569,7 +589,21 @@ WriteSectionRiscV64 (
|
||||
}
|
||||
}
|
||||
|
||||
*(UINT32 *)Targ = (RV_X(Value, 0, 12) << 20) | (RV_X(*(UINT32*)Targ, 0, 20));
|
||||
// Update the IMM of SD instruction
|
||||
//
|
||||
// |31 25|24 20|19 15|14 12 |11 7|6 0|
|
||||
// |-------------------------------------------|-------|
|
||||
// |imm[11:5] | rs2 | rs1 | funct3 |imm[4:0] | opcode|
|
||||
// ---------------------------------------------------
|
||||
|
||||
// First Zero out current IMM
|
||||
*(UINT32 *)Targ &= ~0xfe000f80;
|
||||
|
||||
// Update with new IMM
|
||||
*(UINT32 *)Targ |= (RV_X(Value, 5, 7) << 25);
|
||||
*(UINT32 *)Targ |= (RV_X(Value, 0, 5) << 7);
|
||||
|
||||
// Update previous instruction
|
||||
*(UINT32 *)mRiscVPass1Targ = (RV_X(Value2, 0, 20)<<12) | (RV_X(*(UINT32 *)mRiscVPass1Targ, 0, 12));
|
||||
}
|
||||
mRiscVPass1Sym = NULL;
|
||||
@@ -577,6 +611,71 @@ WriteSectionRiscV64 (
|
||||
mRiscVPass1SymSecIndex = 0;
|
||||
break;
|
||||
|
||||
case R_RISCV_PCREL_LO12_I:
|
||||
if (mRiscVPass1Targ != NULL && mRiscVPass1Sym != NULL && mRiscVPass1SymSecIndex != 0) {
|
||||
int i;
|
||||
Value2 = (UINT32)(RV_X(*(UINT32 *)mRiscVPass1Targ, 12, 20));
|
||||
|
||||
if(mRiscVPass1GotFixup) {
|
||||
Value = (UINT32)(mRiscVPass1Offset);
|
||||
} else {
|
||||
Value = (UINT32)(RV_X(*(UINT32 *)Targ, 20, 12));
|
||||
if(Value & (RISCV_IMM_REACH/2)) {
|
||||
Value |= ~(RISCV_IMM_REACH-1);
|
||||
}
|
||||
}
|
||||
Value = Value - (UINT32)mRiscVPass1Sym->sh_addr + mCoffSectionsOffset[mRiscVPass1SymSecIndex];
|
||||
|
||||
if(-2048 > (INT32)Value) {
|
||||
i = (((INT32)Value * -1) / 4096);
|
||||
Value2 -= i;
|
||||
Value += 4096 * i;
|
||||
if(-2048 > (INT32)Value) {
|
||||
Value2 -= 1;
|
||||
Value += 4096;
|
||||
}
|
||||
}
|
||||
else if( 2047 < (INT32)Value) {
|
||||
i = (Value / 4096);
|
||||
Value2 += i;
|
||||
Value -= 4096 * i;
|
||||
if(2047 < (INT32)Value) {
|
||||
Value2 += 1;
|
||||
Value -= 4096;
|
||||
}
|
||||
}
|
||||
|
||||
if(mRiscVPass1GotFixup) {
|
||||
*(UINT32 *)Targ = (RV_X((UINT32)Value, 0, 12) << 20)
|
||||
| (RV_X(*(UINT32*)Targ, 0, 20));
|
||||
// Convert LD instruction to ADDI
|
||||
//
|
||||
// |31 20|19 15|14 12|11 7|6 0|
|
||||
// |-----------------------------------------|
|
||||
// |imm[11:0] | rs1 | 011 | rd | 0000011 | LD
|
||||
// -----------------------------------------
|
||||
|
||||
// |-----------------------------------------|
|
||||
// |imm[11:0] | rs1 | 000 | rd | 0010011 | ADDI
|
||||
// -----------------------------------------
|
||||
|
||||
// To convert, let's first reset bits 12-14 and 0-6 using ~0x707f
|
||||
// Then modify the opcode to ADDI (0010011)
|
||||
// All other fields will remain same.
|
||||
|
||||
*(UINT32 *)Targ = ((*(UINT32 *)Targ & ~0x707f) | 0x13);
|
||||
} else {
|
||||
*(UINT32 *)Targ = (RV_X(Value, 0, 12) << 20) | (RV_X(*(UINT32*)Targ, 0, 20));
|
||||
}
|
||||
*(UINT32 *)mRiscVPass1Targ = (RV_X(Value2, 0, 20)<<12) | (RV_X(*(UINT32 *)mRiscVPass1Targ, 0, 12));
|
||||
}
|
||||
mRiscVPass1Sym = NULL;
|
||||
mRiscVPass1Targ = NULL;
|
||||
mRiscVPass1SymSecIndex = 0;
|
||||
mRiscVPass1Offset = 0;
|
||||
mRiscVPass1GotFixup = 0;
|
||||
break;
|
||||
|
||||
case R_RISCV_ADD64:
|
||||
case R_RISCV_SUB64:
|
||||
case R_RISCV_ADD32:
|
||||
@@ -586,6 +685,7 @@ WriteSectionRiscV64 (
|
||||
case R_RISCV_GPREL_I:
|
||||
case R_RISCV_GPREL_S:
|
||||
case R_RISCV_CALL:
|
||||
case R_RISCV_CALL_PLT:
|
||||
case R_RISCV_RVC_BRANCH:
|
||||
case R_RISCV_RVC_JUMP:
|
||||
case R_RISCV_RELAX:
|
||||
@@ -714,7 +814,7 @@ ScanSections64 (
|
||||
}
|
||||
}
|
||||
|
||||
if (!FoundSection) {
|
||||
if (!FoundSection && mOutImageType != FW_ACPI_IMAGE) {
|
||||
Error (NULL, 0, 3000, "Invalid", "Did not find any '.text' section.");
|
||||
assert (FALSE);
|
||||
}
|
||||
@@ -1060,6 +1160,7 @@ WriteSections64 (
|
||||
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
SymShdr = GetShdrByIndex(Sym->st_shndx);
|
||||
|
||||
@@ -1528,6 +1629,7 @@ WriteRelocations64 (
|
||||
case R_RISCV_GPREL_I:
|
||||
case R_RISCV_GPREL_S:
|
||||
case R_RISCV_CALL:
|
||||
case R_RISCV_CALL_PLT:
|
||||
case R_RISCV_RVC_BRANCH:
|
||||
case R_RISCV_RVC_JUMP:
|
||||
case R_RISCV_RELAX:
|
||||
@@ -1537,7 +1639,9 @@ WriteRelocations64 (
|
||||
case R_RISCV_SET16:
|
||||
case R_RISCV_SET32:
|
||||
case R_RISCV_PCREL_HI20:
|
||||
case R_RISCV_GOT_HI20:
|
||||
case R_RISCV_PCREL_LO12_I:
|
||||
case R_RISCV_PCREL_LO12_S:
|
||||
break;
|
||||
|
||||
default:
|
||||
|
@@ -12,7 +12,7 @@
|
||||
#
|
||||
from __future__ import print_function
|
||||
import Common.LongFilePathOs as os, codecs, re
|
||||
import distutils.util
|
||||
import shlex
|
||||
import Common.EdkLogger as EdkLogger
|
||||
from io import BytesIO
|
||||
from Common.BuildToolError import *
|
||||
@@ -233,7 +233,7 @@ class UniFileClassObject(object):
|
||||
# Get Language definition
|
||||
#
|
||||
def GetLangDef(self, File, Line):
|
||||
Lang = distutils.util.split_quoted((Line.split(u"//")[0]))
|
||||
Lang = shlex.split(Line.split(u"//")[0])
|
||||
if len(Lang) != 3:
|
||||
try:
|
||||
FileIn = UniFileClassObject.OpenUniFile(LongFilePath(File.Path))
|
||||
|
@@ -404,6 +404,7 @@ TAB_DSC_DEFINES_SUPPORTED_ARCHITECTURES = 'SUPPORTED_ARCHITECTURES'
|
||||
TAB_DSC_DEFINES_BUILD_TARGETS = 'BUILD_TARGETS'
|
||||
TAB_DSC_DEFINES_SKUID_IDENTIFIER = 'SKUID_IDENTIFIER'
|
||||
TAB_DSC_DEFINES_PCD_INFO_GENERATION = 'PCD_INFO_GENERATION'
|
||||
TAB_DSC_DEFINES_PCD_DYNAMIC_AS_DYNAMICEX = 'PCD_DYNAMIC_AS_DYNAMICEX'
|
||||
TAB_DSC_DEFINES_PCD_VAR_CHECK_GENERATION = 'PCD_VAR_CHECK_GENERATION'
|
||||
TAB_DSC_DEFINES_FLASH_DEFINITION = 'FLASH_DEFINITION'
|
||||
TAB_DSC_DEFINES_BUILD_NUMBER = 'BUILD_NUMBER'
|
||||
|
@@ -148,14 +148,14 @@ def splitFile(inputfile, position, outputdir=None, outputfile1=None, outputfile2
|
||||
|
||||
if position <= 0:
|
||||
if outputfile2 != os.path.abspath(inputfile):
|
||||
shutil.copy2(os.path.abspath(inputfile), outputfile2)
|
||||
shutil.copyfile(os.path.abspath(inputfile), outputfile2)
|
||||
with open(outputfile1, "wb") as fout:
|
||||
fout.write(b'')
|
||||
else:
|
||||
inputfilesize = getFileSize(inputfile)
|
||||
if position >= inputfilesize:
|
||||
if outputfile1 != os.path.abspath(inputfile):
|
||||
shutil.copy2(os.path.abspath(inputfile), outputfile1)
|
||||
shutil.copyfile(os.path.abspath(inputfile), outputfile1)
|
||||
with open(outputfile2, "wb") as fout:
|
||||
fout.write(b'')
|
||||
else:
|
||||
@@ -171,8 +171,8 @@ def splitFile(inputfile, position, outputdir=None, outputfile1=None, outputfile2
|
||||
content2 = fin.read(inputfilesize - position)
|
||||
with open(tempfile2, "wb") as fout2:
|
||||
fout2.write(content2)
|
||||
shutil.copy2(tempfile1, outputfile1)
|
||||
shutil.copy2(tempfile2, outputfile2)
|
||||
shutil.copyfile(tempfile1, outputfile1)
|
||||
shutil.copyfile(tempfile2, outputfile2)
|
||||
except Exception as e:
|
||||
logger.error("Split file failed")
|
||||
raise(e)
|
||||
|
@@ -14,7 +14,7 @@ from __future__ import print_function
|
||||
# Import Modules
|
||||
#
|
||||
import os, codecs, re
|
||||
import distutils.util
|
||||
import shlex
|
||||
from Logger import ToolError
|
||||
from Logger import Log as EdkLogger
|
||||
from Logger import StringTable as ST
|
||||
@@ -320,7 +320,7 @@ class UniFileClassObject(object):
|
||||
# Get Language definition
|
||||
#
|
||||
def GetLangDef(self, File, Line):
|
||||
Lang = distutils.util.split_quoted((Line.split(u"//")[0]))
|
||||
Lang = shlex.split(Line.split(u"//")[0])
|
||||
if len(Lang) != 3:
|
||||
try:
|
||||
FileIn = codecs.open(File.Path, mode='rb', encoding='utf_8').readlines()
|
||||
|
@@ -12,7 +12,9 @@ import re
|
||||
from collections import OrderedDict
|
||||
from Common.Misc import CopyDict,ArrayIndex
|
||||
import copy
|
||||
from CommonDataClass.DataClass import *
|
||||
import Common.EdkLogger as EdkLogger
|
||||
import Common.GlobalData as GlobalData
|
||||
from Common.BuildToolError import OPTION_VALUE_INVALID
|
||||
from Common.caching import cached_property
|
||||
StructPattern = re.compile(r'[_a-zA-Z][0-9A-Za-z_\[\]]*$')
|
||||
@@ -398,6 +400,67 @@ class StructurePcd(PcdClassObject):
|
||||
|
||||
LibraryClassObject = namedtuple('LibraryClassObject', ['LibraryClass','SupModList'])
|
||||
|
||||
class BuildData(object):
|
||||
# dict used to convert PCD type in database to string used by build tool
|
||||
|
||||
_PCD_TYPE_STRING_ = {
|
||||
MODEL_PCD_FIXED_AT_BUILD : TAB_PCDS_FIXED_AT_BUILD,
|
||||
MODEL_PCD_PATCHABLE_IN_MODULE : TAB_PCDS_PATCHABLE_IN_MODULE,
|
||||
MODEL_PCD_FEATURE_FLAG : TAB_PCDS_FEATURE_FLAG,
|
||||
MODEL_PCD_DYNAMIC : TAB_PCDS_DYNAMIC,
|
||||
MODEL_PCD_DYNAMIC_DEFAULT : TAB_PCDS_DYNAMIC,
|
||||
MODEL_PCD_DYNAMIC_HII : TAB_PCDS_DYNAMIC_HII,
|
||||
MODEL_PCD_DYNAMIC_VPD : TAB_PCDS_DYNAMIC_VPD,
|
||||
MODEL_PCD_DYNAMIC_EX : TAB_PCDS_DYNAMIC_EX,
|
||||
MODEL_PCD_DYNAMIC_EX_DEFAULT : TAB_PCDS_DYNAMIC_EX,
|
||||
MODEL_PCD_DYNAMIC_EX_HII : TAB_PCDS_DYNAMIC_EX_HII,
|
||||
MODEL_PCD_DYNAMIC_EX_VPD : TAB_PCDS_DYNAMIC_EX_VPD,
|
||||
}
|
||||
|
||||
def UpdatePcdTypeDict(self):
|
||||
if GlobalData.gCommandLineDefines.get(TAB_DSC_DEFINES_PCD_DYNAMIC_AS_DYNAMICEX,"FALSE").upper() == "TRUE":
|
||||
self._PCD_TYPE_STRING_ = {
|
||||
MODEL_PCD_FIXED_AT_BUILD : TAB_PCDS_FIXED_AT_BUILD,
|
||||
MODEL_PCD_PATCHABLE_IN_MODULE : TAB_PCDS_PATCHABLE_IN_MODULE,
|
||||
MODEL_PCD_FEATURE_FLAG : TAB_PCDS_FEATURE_FLAG,
|
||||
MODEL_PCD_DYNAMIC : TAB_PCDS_DYNAMIC_EX,
|
||||
MODEL_PCD_DYNAMIC_DEFAULT : TAB_PCDS_DYNAMIC_EX,
|
||||
MODEL_PCD_DYNAMIC_HII : TAB_PCDS_DYNAMIC_EX_HII,
|
||||
MODEL_PCD_DYNAMIC_VPD : TAB_PCDS_DYNAMIC_EX_VPD,
|
||||
MODEL_PCD_DYNAMIC_EX : TAB_PCDS_DYNAMIC_EX,
|
||||
MODEL_PCD_DYNAMIC_EX_DEFAULT : TAB_PCDS_DYNAMIC_EX,
|
||||
MODEL_PCD_DYNAMIC_EX_HII : TAB_PCDS_DYNAMIC_EX_HII,
|
||||
MODEL_PCD_DYNAMIC_EX_VPD : TAB_PCDS_DYNAMIC_EX_VPD,
|
||||
}
|
||||
|
||||
## Convert the class to a string
|
||||
#
|
||||
# Convert member MetaFile of the class to a string
|
||||
#
|
||||
# @retval string Formatted String
|
||||
#
|
||||
def __str__(self):
|
||||
return str(self.MetaFile)
|
||||
|
||||
## Override __eq__ function
|
||||
#
|
||||
# Check whether ModuleBuildClassObjects are the same
|
||||
#
|
||||
# @retval False The two ModuleBuildClassObjects are different
|
||||
# @retval True The two ModuleBuildClassObjects are the same
|
||||
#
|
||||
def __eq__(self, Other):
|
||||
return self.MetaFile == Other
|
||||
|
||||
## Override __hash__ function
|
||||
#
|
||||
# Use MetaFile as key in hash table
|
||||
#
|
||||
# @retval string Key for hash table
|
||||
#
|
||||
def __hash__(self):
|
||||
return hash(self.MetaFile)
|
||||
|
||||
## ModuleBuildClassObject
|
||||
#
|
||||
# This Class defines ModuleBuildClass
|
||||
@@ -442,7 +505,7 @@ LibraryClassObject = namedtuple('LibraryClassObject', ['LibraryClass','SupModLis
|
||||
# { [BuildOptionKey] : BuildOptionValue}
|
||||
# @var Depex: To store value for Depex
|
||||
#
|
||||
class ModuleBuildClassObject(object):
|
||||
class ModuleBuildClassObject(BuildData):
|
||||
def __init__(self):
|
||||
self.AutoGenVersion = 0
|
||||
self.MetaFile = ''
|
||||
@@ -476,34 +539,6 @@ class ModuleBuildClassObject(object):
|
||||
self.StrPcdSet = []
|
||||
self.StrPcdOverallValue = {}
|
||||
|
||||
## Convert the class to a string
|
||||
#
|
||||
# Convert member MetaFile of the class to a string
|
||||
#
|
||||
# @retval string Formatted String
|
||||
#
|
||||
def __str__(self):
|
||||
return str(self.MetaFile)
|
||||
|
||||
## Override __eq__ function
|
||||
#
|
||||
# Check whether ModuleBuildClassObjects are the same
|
||||
#
|
||||
# @retval False The two ModuleBuildClassObjects are different
|
||||
# @retval True The two ModuleBuildClassObjects are the same
|
||||
#
|
||||
def __eq__(self, Other):
|
||||
return self.MetaFile == Other
|
||||
|
||||
## Override __hash__ function
|
||||
#
|
||||
# Use MetaFile as key in hash table
|
||||
#
|
||||
# @retval string Key for hash table
|
||||
#
|
||||
def __hash__(self):
|
||||
return hash(self.MetaFile)
|
||||
|
||||
## PackageBuildClassObject
|
||||
#
|
||||
# This Class defines PackageBuildClass
|
||||
@@ -527,7 +562,7 @@ class ModuleBuildClassObject(object):
|
||||
# @var Pcds: To store value for Pcds, it is a set structure as
|
||||
# { [(PcdCName, PcdGuidCName)] : PcdClassObject}
|
||||
#
|
||||
class PackageBuildClassObject(object):
|
||||
class PackageBuildClassObject(BuildData):
|
||||
def __init__(self):
|
||||
self.MetaFile = ''
|
||||
self.PackageName = ''
|
||||
@@ -541,34 +576,6 @@ class PackageBuildClassObject(object):
|
||||
self.LibraryClasses = {}
|
||||
self.Pcds = {}
|
||||
|
||||
## Convert the class to a string
|
||||
#
|
||||
# Convert member MetaFile of the class to a string
|
||||
#
|
||||
# @retval string Formatted String
|
||||
#
|
||||
def __str__(self):
|
||||
return str(self.MetaFile)
|
||||
|
||||
## Override __eq__ function
|
||||
#
|
||||
# Check whether PackageBuildClassObjects are the same
|
||||
#
|
||||
# @retval False The two PackageBuildClassObjects are different
|
||||
# @retval True The two PackageBuildClassObjects are the same
|
||||
#
|
||||
def __eq__(self, Other):
|
||||
return self.MetaFile == Other
|
||||
|
||||
## Override __hash__ function
|
||||
#
|
||||
# Use MetaFile as key in hash table
|
||||
#
|
||||
# @retval string Key for hash table
|
||||
#
|
||||
def __hash__(self):
|
||||
return hash(self.MetaFile)
|
||||
|
||||
## PlatformBuildClassObject
|
||||
#
|
||||
# This Class defines PlatformBuildClass
|
||||
@@ -597,7 +604,7 @@ class PackageBuildClassObject(object):
|
||||
# @var BuildOptions: To store value for BuildOptions, it is a set structure as
|
||||
# { [BuildOptionKey] : BuildOptionValue }
|
||||
#
|
||||
class PlatformBuildClassObject(object):
|
||||
class PlatformBuildClassObject(BuildData):
|
||||
def __init__(self):
|
||||
self.MetaFile = ''
|
||||
self.PlatformName = ''
|
||||
@@ -616,31 +623,3 @@ class PlatformBuildClassObject(object):
|
||||
self.Libraries = {}
|
||||
self.Pcds = {}
|
||||
self.BuildOptions = {}
|
||||
|
||||
## Convert the class to a string
|
||||
#
|
||||
# Convert member MetaFile of the class to a string
|
||||
#
|
||||
# @retval string Formatted String
|
||||
#
|
||||
def __str__(self):
|
||||
return str(self.MetaFile)
|
||||
|
||||
## Override __eq__ function
|
||||
#
|
||||
# Check whether PlatformBuildClassObjects are the same
|
||||
#
|
||||
# @retval False The two PlatformBuildClassObjects are different
|
||||
# @retval True The two PlatformBuildClassObjects are the same
|
||||
#
|
||||
def __eq__(self, Other):
|
||||
return self.MetaFile == Other
|
||||
|
||||
## Override __hash__ function
|
||||
#
|
||||
# Use MetaFile as key in hash table
|
||||
#
|
||||
# @retval string Key for hash table
|
||||
#
|
||||
def __hash__(self):
|
||||
return hash(self.MetaFile)
|
||||
|
@@ -21,20 +21,6 @@ from re import compile
|
||||
# into PackageBuildClassObject form for easier use for AutoGen.
|
||||
#
|
||||
class DecBuildData(PackageBuildClassObject):
|
||||
# dict used to convert PCD type in database to string used by build tool
|
||||
_PCD_TYPE_STRING_ = {
|
||||
MODEL_PCD_FIXED_AT_BUILD : TAB_PCDS_FIXED_AT_BUILD,
|
||||
MODEL_PCD_PATCHABLE_IN_MODULE : TAB_PCDS_PATCHABLE_IN_MODULE,
|
||||
MODEL_PCD_FEATURE_FLAG : TAB_PCDS_FEATURE_FLAG,
|
||||
MODEL_PCD_DYNAMIC : TAB_PCDS_DYNAMIC,
|
||||
MODEL_PCD_DYNAMIC_DEFAULT : TAB_PCDS_DYNAMIC,
|
||||
MODEL_PCD_DYNAMIC_HII : TAB_PCDS_DYNAMIC_HII,
|
||||
MODEL_PCD_DYNAMIC_VPD : TAB_PCDS_DYNAMIC_VPD,
|
||||
MODEL_PCD_DYNAMIC_EX : TAB_PCDS_DYNAMIC_EX,
|
||||
MODEL_PCD_DYNAMIC_EX_DEFAULT : TAB_PCDS_DYNAMIC_EX,
|
||||
MODEL_PCD_DYNAMIC_EX_HII : TAB_PCDS_DYNAMIC_EX_HII,
|
||||
MODEL_PCD_DYNAMIC_EX_VPD : TAB_PCDS_DYNAMIC_EX_VPD,
|
||||
}
|
||||
|
||||
# dict used to convert part of [Defines] to members of DecBuildData directly
|
||||
_PROPERTY_ = {
|
||||
@@ -47,7 +33,6 @@ class DecBuildData(PackageBuildClassObject):
|
||||
TAB_DEC_DEFINES_PKG_UNI_FILE : "_PkgUniFile",
|
||||
}
|
||||
|
||||
|
||||
## Constructor of DecBuildData
|
||||
#
|
||||
# Initialize object of DecBuildData
|
||||
@@ -68,6 +53,7 @@ class DecBuildData(PackageBuildClassObject):
|
||||
self._Target = Target
|
||||
self._Toolchain = Toolchain
|
||||
self._Clear()
|
||||
self.UpdatePcdTypeDict()
|
||||
|
||||
## XXX[key] = value
|
||||
def __setitem__(self, key, value):
|
||||
|
@@ -179,20 +179,6 @@ def GetDependencyList(FileStack, SearchPathList):
|
||||
return DependencyList
|
||||
|
||||
class DscBuildData(PlatformBuildClassObject):
|
||||
# dict used to convert PCD type in database to string used by build tool
|
||||
_PCD_TYPE_STRING_ = {
|
||||
MODEL_PCD_FIXED_AT_BUILD : TAB_PCDS_FIXED_AT_BUILD,
|
||||
MODEL_PCD_PATCHABLE_IN_MODULE : TAB_PCDS_PATCHABLE_IN_MODULE,
|
||||
MODEL_PCD_FEATURE_FLAG : TAB_PCDS_FEATURE_FLAG,
|
||||
MODEL_PCD_DYNAMIC : TAB_PCDS_DYNAMIC,
|
||||
MODEL_PCD_DYNAMIC_DEFAULT : TAB_PCDS_DYNAMIC,
|
||||
MODEL_PCD_DYNAMIC_HII : TAB_PCDS_DYNAMIC_HII,
|
||||
MODEL_PCD_DYNAMIC_VPD : TAB_PCDS_DYNAMIC_VPD,
|
||||
MODEL_PCD_DYNAMIC_EX : TAB_PCDS_DYNAMIC_EX,
|
||||
MODEL_PCD_DYNAMIC_EX_DEFAULT : TAB_PCDS_DYNAMIC_EX,
|
||||
MODEL_PCD_DYNAMIC_EX_HII : TAB_PCDS_DYNAMIC_EX_HII,
|
||||
MODEL_PCD_DYNAMIC_EX_VPD : TAB_PCDS_DYNAMIC_EX_VPD,
|
||||
}
|
||||
|
||||
# dict used to convert part of [Defines] to members of DscBuildData directly
|
||||
_PROPERTY_ = {
|
||||
@@ -242,7 +228,7 @@ class DscBuildData(PlatformBuildClassObject):
|
||||
self.WorkspaceDir = os.getenv("WORKSPACE") if os.getenv("WORKSPACE") else ""
|
||||
self.DefaultStores = None
|
||||
self.SkuIdMgr = SkuClass(self.SkuName, self.SkuIds)
|
||||
|
||||
self.UpdatePcdTypeDict()
|
||||
@property
|
||||
def OutputPath(self):
|
||||
if os.getenv("WORKSPACE"):
|
||||
@@ -411,6 +397,9 @@ class DscBuildData(PlatformBuildClassObject):
|
||||
except:
|
||||
EdkLogger.error("build", FORMAT_INVALID, "Invalid GUID format for VPD_TOOL_GUID", File=self.MetaFile)
|
||||
self._VpdToolGuid = Record[2]
|
||||
elif Name == TAB_DSC_DEFINES_PCD_DYNAMIC_AS_DYNAMICEX:
|
||||
if TAB_DSC_DEFINES_PCD_DYNAMIC_AS_DYNAMICEX not in gCommandLineDefines:
|
||||
gCommandLineDefines[TAB_DSC_DEFINES_PCD_DYNAMIC_AS_DYNAMICEX] = Record[2].strip()
|
||||
elif Name in self:
|
||||
self[Name] = Record[2]
|
||||
# set _Header to non-None in order to avoid database re-querying
|
||||
|
@@ -59,20 +59,6 @@ def _PpiValue(CName, PackageList, Inffile = None):
|
||||
# into ModuleBuildClassObject form for easier use for AutoGen.
|
||||
#
|
||||
class InfBuildData(ModuleBuildClassObject):
|
||||
# dict used to convert PCD type in database to string used by build tool
|
||||
_PCD_TYPE_STRING_ = {
|
||||
MODEL_PCD_FIXED_AT_BUILD : TAB_PCDS_FIXED_AT_BUILD,
|
||||
MODEL_PCD_PATCHABLE_IN_MODULE : TAB_PCDS_PATCHABLE_IN_MODULE,
|
||||
MODEL_PCD_FEATURE_FLAG : TAB_PCDS_FEATURE_FLAG,
|
||||
MODEL_PCD_DYNAMIC : TAB_PCDS_DYNAMIC,
|
||||
MODEL_PCD_DYNAMIC_DEFAULT : TAB_PCDS_DYNAMIC,
|
||||
MODEL_PCD_DYNAMIC_HII : TAB_PCDS_DYNAMIC_HII,
|
||||
MODEL_PCD_DYNAMIC_VPD : TAB_PCDS_DYNAMIC_VPD,
|
||||
MODEL_PCD_DYNAMIC_EX : TAB_PCDS_DYNAMIC_EX,
|
||||
MODEL_PCD_DYNAMIC_EX_DEFAULT : TAB_PCDS_DYNAMIC_EX,
|
||||
MODEL_PCD_DYNAMIC_EX_HII : TAB_PCDS_DYNAMIC_EX_HII,
|
||||
MODEL_PCD_DYNAMIC_EX_VPD : TAB_PCDS_DYNAMIC_EX_VPD,
|
||||
}
|
||||
|
||||
# dict used to convert part of [Defines] to members of InfBuildData directly
|
||||
_PROPERTY_ = {
|
||||
@@ -154,6 +140,7 @@ class InfBuildData(ModuleBuildClassObject):
|
||||
self._PcdComments = None
|
||||
self._BuildOptions = None
|
||||
self._DependencyFileList = None
|
||||
self.UpdatePcdTypeDict()
|
||||
self.LibInstances = []
|
||||
self.ReferenceModules = set()
|
||||
|
||||
|
@@ -197,7 +197,7 @@ def ReadMessage(From, To, ExitFlag,MemTo=None):
|
||||
To(LineStr)
|
||||
else:
|
||||
break
|
||||
if ExitFlag.isSet():
|
||||
if ExitFlag.is_set():
|
||||
break
|
||||
|
||||
class MakeSubProc(Popen):
|
||||
@@ -241,8 +241,8 @@ def LaunchCommand(Command, WorkingDir,ModuleAuto = None):
|
||||
EndOfProcedure.clear()
|
||||
if Proc.stdout:
|
||||
StdOutThread = Thread(target=ReadMessage, args=(Proc.stdout, EdkLogger.info, EndOfProcedure,Proc.ProcOut))
|
||||
StdOutThread.setName("STDOUT-Redirector")
|
||||
StdOutThread.setDaemon(False)
|
||||
StdOutThread.name = "STDOUT-Redirector"
|
||||
StdOutThread.daemon = False
|
||||
StdOutThread.start()
|
||||
|
||||
|
||||
@@ -433,8 +433,8 @@ class BuildTask:
|
||||
@staticmethod
|
||||
def StartScheduler(MaxThreadNumber, ExitFlag):
|
||||
SchedulerThread = Thread(target=BuildTask.Scheduler, args=(MaxThreadNumber, ExitFlag))
|
||||
SchedulerThread.setName("Build-Task-Scheduler")
|
||||
SchedulerThread.setDaemon(False)
|
||||
SchedulerThread.name = "Build-Task-Scheduler"
|
||||
SchedulerThread.daemon = False
|
||||
SchedulerThread.start()
|
||||
# wait for the scheduler to be started, especially useful in Linux
|
||||
while not BuildTask.IsOnGoing():
|
||||
@@ -456,7 +456,7 @@ class BuildTask:
|
||||
# indicated to do so, or there's error in running thread
|
||||
#
|
||||
while (len(BuildTask._PendingQueue) > 0 or len(BuildTask._ReadyQueue) > 0 \
|
||||
or not ExitFlag.isSet()) and not BuildTask._ErrorFlag.isSet():
|
||||
or not ExitFlag.is_set()) and not BuildTask._ErrorFlag.is_set():
|
||||
EdkLogger.debug(EdkLogger.DEBUG_8, "Pending Queue (%d), Ready Queue (%d)"
|
||||
% (len(BuildTask._PendingQueue), len(BuildTask._ReadyQueue)))
|
||||
|
||||
@@ -474,7 +474,7 @@ class BuildTask:
|
||||
BuildTask._PendingQueueLock.release()
|
||||
|
||||
# launch build thread until the maximum number of threads is reached
|
||||
while not BuildTask._ErrorFlag.isSet():
|
||||
while not BuildTask._ErrorFlag.is_set():
|
||||
# empty ready queue, do nothing further
|
||||
if len(BuildTask._ReadyQueue) == 0:
|
||||
break
|
||||
@@ -498,12 +498,12 @@ class BuildTask:
|
||||
time.sleep(0.01)
|
||||
|
||||
# wait for all running threads exit
|
||||
if BuildTask._ErrorFlag.isSet():
|
||||
if BuildTask._ErrorFlag.is_set():
|
||||
EdkLogger.quiet("\nWaiting for all build threads exit...")
|
||||
# while not BuildTask._ErrorFlag.isSet() and \
|
||||
# while not BuildTask._ErrorFlag.is_set() and \
|
||||
while len(BuildTask._RunningQueue) > 0:
|
||||
EdkLogger.verbose("Waiting for thread ending...(%d)" % len(BuildTask._RunningQueue))
|
||||
EdkLogger.debug(EdkLogger.DEBUG_8, "Threads [%s]" % ", ".join(Th.getName() for Th in threading.enumerate()))
|
||||
EdkLogger.debug(EdkLogger.DEBUG_8, "Threads [%s]" % ", ".join(Th.name for Th in threading.enumerate()))
|
||||
# avoid tense loop
|
||||
time.sleep(0.1)
|
||||
except BaseException as X:
|
||||
@@ -531,7 +531,7 @@ class BuildTask:
|
||||
#
|
||||
@staticmethod
|
||||
def IsOnGoing():
|
||||
return not BuildTask._SchedulerStopped.isSet()
|
||||
return not BuildTask._SchedulerStopped.is_set()
|
||||
|
||||
## Abort the build
|
||||
@staticmethod
|
||||
@@ -547,7 +547,7 @@ class BuildTask:
|
||||
#
|
||||
@staticmethod
|
||||
def HasError():
|
||||
return BuildTask._ErrorFlag.isSet()
|
||||
return BuildTask._ErrorFlag.is_set()
|
||||
|
||||
## Get error message in running thread
|
||||
#
|
||||
@@ -644,7 +644,7 @@ class BuildTask:
|
||||
# TRICK: hide the output of threads left running, so that the user can
|
||||
# catch the error message easily
|
||||
#
|
||||
if not BuildTask._ErrorFlag.isSet():
|
||||
if not BuildTask._ErrorFlag.is_set():
|
||||
GlobalData.gBuildingModule = "%s [%s, %s, %s]" % (str(self.BuildItem.BuildObject),
|
||||
self.BuildItem.BuildObject.Arch,
|
||||
self.BuildItem.BuildObject.ToolChain,
|
||||
@@ -653,7 +653,7 @@ class BuildTask:
|
||||
EdkLogger.SetLevel(EdkLogger.ERROR)
|
||||
BuildTask._ErrorFlag.set()
|
||||
BuildTask._ErrorMessage = "%s broken\n %s [%s]" % \
|
||||
(threading.currentThread().getName(), Command, WorkingDir)
|
||||
(threading.current_thread().name, Command, WorkingDir)
|
||||
|
||||
# indicate there's a thread is available for another build task
|
||||
BuildTask._RunningQueueLock.acquire()
|
||||
@@ -667,8 +667,8 @@ class BuildTask:
|
||||
EdkLogger.quiet("Building ... %s" % repr(self.BuildItem))
|
||||
Command = self.BuildItem.BuildCommand + [self.BuildItem.Target]
|
||||
self.BuildTread = Thread(target=self._CommandThread, args=(Command, self.BuildItem.WorkingDir))
|
||||
self.BuildTread.setName("build thread")
|
||||
self.BuildTread.setDaemon(False)
|
||||
self.BuildTread.name = "build thread"
|
||||
self.BuildTread.daemon = False
|
||||
self.BuildTread.start()
|
||||
|
||||
## The class contains the information related to EFI image
|
||||
@@ -1177,14 +1177,14 @@ class Build():
|
||||
EndOfProcedure.clear()
|
||||
if Process.stdout:
|
||||
StdOutThread = Thread(target=ReadMessage, args=(Process.stdout, EdkLogger.info, EndOfProcedure))
|
||||
StdOutThread.setName("STDOUT-Redirector")
|
||||
StdOutThread.setDaemon(False)
|
||||
StdOutThread.name = "STDOUT-Redirector"
|
||||
StdOutThread.daemon = False
|
||||
StdOutThread.start()
|
||||
|
||||
if Process.stderr:
|
||||
StdErrThread = Thread(target=ReadMessage, args=(Process.stderr, EdkLogger.quiet, EndOfProcedure))
|
||||
StdErrThread.setName("STDERR-Redirector")
|
||||
StdErrThread.setDaemon(False)
|
||||
StdErrThread.name = "STDERR-Redirector"
|
||||
StdErrThread.daemon = False
|
||||
StdErrThread.start()
|
||||
# waiting for program exit
|
||||
Process.wait()
|
||||
@@ -1217,14 +1217,14 @@ class Build():
|
||||
EndOfProcedure.clear()
|
||||
if Process.stdout:
|
||||
StdOutThread = Thread(target=ReadMessage, args=(Process.stdout, EdkLogger.info, EndOfProcedure))
|
||||
StdOutThread.setName("STDOUT-Redirector")
|
||||
StdOutThread.setDaemon(False)
|
||||
StdOutThread.name = "STDOUT-Redirector"
|
||||
StdOutThread.daemon = False
|
||||
StdOutThread.start()
|
||||
|
||||
if Process.stderr:
|
||||
StdErrThread = Thread(target=ReadMessage, args=(Process.stderr, EdkLogger.quiet, EndOfProcedure))
|
||||
StdErrThread.setName("STDERR-Redirector")
|
||||
StdErrThread.setDaemon(False)
|
||||
StdErrThread.name = "STDERR-Redirector"
|
||||
StdErrThread.daemon = False
|
||||
StdErrThread.start()
|
||||
# waiting for program exit
|
||||
Process.wait()
|
||||
|
@@ -13,13 +13,6 @@ import os
|
||||
import sys
|
||||
import unittest
|
||||
|
||||
try:
|
||||
import distutils.util
|
||||
except ModuleNotFoundError:
|
||||
sys.exit('''
|
||||
Python reported: "No module named 'distutils.util"
|
||||
''')
|
||||
|
||||
import TestTools
|
||||
|
||||
def GetCTestSuite():
|
||||
|
@@ -227,7 +227,7 @@ if NOT exist %CONF_PATH% (
|
||||
) else (
|
||||
if defined RECONFIG (
|
||||
echo.
|
||||
echo Over-writing the files in the CONF_PATH directory
|
||||
echo Overwriting the files in the CONF_PATH directory
|
||||
echo using the default template files
|
||||
echo.
|
||||
)
|
||||
@@ -240,7 +240,7 @@ if NOT exist %CONF_PATH%\target.txt (
|
||||
)
|
||||
copy %EDK_TOOLS_PATH%\Conf\target.template %CONF_PATH%\target.txt > nul
|
||||
) else (
|
||||
if defined RECONFIG echo over-write ... target.template to %CONF_PATH%\target.txt
|
||||
if defined RECONFIG echo overwrite ... target.template to %CONF_PATH%\target.txt
|
||||
if defined RECONFIG copy /Y %EDK_TOOLS_PATH%\Conf\target.template %CONF_PATH%\target.txt > nul
|
||||
)
|
||||
|
||||
@@ -251,7 +251,7 @@ if NOT exist %CONF_PATH%\tools_def.txt (
|
||||
)
|
||||
copy %EDK_TOOLS_PATH%\Conf\tools_def.template %CONF_PATH%\tools_def.txt > nul
|
||||
) else (
|
||||
if defined RECONFIG echo over-write ... tools_def.template to %CONF_PATH%\tools_def.txt
|
||||
if defined RECONFIG echo overwrite ... tools_def.template to %CONF_PATH%\tools_def.txt
|
||||
if defined RECONFIG copy /Y %EDK_TOOLS_PATH%\Conf\tools_def.template %CONF_PATH%\tools_def.txt > nul
|
||||
)
|
||||
|
||||
@@ -299,7 +299,6 @@ IF NOT EXIST "%EDK_TOOLS_BIN%\GenFfs.exe" goto check_c_tools
|
||||
IF NOT EXIST "%EDK_TOOLS_BIN%\GenFv.exe" goto check_c_tools
|
||||
IF NOT EXIST "%EDK_TOOLS_BIN%\GenFw.exe" goto check_c_tools
|
||||
IF NOT EXIST "%EDK_TOOLS_BIN%\GenSec.exe" goto check_c_tools
|
||||
IF NOT EXIST "%EDK_TOOLS_BIN%\Split.exe" goto check_c_tools
|
||||
IF NOT EXIST "%EDK_TOOLS_BIN%\TianoCompress.exe" goto check_c_tools
|
||||
IF NOT EXIST "%EDK_TOOLS_BIN%\VfrCompile.exe" goto check_c_tools
|
||||
IF NOT EXIST "%EDK_TOOLS_BIN%\VolInfo.exe" goto check_c_tools
|
||||
@@ -402,6 +401,8 @@ goto end
|
||||
if %ERRORLEVEL% EQU 0 (
|
||||
goto use_pip_basetools
|
||||
) else (
|
||||
REM reset ERRORLEVEL
|
||||
type nul>nul
|
||||
goto use_builtin_basetools
|
||||
)
|
||||
|
||||
|
@@ -7,7 +7,11 @@
|
||||
##
|
||||
{
|
||||
"LicenseCheck": {
|
||||
"IgnoreFiles": []
|
||||
"IgnoreFiles": [
|
||||
# These directories contain auto-generated OpenSSL content
|
||||
"Library/OpensslLib/X64",
|
||||
"Library/OpensslLib/X64Gcc"
|
||||
]
|
||||
},
|
||||
"EccCheck": {
|
||||
## Exception sample looks like below:
|
||||
@@ -23,8 +27,13 @@
|
||||
"Test/UnitTest",
|
||||
# This has OpenSSL interfaces that aren't UEFI spec compliant
|
||||
"Library/BaseCryptLib/SysCall/UnitTestHostCrtWrapper.c",
|
||||
# this has OpenSSL interfaces that aren't UEFI spec compliant
|
||||
"Library/OpensslLib/rand_pool.c"
|
||||
# This has OpenSSL interfaces that aren't UEFI spec compliant
|
||||
"Library/OpensslLib/rand_pool.c",
|
||||
# This has OpenSSL interfaces that aren't UEFI spec compliant
|
||||
"Library/Include/CrtLibSupport.h",
|
||||
# These directories contain auto-generated OpenSSL content
|
||||
"Library/OpensslLib/X64",
|
||||
"Library/OpensslLib/X64Gcc"
|
||||
]
|
||||
},
|
||||
"CompilerPlugin": {
|
||||
@@ -51,7 +60,11 @@
|
||||
},
|
||||
"DscCompleteCheck": {
|
||||
"DscPath": "CryptoPkg.dsc",
|
||||
"IgnoreInf": []
|
||||
"IgnoreInf": [
|
||||
# These are alternatives to OpensslLib.inf
|
||||
"CryptoPkg/Library/OpensslLib/OpensslLibX64.inf",
|
||||
"CryptoPkg/Library/OpensslLib/OpensslLibX64Gcc.inf"
|
||||
]
|
||||
},
|
||||
"GuidCheck": {
|
||||
"IgnoreGuidName": [],
|
||||
|
@@ -1376,7 +1376,7 @@ RsaPkcs1Verify (
|
||||
If Message is NULL, then return FALSE.
|
||||
If MsgSize is zero or > INT_MAX, then return FALSE.
|
||||
If DigestLen is NOT 32, 48 or 64, return FALSE.
|
||||
If SaltLen is < DigestLen, then return FALSE.
|
||||
If SaltLen is not equal to DigestLen, then return FALSE.
|
||||
If SigSize is large enough but Signature is NULL, then return FALSE.
|
||||
If this interface is not supported, then return FALSE.
|
||||
|
||||
@@ -1411,7 +1411,7 @@ RsaPssSign (
|
||||
Verifies the RSA signature with RSASSA-PSS signature scheme defined in RFC 8017.
|
||||
Implementation determines salt length automatically from the signature encoding.
|
||||
Mask generation function is the same as the message digest algorithm.
|
||||
Salt length should atleast be equal to digest length.
|
||||
Salt length should be equal to digest length.
|
||||
|
||||
@param[in] RsaContext Pointer to RSA context for signature verification.
|
||||
@param[in] Message Pointer to octet message to be verified.
|
||||
|
@@ -50,7 +50,7 @@ GetEvpMD (
|
||||
Verifies the RSA signature with RSASSA-PSS signature scheme defined in RFC 8017.
|
||||
Implementation determines salt length automatically from the signature encoding.
|
||||
Mask generation function is the same as the message digest algorithm.
|
||||
Salt length should atleast be equal to digest length.
|
||||
Salt length should be equal to digest length.
|
||||
|
||||
@param[in] RsaContext Pointer to RSA context for signature verification.
|
||||
@param[in] Message Pointer to octet message to be verified.
|
||||
@@ -97,7 +97,7 @@ RsaPssVerify (
|
||||
if (Signature == NULL || SigSize == 0 || SigSize > INT_MAX) {
|
||||
return FALSE;
|
||||
}
|
||||
if (SaltLen < DigestLen) {
|
||||
if (SaltLen != DigestLen) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@@ -15,7 +15,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
Verifies the RSA signature with RSASSA-PSS signature scheme defined in RFC 8017.
|
||||
Implementation determines salt length automatically from the signature encoding.
|
||||
Mask generation function is the same as the message digest algorithm.
|
||||
Salt length should atleast be equal to digest length.
|
||||
Salt length should be equal to digest length.
|
||||
|
||||
@param[in] RsaContext Pointer to RSA context for signature verification.
|
||||
@param[in] Message Pointer to octet message to be verified.
|
||||
|
@@ -59,7 +59,7 @@ GetEvpMD (
|
||||
If Message is NULL, then return FALSE.
|
||||
If MsgSize is zero or > INT_MAX, then return FALSE.
|
||||
If DigestLen is NOT 32, 48 or 64, return FALSE.
|
||||
If SaltLen is < DigestLen, then return FALSE.
|
||||
If SaltLen is not equal to DigestLen, then return FALSE.
|
||||
If SigSize is large enough but Signature is NULL, then return FALSE.
|
||||
If this interface is not supported, then return FALSE.
|
||||
|
||||
@@ -120,7 +120,7 @@ RsaPssSign (
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (SaltLen < DigestLen) {
|
||||
if (SaltLen != DigestLen) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@@ -24,7 +24,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
If Message is NULL, then return FALSE.
|
||||
If MsgSize is zero or > INT_MAX, then return FALSE.
|
||||
If DigestLen is NOT 32, 48 or 64, return FALSE.
|
||||
If SaltLen is < DigestLen, then return FALSE.
|
||||
If SaltLen is not equal to DigestLen, then return FALSE.
|
||||
If SigSize is large enough but Signature is NULL, then return FALSE.
|
||||
If this interface is not supported, then return FALSE.
|
||||
|
||||
|
@@ -11,8 +11,8 @@
|
||||
# functions, PKCS#7 SignedData sign functions, Diffie-Hellman functions, and
|
||||
# authenticode signature verification functions are not supported in this instance.
|
||||
#
|
||||
# Copyright (c) 2009 - 2020, Intel Corporation. All rights reserved.<BR>
|
||||
# Copyright (c) 2020, Hewlett Packard Enterprise Development LP. All rights reserved.<BR>
|
||||
# Copyright (c) 2009 - 2021, Intel Corporation. All rights reserved.<BR>
|
||||
# Copyright (c) 2021, Hewlett Packard Enterprise Development LP. All rights reserved.<BR>
|
||||
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
#
|
||||
##
|
||||
@@ -39,7 +39,7 @@
|
||||
Hash/CryptSha1.c
|
||||
Hash/CryptSha256.c
|
||||
Hash/CryptSm3.c
|
||||
Hash/CryptSha512Null.c
|
||||
Hash/CryptSha512.c
|
||||
Hmac/CryptHmacSha256.c
|
||||
Kdf/CryptHkdf.c
|
||||
Cipher/CryptAes.c
|
||||
|
@@ -10,7 +10,7 @@
|
||||
# RSA external functions, PKCS#7 SignedData sign functions, Diffie-Hellman functions, and
|
||||
# authenticode signature verification functions are not supported in this instance.
|
||||
#
|
||||
# Copyright (c) 2010 - 2020, Intel Corporation. All rights reserved.<BR>
|
||||
# Copyright (c) 2010 - 2021, Intel Corporation. All rights reserved.<BR>
|
||||
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
#
|
||||
##
|
||||
@@ -37,7 +37,7 @@
|
||||
Hash/CryptSha1.c
|
||||
Hash/CryptSha256.c
|
||||
Hash/CryptSm3.c
|
||||
Hash/CryptSha512Null.c
|
||||
Hash/CryptSha512.c
|
||||
Hmac/CryptHmacSha256.c
|
||||
Kdf/CryptHkdfNull.c
|
||||
Cipher/CryptAes.c
|
||||
|
@@ -15,7 +15,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
Verifies the RSA signature with RSASSA-PSS signature scheme defined in RFC 8017.
|
||||
Implementation determines salt length automatically from the signature encoding.
|
||||
Mask generation function is the same as the message digest algorithm.
|
||||
Salt length should atleast be equal to digest length.
|
||||
Salt length should be equal to digest length.
|
||||
|
||||
@param[in] RsaContext Pointer to RSA context for signature verification.
|
||||
@param[in] Message Pointer to octet message to be verified.
|
||||
|
@@ -24,7 +24,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
If Message is NULL, then return FALSE.
|
||||
If MsgSize is zero or > INT_MAX, then return FALSE.
|
||||
If DigestLen is NOT 32, 48 or 64, return FALSE.
|
||||
If SaltLen is < DigestLen, then return FALSE.
|
||||
If SaltLen is not equal to DigestLen, then return FALSE.
|
||||
If SigSize is large enough but Signature is NULL, then return FALSE.
|
||||
If this interface is not supported, then return FALSE.
|
||||
|
||||
|
@@ -1556,7 +1556,7 @@ RsaPkcs1Verify (
|
||||
Verifies the RSA signature with RSASSA-PSS signature scheme defined in RFC 8017.
|
||||
Implementation determines salt length automatically from the signature encoding.
|
||||
Mask generation function is the same as the message digest algorithm.
|
||||
Salt length should atleast be equal to digest length.
|
||||
Salt length should be equal to digest length.
|
||||
|
||||
@param[in] RsaContext Pointer to RSA context for signature verification.
|
||||
@param[in] Message Pointer to octet message to be verified.
|
||||
@@ -1592,6 +1592,14 @@ RsaPssVerify (
|
||||
If the Signature buffer is too small to hold the contents of signature, FALSE
|
||||
is returned and SigSize is set to the required buffer size to obtain the signature.
|
||||
|
||||
If RsaContext is NULL, then return FALSE.
|
||||
If Message is NULL, then return FALSE.
|
||||
If MsgSize is zero or > INT_MAX, then return FALSE.
|
||||
If DigestLen is NOT 32, 48 or 64, return FALSE.
|
||||
If SaltLen is not equal to DigestLen, then return FALSE.
|
||||
If SigSize is large enough but Signature is NULL, then return FALSE.
|
||||
If this interface is not supported, then return FALSE.
|
||||
|
||||
@param[in] RsaContext Pointer to RSA context for signature generation.
|
||||
@param[in] Message Pointer to octet message to be signed.
|
||||
@param[in] MsgSize Size of the message in bytes.
|
||||
|
@@ -102,6 +102,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
//
|
||||
typedef UINTN size_t;
|
||||
typedef UINTN u_int;
|
||||
typedef INTN ptrdiff_t;
|
||||
typedef INTN ssize_t;
|
||||
typedef INT32 time_t;
|
||||
typedef UINT8 __uint8_t;
|
||||
@@ -109,6 +110,7 @@ typedef UINT8 sa_family_t;
|
||||
typedef UINT8 u_char;
|
||||
typedef UINT32 uid_t;
|
||||
typedef UINT32 gid_t;
|
||||
typedef CHAR16 wchar_t;
|
||||
|
||||
//
|
||||
// File operations are not required for EFI building,
|
||||
|
@@ -112,9 +112,6 @@ extern "C" {
|
||||
#ifndef OPENSSL_NO_ASAN
|
||||
# define OPENSSL_NO_ASAN
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_ASM
|
||||
# define OPENSSL_NO_ASM
|
||||
#endif
|
||||
#ifndef OPENSSL_NO_ASYNC
|
||||
# define OPENSSL_NO_ASYNC
|
||||
#endif
|
||||
|
@@ -16,7 +16,7 @@
|
||||
VERSION_STRING = 1.0
|
||||
LIBRARY_CLASS = OpensslLib
|
||||
DEFINE OPENSSL_PATH = openssl
|
||||
DEFINE OPENSSL_FLAGS = -DL_ENDIAN -DOPENSSL_SMALL_FOOTPRINT -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE
|
||||
DEFINE OPENSSL_FLAGS = -DL_ENDIAN -DOPENSSL_SMALL_FOOTPRINT -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DOPENSSL_NO_ASM
|
||||
|
||||
#
|
||||
# VALID_ARCHITECTURES = IA32 X64 ARM AARCH64
|
||||
|
44
CryptoPkg/Library/OpensslLib/OpensslLibConstructor.c
Normal file
44
CryptoPkg/Library/OpensslLib/OpensslLibConstructor.c
Normal file
@@ -0,0 +1,44 @@
|
||||
/** @file
|
||||
Constructor to initialize CPUID data for OpenSSL assembly operations.
|
||||
|
||||
Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>
|
||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
|
||||
**/
|
||||
|
||||
#include <Uefi.h>
|
||||
|
||||
|
||||
/**
|
||||
An internal OpenSSL function which fetches a local copy of the hardware
|
||||
capability flags.
|
||||
|
||||
**/
|
||||
extern
|
||||
VOID
|
||||
OPENSSL_cpuid_setup (
|
||||
VOID
|
||||
);
|
||||
|
||||
/**
|
||||
Constructor routine for OpensslLib.
|
||||
|
||||
The constructor calls an internal OpenSSL function which fetches a local copy
|
||||
of the hardware capability flags, used to enable native crypto instructions.
|
||||
|
||||
@param None
|
||||
|
||||
@retval EFI_SUCCESS The construction succeeded.
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
OpensslLibConstructor (
|
||||
VOID
|
||||
)
|
||||
{
|
||||
OPENSSL_cpuid_setup ();
|
||||
|
||||
return EFI_SUCCESS;
|
||||
}
|
||||
|
@@ -16,7 +16,7 @@
|
||||
VERSION_STRING = 1.0
|
||||
LIBRARY_CLASS = OpensslLib
|
||||
DEFINE OPENSSL_PATH = openssl
|
||||
DEFINE OPENSSL_FLAGS = -DL_ENDIAN -DOPENSSL_SMALL_FOOTPRINT -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE
|
||||
DEFINE OPENSSL_FLAGS = -DL_ENDIAN -DOPENSSL_SMALL_FOOTPRINT -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DOPENSSL_NO_ASM
|
||||
|
||||
#
|
||||
# VALID_ARCHITECTURES = IA32 X64 ARM AARCH64
|
||||
|
653
CryptoPkg/Library/OpensslLib/OpensslLibX64.inf
Normal file
653
CryptoPkg/Library/OpensslLib/OpensslLibX64.inf
Normal file
@@ -0,0 +1,653 @@
|
||||
## @file
|
||||
# This module provides OpenSSL Library implementation.
|
||||
#
|
||||
# Copyright (c) 2010 - 2020, Intel Corporation. All rights reserved.<BR>
|
||||
# (C) Copyright 2020 Hewlett Packard Enterprise Development LP<BR>
|
||||
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
#
|
||||
##
|
||||
|
||||
[Defines]
|
||||
INF_VERSION = 0x00010005
|
||||
BASE_NAME = OpensslLibX64
|
||||
MODULE_UNI_FILE = OpensslLib.uni
|
||||
FILE_GUID = 18125E50-0117-4DD0-BE54-4784AD995FEF
|
||||
MODULE_TYPE = BASE
|
||||
VERSION_STRING = 1.0
|
||||
LIBRARY_CLASS = OpensslLib
|
||||
DEFINE OPENSSL_PATH = openssl
|
||||
DEFINE OPENSSL_FLAGS = -DL_ENDIAN -DOPENSSL_SMALL_FOOTPRINT -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE
|
||||
DEFINE OPENSSL_FLAGS_CONFIG = -DOPENSSL_CPUID_OBJ -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DAESNI_ASM -DVPAES_ASM -DGHASH_ASM
|
||||
CONSTRUCTOR = OpensslLibConstructor
|
||||
|
||||
#
|
||||
# VALID_ARCHITECTURES = X64
|
||||
#
|
||||
|
||||
[Sources.X64]
|
||||
OpensslLibConstructor.c
|
||||
$(OPENSSL_PATH)/e_os.h
|
||||
$(OPENSSL_PATH)/ms/uplink.h
|
||||
# Autogenerated files list starts here
|
||||
X64/crypto/aes/aesni-mb-x86_64.nasm
|
||||
X64/crypto/aes/aesni-sha1-x86_64.nasm
|
||||
X64/crypto/aes/aesni-sha256-x86_64.nasm
|
||||
X64/crypto/aes/aesni-x86_64.nasm
|
||||
X64/crypto/aes/vpaes-x86_64.nasm
|
||||
X64/crypto/modes/aesni-gcm-x86_64.nasm
|
||||
X64/crypto/modes/ghash-x86_64.nasm
|
||||
X64/crypto/sha/sha1-mb-x86_64.nasm
|
||||
X64/crypto/sha/sha1-x86_64.nasm
|
||||
X64/crypto/sha/sha256-mb-x86_64.nasm
|
||||
X64/crypto/sha/sha256-x86_64.nasm
|
||||
X64/crypto/sha/sha512-x86_64.nasm
|
||||
X64/crypto/x86_64cpuid.nasm
|
||||
$(OPENSSL_PATH)/crypto/aes/aes_cbc.c
|
||||
$(OPENSSL_PATH)/crypto/aes/aes_cfb.c
|
||||
$(OPENSSL_PATH)/crypto/aes/aes_core.c
|
||||
$(OPENSSL_PATH)/crypto/aes/aes_ige.c
|
||||
$(OPENSSL_PATH)/crypto/aes/aes_misc.c
|
||||
$(OPENSSL_PATH)/crypto/aes/aes_ofb.c
|
||||
$(OPENSSL_PATH)/crypto/aes/aes_wrap.c
|
||||
$(OPENSSL_PATH)/crypto/aria/aria.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/a_bitstr.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/a_d2i_fp.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/a_digest.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/a_dup.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/a_gentm.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/a_i2d_fp.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/a_int.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/a_mbstr.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/a_object.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/a_octet.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/a_print.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/a_sign.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/a_strex.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/a_strnid.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/a_time.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/a_type.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/a_utctm.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/a_utf8.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/a_verify.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/ameth_lib.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/asn1_err.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/asn1_gen.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/asn1_item_list.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/asn1_lib.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/asn1_par.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/asn_mime.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/asn_moid.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/asn_mstbl.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/asn_pack.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/bio_asn1.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/bio_ndef.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/d2i_pr.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/d2i_pu.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/evp_asn1.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/f_int.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/f_string.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/i2d_pr.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/i2d_pu.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/n_pkey.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/nsseq.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/p5_pbe.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/p5_pbev2.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/p5_scrypt.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/p8_pkey.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/t_bitst.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/t_pkey.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/t_spki.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/tasn_dec.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/tasn_enc.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/tasn_fre.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/tasn_new.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/tasn_prn.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/tasn_scn.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/tasn_typ.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/tasn_utl.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/x_algor.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/x_bignum.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/x_info.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/x_int64.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/x_long.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/x_pkey.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/x_sig.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/x_spki.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/x_val.c
|
||||
$(OPENSSL_PATH)/crypto/async/arch/async_null.c
|
||||
$(OPENSSL_PATH)/crypto/async/arch/async_posix.c
|
||||
$(OPENSSL_PATH)/crypto/async/arch/async_win.c
|
||||
$(OPENSSL_PATH)/crypto/async/async.c
|
||||
$(OPENSSL_PATH)/crypto/async/async_err.c
|
||||
$(OPENSSL_PATH)/crypto/async/async_wait.c
|
||||
$(OPENSSL_PATH)/crypto/bio/b_addr.c
|
||||
$(OPENSSL_PATH)/crypto/bio/b_dump.c
|
||||
$(OPENSSL_PATH)/crypto/bio/b_sock.c
|
||||
$(OPENSSL_PATH)/crypto/bio/b_sock2.c
|
||||
$(OPENSSL_PATH)/crypto/bio/bf_buff.c
|
||||
$(OPENSSL_PATH)/crypto/bio/bf_lbuf.c
|
||||
$(OPENSSL_PATH)/crypto/bio/bf_nbio.c
|
||||
$(OPENSSL_PATH)/crypto/bio/bf_null.c
|
||||
$(OPENSSL_PATH)/crypto/bio/bio_cb.c
|
||||
$(OPENSSL_PATH)/crypto/bio/bio_err.c
|
||||
$(OPENSSL_PATH)/crypto/bio/bio_lib.c
|
||||
$(OPENSSL_PATH)/crypto/bio/bio_meth.c
|
||||
$(OPENSSL_PATH)/crypto/bio/bss_acpt.c
|
||||
$(OPENSSL_PATH)/crypto/bio/bss_bio.c
|
||||
$(OPENSSL_PATH)/crypto/bio/bss_conn.c
|
||||
$(OPENSSL_PATH)/crypto/bio/bss_dgram.c
|
||||
$(OPENSSL_PATH)/crypto/bio/bss_fd.c
|
||||
$(OPENSSL_PATH)/crypto/bio/bss_file.c
|
||||
$(OPENSSL_PATH)/crypto/bio/bss_log.c
|
||||
$(OPENSSL_PATH)/crypto/bio/bss_mem.c
|
||||
$(OPENSSL_PATH)/crypto/bio/bss_null.c
|
||||
$(OPENSSL_PATH)/crypto/bio/bss_sock.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_add.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_asm.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_blind.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_const.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_ctx.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_depr.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_dh.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_div.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_err.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_exp.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_exp2.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_gcd.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_gf2m.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_intern.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_kron.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_lib.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_mod.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_mont.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_mpi.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_mul.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_nist.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_prime.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_print.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_rand.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_recp.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_shift.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_sqr.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_sqrt.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_srp.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_word.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_x931p.c
|
||||
$(OPENSSL_PATH)/crypto/buffer/buf_err.c
|
||||
$(OPENSSL_PATH)/crypto/buffer/buffer.c
|
||||
$(OPENSSL_PATH)/crypto/cmac/cm_ameth.c
|
||||
$(OPENSSL_PATH)/crypto/cmac/cm_pmeth.c
|
||||
$(OPENSSL_PATH)/crypto/cmac/cmac.c
|
||||
$(OPENSSL_PATH)/crypto/comp/c_zlib.c
|
||||
$(OPENSSL_PATH)/crypto/comp/comp_err.c
|
||||
$(OPENSSL_PATH)/crypto/comp/comp_lib.c
|
||||
$(OPENSSL_PATH)/crypto/conf/conf_api.c
|
||||
$(OPENSSL_PATH)/crypto/conf/conf_def.c
|
||||
$(OPENSSL_PATH)/crypto/conf/conf_err.c
|
||||
$(OPENSSL_PATH)/crypto/conf/conf_lib.c
|
||||
$(OPENSSL_PATH)/crypto/conf/conf_mall.c
|
||||
$(OPENSSL_PATH)/crypto/conf/conf_mod.c
|
||||
$(OPENSSL_PATH)/crypto/conf/conf_sap.c
|
||||
$(OPENSSL_PATH)/crypto/conf/conf_ssl.c
|
||||
$(OPENSSL_PATH)/crypto/cpt_err.c
|
||||
$(OPENSSL_PATH)/crypto/cryptlib.c
|
||||
$(OPENSSL_PATH)/crypto/ctype.c
|
||||
$(OPENSSL_PATH)/crypto/cversion.c
|
||||
$(OPENSSL_PATH)/crypto/dh/dh_ameth.c
|
||||
$(OPENSSL_PATH)/crypto/dh/dh_asn1.c
|
||||
$(OPENSSL_PATH)/crypto/dh/dh_check.c
|
||||
$(OPENSSL_PATH)/crypto/dh/dh_depr.c
|
||||
$(OPENSSL_PATH)/crypto/dh/dh_err.c
|
||||
$(OPENSSL_PATH)/crypto/dh/dh_gen.c
|
||||
$(OPENSSL_PATH)/crypto/dh/dh_kdf.c
|
||||
$(OPENSSL_PATH)/crypto/dh/dh_key.c
|
||||
$(OPENSSL_PATH)/crypto/dh/dh_lib.c
|
||||
$(OPENSSL_PATH)/crypto/dh/dh_meth.c
|
||||
$(OPENSSL_PATH)/crypto/dh/dh_pmeth.c
|
||||
$(OPENSSL_PATH)/crypto/dh/dh_prn.c
|
||||
$(OPENSSL_PATH)/crypto/dh/dh_rfc5114.c
|
||||
$(OPENSSL_PATH)/crypto/dh/dh_rfc7919.c
|
||||
$(OPENSSL_PATH)/crypto/dso/dso_dl.c
|
||||
$(OPENSSL_PATH)/crypto/dso/dso_dlfcn.c
|
||||
$(OPENSSL_PATH)/crypto/dso/dso_err.c
|
||||
$(OPENSSL_PATH)/crypto/dso/dso_lib.c
|
||||
$(OPENSSL_PATH)/crypto/dso/dso_openssl.c
|
||||
$(OPENSSL_PATH)/crypto/dso/dso_vms.c
|
||||
$(OPENSSL_PATH)/crypto/dso/dso_win32.c
|
||||
$(OPENSSL_PATH)/crypto/ebcdic.c
|
||||
$(OPENSSL_PATH)/crypto/err/err.c
|
||||
$(OPENSSL_PATH)/crypto/err/err_prn.c
|
||||
$(OPENSSL_PATH)/crypto/evp/bio_b64.c
|
||||
$(OPENSSL_PATH)/crypto/evp/bio_enc.c
|
||||
$(OPENSSL_PATH)/crypto/evp/bio_md.c
|
||||
$(OPENSSL_PATH)/crypto/evp/bio_ok.c
|
||||
$(OPENSSL_PATH)/crypto/evp/c_allc.c
|
||||
$(OPENSSL_PATH)/crypto/evp/c_alld.c
|
||||
$(OPENSSL_PATH)/crypto/evp/cmeth_lib.c
|
||||
$(OPENSSL_PATH)/crypto/evp/digest.c
|
||||
$(OPENSSL_PATH)/crypto/evp/e_aes.c
|
||||
$(OPENSSL_PATH)/crypto/evp/e_aes_cbc_hmac_sha1.c
|
||||
$(OPENSSL_PATH)/crypto/evp/e_aes_cbc_hmac_sha256.c
|
||||
$(OPENSSL_PATH)/crypto/evp/e_aria.c
|
||||
$(OPENSSL_PATH)/crypto/evp/e_bf.c
|
||||
$(OPENSSL_PATH)/crypto/evp/e_camellia.c
|
||||
$(OPENSSL_PATH)/crypto/evp/e_cast.c
|
||||
$(OPENSSL_PATH)/crypto/evp/e_chacha20_poly1305.c
|
||||
$(OPENSSL_PATH)/crypto/evp/e_des.c
|
||||
$(OPENSSL_PATH)/crypto/evp/e_des3.c
|
||||
$(OPENSSL_PATH)/crypto/evp/e_idea.c
|
||||
$(OPENSSL_PATH)/crypto/evp/e_null.c
|
||||
$(OPENSSL_PATH)/crypto/evp/e_old.c
|
||||
$(OPENSSL_PATH)/crypto/evp/e_rc2.c
|
||||
$(OPENSSL_PATH)/crypto/evp/e_rc4.c
|
||||
$(OPENSSL_PATH)/crypto/evp/e_rc4_hmac_md5.c
|
||||
$(OPENSSL_PATH)/crypto/evp/e_rc5.c
|
||||
$(OPENSSL_PATH)/crypto/evp/e_seed.c
|
||||
$(OPENSSL_PATH)/crypto/evp/e_sm4.c
|
||||
$(OPENSSL_PATH)/crypto/evp/e_xcbc_d.c
|
||||
$(OPENSSL_PATH)/crypto/evp/encode.c
|
||||
$(OPENSSL_PATH)/crypto/evp/evp_cnf.c
|
||||
$(OPENSSL_PATH)/crypto/evp/evp_enc.c
|
||||
$(OPENSSL_PATH)/crypto/evp/evp_err.c
|
||||
$(OPENSSL_PATH)/crypto/evp/evp_key.c
|
||||
$(OPENSSL_PATH)/crypto/evp/evp_lib.c
|
||||
$(OPENSSL_PATH)/crypto/evp/evp_pbe.c
|
||||
$(OPENSSL_PATH)/crypto/evp/evp_pkey.c
|
||||
$(OPENSSL_PATH)/crypto/evp/m_md2.c
|
||||
$(OPENSSL_PATH)/crypto/evp/m_md4.c
|
||||
$(OPENSSL_PATH)/crypto/evp/m_md5.c
|
||||
$(OPENSSL_PATH)/crypto/evp/m_md5_sha1.c
|
||||
$(OPENSSL_PATH)/crypto/evp/m_mdc2.c
|
||||
$(OPENSSL_PATH)/crypto/evp/m_null.c
|
||||
$(OPENSSL_PATH)/crypto/evp/m_ripemd.c
|
||||
$(OPENSSL_PATH)/crypto/evp/m_sha1.c
|
||||
$(OPENSSL_PATH)/crypto/evp/m_sha3.c
|
||||
$(OPENSSL_PATH)/crypto/evp/m_sigver.c
|
||||
$(OPENSSL_PATH)/crypto/evp/m_wp.c
|
||||
$(OPENSSL_PATH)/crypto/evp/names.c
|
||||
$(OPENSSL_PATH)/crypto/evp/p5_crpt.c
|
||||
$(OPENSSL_PATH)/crypto/evp/p5_crpt2.c
|
||||
$(OPENSSL_PATH)/crypto/evp/p_dec.c
|
||||
$(OPENSSL_PATH)/crypto/evp/p_enc.c
|
||||
$(OPENSSL_PATH)/crypto/evp/p_lib.c
|
||||
$(OPENSSL_PATH)/crypto/evp/p_open.c
|
||||
$(OPENSSL_PATH)/crypto/evp/p_seal.c
|
||||
$(OPENSSL_PATH)/crypto/evp/p_sign.c
|
||||
$(OPENSSL_PATH)/crypto/evp/p_verify.c
|
||||
$(OPENSSL_PATH)/crypto/evp/pbe_scrypt.c
|
||||
$(OPENSSL_PATH)/crypto/evp/pmeth_fn.c
|
||||
$(OPENSSL_PATH)/crypto/evp/pmeth_gn.c
|
||||
$(OPENSSL_PATH)/crypto/evp/pmeth_lib.c
|
||||
$(OPENSSL_PATH)/crypto/ex_data.c
|
||||
$(OPENSSL_PATH)/crypto/getenv.c
|
||||
$(OPENSSL_PATH)/crypto/hmac/hm_ameth.c
|
||||
$(OPENSSL_PATH)/crypto/hmac/hm_pmeth.c
|
||||
$(OPENSSL_PATH)/crypto/hmac/hmac.c
|
||||
$(OPENSSL_PATH)/crypto/init.c
|
||||
$(OPENSSL_PATH)/crypto/kdf/hkdf.c
|
||||
$(OPENSSL_PATH)/crypto/kdf/kdf_err.c
|
||||
$(OPENSSL_PATH)/crypto/kdf/scrypt.c
|
||||
$(OPENSSL_PATH)/crypto/kdf/tls1_prf.c
|
||||
$(OPENSSL_PATH)/crypto/lhash/lh_stats.c
|
||||
$(OPENSSL_PATH)/crypto/lhash/lhash.c
|
||||
$(OPENSSL_PATH)/crypto/md5/md5_dgst.c
|
||||
$(OPENSSL_PATH)/crypto/md5/md5_one.c
|
||||
$(OPENSSL_PATH)/crypto/mem.c
|
||||
$(OPENSSL_PATH)/crypto/mem_dbg.c
|
||||
$(OPENSSL_PATH)/crypto/mem_sec.c
|
||||
$(OPENSSL_PATH)/crypto/modes/cbc128.c
|
||||
$(OPENSSL_PATH)/crypto/modes/ccm128.c
|
||||
$(OPENSSL_PATH)/crypto/modes/cfb128.c
|
||||
$(OPENSSL_PATH)/crypto/modes/ctr128.c
|
||||
$(OPENSSL_PATH)/crypto/modes/cts128.c
|
||||
$(OPENSSL_PATH)/crypto/modes/gcm128.c
|
||||
$(OPENSSL_PATH)/crypto/modes/ocb128.c
|
||||
$(OPENSSL_PATH)/crypto/modes/ofb128.c
|
||||
$(OPENSSL_PATH)/crypto/modes/wrap128.c
|
||||
$(OPENSSL_PATH)/crypto/modes/xts128.c
|
||||
$(OPENSSL_PATH)/crypto/o_dir.c
|
||||
$(OPENSSL_PATH)/crypto/o_fips.c
|
||||
$(OPENSSL_PATH)/crypto/o_fopen.c
|
||||
$(OPENSSL_PATH)/crypto/o_init.c
|
||||
$(OPENSSL_PATH)/crypto/o_str.c
|
||||
$(OPENSSL_PATH)/crypto/o_time.c
|
||||
$(OPENSSL_PATH)/crypto/objects/o_names.c
|
||||
$(OPENSSL_PATH)/crypto/objects/obj_dat.c
|
||||
$(OPENSSL_PATH)/crypto/objects/obj_err.c
|
||||
$(OPENSSL_PATH)/crypto/objects/obj_lib.c
|
||||
$(OPENSSL_PATH)/crypto/objects/obj_xref.c
|
||||
$(OPENSSL_PATH)/crypto/ocsp/ocsp_asn.c
|
||||
$(OPENSSL_PATH)/crypto/ocsp/ocsp_cl.c
|
||||
$(OPENSSL_PATH)/crypto/ocsp/ocsp_err.c
|
||||
$(OPENSSL_PATH)/crypto/ocsp/ocsp_ext.c
|
||||
$(OPENSSL_PATH)/crypto/ocsp/ocsp_ht.c
|
||||
$(OPENSSL_PATH)/crypto/ocsp/ocsp_lib.c
|
||||
$(OPENSSL_PATH)/crypto/ocsp/ocsp_prn.c
|
||||
$(OPENSSL_PATH)/crypto/ocsp/ocsp_srv.c
|
||||
$(OPENSSL_PATH)/crypto/ocsp/ocsp_vfy.c
|
||||
$(OPENSSL_PATH)/crypto/ocsp/v3_ocsp.c
|
||||
$(OPENSSL_PATH)/crypto/pem/pem_all.c
|
||||
$(OPENSSL_PATH)/crypto/pem/pem_err.c
|
||||
$(OPENSSL_PATH)/crypto/pem/pem_info.c
|
||||
$(OPENSSL_PATH)/crypto/pem/pem_lib.c
|
||||
$(OPENSSL_PATH)/crypto/pem/pem_oth.c
|
||||
$(OPENSSL_PATH)/crypto/pem/pem_pk8.c
|
||||
$(OPENSSL_PATH)/crypto/pem/pem_pkey.c
|
||||
$(OPENSSL_PATH)/crypto/pem/pem_sign.c
|
||||
$(OPENSSL_PATH)/crypto/pem/pem_x509.c
|
||||
$(OPENSSL_PATH)/crypto/pem/pem_xaux.c
|
||||
$(OPENSSL_PATH)/crypto/pem/pvkfmt.c
|
||||
$(OPENSSL_PATH)/crypto/pkcs12/p12_add.c
|
||||
$(OPENSSL_PATH)/crypto/pkcs12/p12_asn.c
|
||||
$(OPENSSL_PATH)/crypto/pkcs12/p12_attr.c
|
||||
$(OPENSSL_PATH)/crypto/pkcs12/p12_crpt.c
|
||||
$(OPENSSL_PATH)/crypto/pkcs12/p12_crt.c
|
||||
$(OPENSSL_PATH)/crypto/pkcs12/p12_decr.c
|
||||
$(OPENSSL_PATH)/crypto/pkcs12/p12_init.c
|
||||
$(OPENSSL_PATH)/crypto/pkcs12/p12_key.c
|
||||
$(OPENSSL_PATH)/crypto/pkcs12/p12_kiss.c
|
||||
$(OPENSSL_PATH)/crypto/pkcs12/p12_mutl.c
|
||||
$(OPENSSL_PATH)/crypto/pkcs12/p12_npas.c
|
||||
$(OPENSSL_PATH)/crypto/pkcs12/p12_p8d.c
|
||||
$(OPENSSL_PATH)/crypto/pkcs12/p12_p8e.c
|
||||
$(OPENSSL_PATH)/crypto/pkcs12/p12_sbag.c
|
||||
$(OPENSSL_PATH)/crypto/pkcs12/p12_utl.c
|
||||
$(OPENSSL_PATH)/crypto/pkcs12/pk12err.c
|
||||
$(OPENSSL_PATH)/crypto/pkcs7/bio_pk7.c
|
||||
$(OPENSSL_PATH)/crypto/pkcs7/pk7_asn1.c
|
||||
$(OPENSSL_PATH)/crypto/pkcs7/pk7_attr.c
|
||||
$(OPENSSL_PATH)/crypto/pkcs7/pk7_doit.c
|
||||
$(OPENSSL_PATH)/crypto/pkcs7/pk7_lib.c
|
||||
$(OPENSSL_PATH)/crypto/pkcs7/pk7_mime.c
|
||||
$(OPENSSL_PATH)/crypto/pkcs7/pk7_smime.c
|
||||
$(OPENSSL_PATH)/crypto/pkcs7/pkcs7err.c
|
||||
$(OPENSSL_PATH)/crypto/rand/drbg_ctr.c
|
||||
$(OPENSSL_PATH)/crypto/rand/drbg_lib.c
|
||||
$(OPENSSL_PATH)/crypto/rand/rand_egd.c
|
||||
$(OPENSSL_PATH)/crypto/rand/rand_err.c
|
||||
$(OPENSSL_PATH)/crypto/rand/rand_lib.c
|
||||
$(OPENSSL_PATH)/crypto/rand/rand_unix.c
|
||||
$(OPENSSL_PATH)/crypto/rand/rand_vms.c
|
||||
$(OPENSSL_PATH)/crypto/rand/rand_win.c
|
||||
$(OPENSSL_PATH)/crypto/rsa/rsa_ameth.c
|
||||
$(OPENSSL_PATH)/crypto/rsa/rsa_asn1.c
|
||||
$(OPENSSL_PATH)/crypto/rsa/rsa_chk.c
|
||||
$(OPENSSL_PATH)/crypto/rsa/rsa_crpt.c
|
||||
$(OPENSSL_PATH)/crypto/rsa/rsa_depr.c
|
||||
$(OPENSSL_PATH)/crypto/rsa/rsa_err.c
|
||||
$(OPENSSL_PATH)/crypto/rsa/rsa_gen.c
|
||||
$(OPENSSL_PATH)/crypto/rsa/rsa_lib.c
|
||||
$(OPENSSL_PATH)/crypto/rsa/rsa_meth.c
|
||||
$(OPENSSL_PATH)/crypto/rsa/rsa_mp.c
|
||||
$(OPENSSL_PATH)/crypto/rsa/rsa_none.c
|
||||
$(OPENSSL_PATH)/crypto/rsa/rsa_oaep.c
|
||||
$(OPENSSL_PATH)/crypto/rsa/rsa_ossl.c
|
||||
$(OPENSSL_PATH)/crypto/rsa/rsa_pk1.c
|
||||
$(OPENSSL_PATH)/crypto/rsa/rsa_pmeth.c
|
||||
$(OPENSSL_PATH)/crypto/rsa/rsa_prn.c
|
||||
$(OPENSSL_PATH)/crypto/rsa/rsa_pss.c
|
||||
$(OPENSSL_PATH)/crypto/rsa/rsa_saos.c
|
||||
$(OPENSSL_PATH)/crypto/rsa/rsa_sign.c
|
||||
$(OPENSSL_PATH)/crypto/rsa/rsa_ssl.c
|
||||
$(OPENSSL_PATH)/crypto/rsa/rsa_x931.c
|
||||
$(OPENSSL_PATH)/crypto/rsa/rsa_x931g.c
|
||||
$(OPENSSL_PATH)/crypto/sha/keccak1600.c
|
||||
$(OPENSSL_PATH)/crypto/sha/sha1_one.c
|
||||
$(OPENSSL_PATH)/crypto/sha/sha1dgst.c
|
||||
$(OPENSSL_PATH)/crypto/sha/sha256.c
|
||||
$(OPENSSL_PATH)/crypto/sha/sha512.c
|
||||
$(OPENSSL_PATH)/crypto/siphash/siphash.c
|
||||
$(OPENSSL_PATH)/crypto/siphash/siphash_ameth.c
|
||||
$(OPENSSL_PATH)/crypto/siphash/siphash_pmeth.c
|
||||
$(OPENSSL_PATH)/crypto/sm3/m_sm3.c
|
||||
$(OPENSSL_PATH)/crypto/sm3/sm3.c
|
||||
$(OPENSSL_PATH)/crypto/sm4/sm4.c
|
||||
$(OPENSSL_PATH)/crypto/stack/stack.c
|
||||
$(OPENSSL_PATH)/crypto/threads_none.c
|
||||
$(OPENSSL_PATH)/crypto/threads_pthread.c
|
||||
$(OPENSSL_PATH)/crypto/threads_win.c
|
||||
$(OPENSSL_PATH)/crypto/txt_db/txt_db.c
|
||||
$(OPENSSL_PATH)/crypto/ui/ui_err.c
|
||||
$(OPENSSL_PATH)/crypto/ui/ui_lib.c
|
||||
$(OPENSSL_PATH)/crypto/ui/ui_null.c
|
||||
$(OPENSSL_PATH)/crypto/ui/ui_openssl.c
|
||||
$(OPENSSL_PATH)/crypto/ui/ui_util.c
|
||||
$(OPENSSL_PATH)/crypto/uid.c
|
||||
$(OPENSSL_PATH)/crypto/x509/by_dir.c
|
||||
$(OPENSSL_PATH)/crypto/x509/by_file.c
|
||||
$(OPENSSL_PATH)/crypto/x509/t_crl.c
|
||||
$(OPENSSL_PATH)/crypto/x509/t_req.c
|
||||
$(OPENSSL_PATH)/crypto/x509/t_x509.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x509_att.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x509_cmp.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x509_d2.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x509_def.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x509_err.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x509_ext.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x509_lu.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x509_meth.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x509_obj.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x509_r2x.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x509_req.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x509_set.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x509_trs.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x509_txt.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x509_v3.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x509_vfy.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x509_vpm.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x509cset.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x509name.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x509rset.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x509spki.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x509type.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x_all.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x_attrib.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x_crl.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x_exten.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x_name.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x_pubkey.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x_req.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x_x509.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x_x509a.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/pcy_cache.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/pcy_data.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/pcy_lib.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/pcy_map.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/pcy_node.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/pcy_tree.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_addr.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_admis.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_akey.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_akeya.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_alt.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_asid.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_bcons.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_bitst.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_conf.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_cpols.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_crld.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_enum.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_extku.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_genn.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_ia5.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_info.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_int.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_lib.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_ncons.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_pci.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_pcia.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_pcons.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_pku.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_pmaps.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_prn.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_purp.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_skey.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_sxnet.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_tlsf.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_utl.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3err.c
|
||||
$(OPENSSL_PATH)/crypto/arm_arch.h
|
||||
$(OPENSSL_PATH)/crypto/mips_arch.h
|
||||
$(OPENSSL_PATH)/crypto/ppc_arch.h
|
||||
$(OPENSSL_PATH)/crypto/s390x_arch.h
|
||||
$(OPENSSL_PATH)/crypto/sparc_arch.h
|
||||
$(OPENSSL_PATH)/crypto/vms_rms.h
|
||||
$(OPENSSL_PATH)/crypto/aes/aes_local.h
|
||||
$(OPENSSL_PATH)/crypto/asn1/asn1_item_list.h
|
||||
$(OPENSSL_PATH)/crypto/asn1/asn1_local.h
|
||||
$(OPENSSL_PATH)/crypto/asn1/charmap.h
|
||||
$(OPENSSL_PATH)/crypto/asn1/standard_methods.h
|
||||
$(OPENSSL_PATH)/crypto/asn1/tbl_standard.h
|
||||
$(OPENSSL_PATH)/crypto/async/async_local.h
|
||||
$(OPENSSL_PATH)/crypto/async/arch/async_null.h
|
||||
$(OPENSSL_PATH)/crypto/async/arch/async_posix.h
|
||||
$(OPENSSL_PATH)/crypto/async/arch/async_win.h
|
||||
$(OPENSSL_PATH)/crypto/bio/bio_local.h
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_local.h
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_prime.h
|
||||
$(OPENSSL_PATH)/crypto/bn/rsaz_exp.h
|
||||
$(OPENSSL_PATH)/crypto/comp/comp_local.h
|
||||
$(OPENSSL_PATH)/crypto/conf/conf_def.h
|
||||
$(OPENSSL_PATH)/crypto/conf/conf_local.h
|
||||
$(OPENSSL_PATH)/crypto/dh/dh_local.h
|
||||
$(OPENSSL_PATH)/crypto/dso/dso_local.h
|
||||
$(OPENSSL_PATH)/crypto/evp/evp_local.h
|
||||
$(OPENSSL_PATH)/crypto/hmac/hmac_local.h
|
||||
$(OPENSSL_PATH)/crypto/lhash/lhash_local.h
|
||||
$(OPENSSL_PATH)/crypto/md5/md5_local.h
|
||||
$(OPENSSL_PATH)/crypto/modes/modes_local.h
|
||||
$(OPENSSL_PATH)/crypto/objects/obj_dat.h
|
||||
$(OPENSSL_PATH)/crypto/objects/obj_local.h
|
||||
$(OPENSSL_PATH)/crypto/objects/obj_xref.h
|
||||
$(OPENSSL_PATH)/crypto/ocsp/ocsp_local.h
|
||||
$(OPENSSL_PATH)/crypto/pkcs12/p12_local.h
|
||||
$(OPENSSL_PATH)/crypto/rand/rand_local.h
|
||||
$(OPENSSL_PATH)/crypto/rsa/rsa_local.h
|
||||
$(OPENSSL_PATH)/crypto/sha/sha_local.h
|
||||
$(OPENSSL_PATH)/crypto/siphash/siphash_local.h
|
||||
$(OPENSSL_PATH)/crypto/sm3/sm3_local.h
|
||||
$(OPENSSL_PATH)/crypto/store/store_local.h
|
||||
$(OPENSSL_PATH)/crypto/ui/ui_local.h
|
||||
$(OPENSSL_PATH)/crypto/x509/x509_local.h
|
||||
$(OPENSSL_PATH)/crypto/x509v3/ext_dat.h
|
||||
$(OPENSSL_PATH)/crypto/x509v3/pcy_local.h
|
||||
$(OPENSSL_PATH)/crypto/x509v3/standard_exts.h
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_admis.h
|
||||
$(OPENSSL_PATH)/ssl/bio_ssl.c
|
||||
$(OPENSSL_PATH)/ssl/d1_lib.c
|
||||
$(OPENSSL_PATH)/ssl/d1_msg.c
|
||||
$(OPENSSL_PATH)/ssl/d1_srtp.c
|
||||
$(OPENSSL_PATH)/ssl/methods.c
|
||||
$(OPENSSL_PATH)/ssl/packet.c
|
||||
$(OPENSSL_PATH)/ssl/pqueue.c
|
||||
$(OPENSSL_PATH)/ssl/record/dtls1_bitmap.c
|
||||
$(OPENSSL_PATH)/ssl/record/rec_layer_d1.c
|
||||
$(OPENSSL_PATH)/ssl/record/rec_layer_s3.c
|
||||
$(OPENSSL_PATH)/ssl/record/ssl3_buffer.c
|
||||
$(OPENSSL_PATH)/ssl/record/ssl3_record.c
|
||||
$(OPENSSL_PATH)/ssl/record/ssl3_record_tls13.c
|
||||
$(OPENSSL_PATH)/ssl/s3_cbc.c
|
||||
$(OPENSSL_PATH)/ssl/s3_enc.c
|
||||
$(OPENSSL_PATH)/ssl/s3_lib.c
|
||||
$(OPENSSL_PATH)/ssl/s3_msg.c
|
||||
$(OPENSSL_PATH)/ssl/ssl_asn1.c
|
||||
$(OPENSSL_PATH)/ssl/ssl_cert.c
|
||||
$(OPENSSL_PATH)/ssl/ssl_ciph.c
|
||||
$(OPENSSL_PATH)/ssl/ssl_conf.c
|
||||
$(OPENSSL_PATH)/ssl/ssl_err.c
|
||||
$(OPENSSL_PATH)/ssl/ssl_init.c
|
||||
$(OPENSSL_PATH)/ssl/ssl_lib.c
|
||||
$(OPENSSL_PATH)/ssl/ssl_mcnf.c
|
||||
$(OPENSSL_PATH)/ssl/ssl_rsa.c
|
||||
$(OPENSSL_PATH)/ssl/ssl_sess.c
|
||||
$(OPENSSL_PATH)/ssl/ssl_stat.c
|
||||
$(OPENSSL_PATH)/ssl/ssl_txt.c
|
||||
$(OPENSSL_PATH)/ssl/ssl_utst.c
|
||||
$(OPENSSL_PATH)/ssl/statem/extensions.c
|
||||
$(OPENSSL_PATH)/ssl/statem/extensions_clnt.c
|
||||
$(OPENSSL_PATH)/ssl/statem/extensions_cust.c
|
||||
$(OPENSSL_PATH)/ssl/statem/extensions_srvr.c
|
||||
$(OPENSSL_PATH)/ssl/statem/statem.c
|
||||
$(OPENSSL_PATH)/ssl/statem/statem_clnt.c
|
||||
$(OPENSSL_PATH)/ssl/statem/statem_dtls.c
|
||||
$(OPENSSL_PATH)/ssl/statem/statem_lib.c
|
||||
$(OPENSSL_PATH)/ssl/statem/statem_srvr.c
|
||||
$(OPENSSL_PATH)/ssl/t1_enc.c
|
||||
$(OPENSSL_PATH)/ssl/t1_lib.c
|
||||
$(OPENSSL_PATH)/ssl/t1_trce.c
|
||||
$(OPENSSL_PATH)/ssl/tls13_enc.c
|
||||
$(OPENSSL_PATH)/ssl/tls_srp.c
|
||||
$(OPENSSL_PATH)/ssl/packet_local.h
|
||||
$(OPENSSL_PATH)/ssl/ssl_cert_table.h
|
||||
$(OPENSSL_PATH)/ssl/ssl_local.h
|
||||
$(OPENSSL_PATH)/ssl/record/record.h
|
||||
$(OPENSSL_PATH)/ssl/record/record_local.h
|
||||
$(OPENSSL_PATH)/ssl/statem/statem.h
|
||||
$(OPENSSL_PATH)/ssl/statem/statem_local.h
|
||||
# Autogenerated files list ends here
|
||||
buildinf.h
|
||||
ossl_store.c
|
||||
rand_pool.c
|
||||
X64/ApiHooks.c
|
||||
|
||||
[Packages]
|
||||
MdePkg/MdePkg.dec
|
||||
CryptoPkg/CryptoPkg.dec
|
||||
|
||||
[LibraryClasses]
|
||||
BaseLib
|
||||
DebugLib
|
||||
RngLib
|
||||
PrintLib
|
||||
|
||||
[BuildOptions]
|
||||
#
|
||||
# Disables the following Visual Studio compiler warnings brought by openssl source,
|
||||
# so we do not break the build with /WX option:
|
||||
# C4090: 'function' : different 'const' qualifiers
|
||||
# C4132: 'object' : const object should be initialized (tls13_enc.c)
|
||||
# C4210: nonstandard extension used: function given file scope
|
||||
# C4244: conversion from type1 to type2, possible loss of data
|
||||
# C4245: conversion from type1 to type2, signed/unsigned mismatch
|
||||
# C4267: conversion from size_t to type, possible loss of data
|
||||
# C4306: 'identifier' : conversion from 'type1' to 'type2' of greater size
|
||||
# C4310: cast truncates constant value
|
||||
# C4389: 'operator' : signed/unsigned mismatch (xxxx)
|
||||
# C4700: uninitialized local variable 'name' used. (conf_sap.c(71))
|
||||
# C4702: unreachable code
|
||||
# C4706: assignment within conditional expression
|
||||
# C4819: The file contains a character that cannot be represented in the current code page
|
||||
#
|
||||
MSFT:*_*_X64_CC_FLAGS = -U_WIN32 -U_WIN64 -U_MSC_VER $(OPENSSL_FLAGS) $(OPENSSL_FLAGS_CONFIG) /wd4090 /wd4132 /wd4210 /wd4244 /wd4245 /wd4267 /wd4306 /wd4310 /wd4700 /wd4389 /wd4702 /wd4706 /wd4819
|
||||
|
||||
INTEL:*_*_X64_CC_FLAGS = -U_WIN32 -U_WIN64 -U_MSC_VER -U__ICC $(OPENSSL_FLAGS) $(OPENSSL_FLAGS_CONFIG) /w
|
||||
|
||||
#
|
||||
# Suppress the following build warnings in openssl so we don't break the build with -Werror
|
||||
# -Werror=maybe-uninitialized: there exist some other paths for which the variable is not initialized.
|
||||
# -Werror=format: Check calls to printf and scanf, etc., to make sure that the arguments supplied have
|
||||
# types appropriate to the format string specified.
|
||||
# -Werror=unused-but-set-variable: Warn whenever a local variable is assigned to, but otherwise unused (aside from its declaration).
|
||||
#
|
||||
GCC:*_*_X64_CC_FLAGS = -UWIN32 -U_WIN32 -U_WIN64 $(OPENSSL_FLAGS) $(OPENSSL_FLAGS_CONFIG) -Wno-error=maybe-uninitialized -Wno-error=format -Wno-format -Wno-error=unused-but-set-variable -DNO_MSABI_VA_FUNCS
|
||||
|
||||
# suppress the following warnings in openssl so we don't break the build with warnings-as-errors:
|
||||
# 1295: Deprecated declaration <entity> - give arg types
|
||||
# 550: <entity> was set but never used
|
||||
# 1293: assignment in condition
|
||||
# 111: statement is unreachable (invariably "break;" after "return X;" in case statement)
|
||||
# 68: integer conversion resulted in a change of sign ("if (Status == -1)")
|
||||
# 177: <entity> was declared but never referenced
|
||||
# 223: function <entity> declared implicitly
|
||||
# 144: a value of type <type> cannot be used to initialize an entity of type <type>
|
||||
# 513: a value of type <type> cannot be assigned to an entity of type <type>
|
||||
# 188: enumerated type mixed with another type (i.e. passing an integer as an enum without a cast)
|
||||
# 1296: Extended constant initialiser used
|
||||
# 128: loop is not reachable - may be emitted inappropriately if code follows a conditional return
|
||||
# from the function that evaluates to true at compile time
|
||||
# 546: transfer of control bypasses initialization - may be emitted inappropriately if the uninitialized
|
||||
# variable is never referenced after the jump
|
||||
# 1: ignore "#1-D: last line of file ends without a newline"
|
||||
# 3017: <entity> may be used before being set (NOTE: This was fixed in OpenSSL 1.1 HEAD with
|
||||
# commit d9b8b89bec4480de3a10bdaf9425db371c19145b, and can be dropped then.)
|
||||
XCODE:*_*_X64_CC_FLAGS = -mmmx -msse -U_WIN32 -U_WIN64 $(OPENSSL_FLAGS) $(OPENSSL_FLAGS_CONFIG) -w -std=c99 -Wno-error=uninitialized
|
653
CryptoPkg/Library/OpensslLib/OpensslLibX64Gcc.inf
Normal file
653
CryptoPkg/Library/OpensslLib/OpensslLibX64Gcc.inf
Normal file
@@ -0,0 +1,653 @@
|
||||
## @file
|
||||
# This module provides OpenSSL Library implementation.
|
||||
#
|
||||
# Copyright (c) 2010 - 2020, Intel Corporation. All rights reserved.<BR>
|
||||
# (C) Copyright 2020 Hewlett Packard Enterprise Development LP<BR>
|
||||
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
#
|
||||
##
|
||||
|
||||
[Defines]
|
||||
INF_VERSION = 0x00010005
|
||||
BASE_NAME = OpensslLibX64Gcc
|
||||
MODULE_UNI_FILE = OpensslLib.uni
|
||||
FILE_GUID = DD90DB9D-6A3F-4F2B-87BF-A8F2BBEF982F
|
||||
MODULE_TYPE = BASE
|
||||
VERSION_STRING = 1.0
|
||||
LIBRARY_CLASS = OpensslLib
|
||||
DEFINE OPENSSL_PATH = openssl
|
||||
DEFINE OPENSSL_FLAGS = -DL_ENDIAN -DOPENSSL_SMALL_FOOTPRINT -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE
|
||||
DEFINE OPENSSL_FLAGS_CONFIG = -DOPENSSL_CPUID_OBJ -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DAESNI_ASM -DVPAES_ASM -DGHASH_ASM
|
||||
CONSTRUCTOR = OpensslLibConstructor
|
||||
|
||||
#
|
||||
# VALID_ARCHITECTURES = X64
|
||||
#
|
||||
|
||||
[Sources.X64]
|
||||
OpensslLibConstructor.c
|
||||
$(OPENSSL_PATH)/e_os.h
|
||||
$(OPENSSL_PATH)/ms/uplink.h
|
||||
# Autogenerated files list starts here
|
||||
X64Gcc/crypto/aes/aesni-mb-x86_64.S
|
||||
X64Gcc/crypto/aes/aesni-sha1-x86_64.S
|
||||
X64Gcc/crypto/aes/aesni-sha256-x86_64.S
|
||||
X64Gcc/crypto/aes/aesni-x86_64.S
|
||||
X64Gcc/crypto/aes/vpaes-x86_64.S
|
||||
X64Gcc/crypto/modes/aesni-gcm-x86_64.S
|
||||
X64Gcc/crypto/modes/ghash-x86_64.S
|
||||
X64Gcc/crypto/sha/sha1-mb-x86_64.S
|
||||
X64Gcc/crypto/sha/sha1-x86_64.S
|
||||
X64Gcc/crypto/sha/sha256-mb-x86_64.S
|
||||
X64Gcc/crypto/sha/sha256-x86_64.S
|
||||
X64Gcc/crypto/sha/sha512-x86_64.S
|
||||
X64Gcc/crypto/x86_64cpuid.S
|
||||
$(OPENSSL_PATH)/crypto/aes/aes_cbc.c
|
||||
$(OPENSSL_PATH)/crypto/aes/aes_cfb.c
|
||||
$(OPENSSL_PATH)/crypto/aes/aes_core.c
|
||||
$(OPENSSL_PATH)/crypto/aes/aes_ige.c
|
||||
$(OPENSSL_PATH)/crypto/aes/aes_misc.c
|
||||
$(OPENSSL_PATH)/crypto/aes/aes_ofb.c
|
||||
$(OPENSSL_PATH)/crypto/aes/aes_wrap.c
|
||||
$(OPENSSL_PATH)/crypto/aria/aria.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/a_bitstr.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/a_d2i_fp.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/a_digest.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/a_dup.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/a_gentm.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/a_i2d_fp.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/a_int.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/a_mbstr.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/a_object.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/a_octet.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/a_print.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/a_sign.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/a_strex.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/a_strnid.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/a_time.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/a_type.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/a_utctm.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/a_utf8.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/a_verify.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/ameth_lib.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/asn1_err.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/asn1_gen.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/asn1_item_list.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/asn1_lib.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/asn1_par.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/asn_mime.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/asn_moid.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/asn_mstbl.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/asn_pack.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/bio_asn1.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/bio_ndef.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/d2i_pr.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/d2i_pu.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/evp_asn1.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/f_int.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/f_string.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/i2d_pr.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/i2d_pu.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/n_pkey.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/nsseq.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/p5_pbe.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/p5_pbev2.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/p5_scrypt.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/p8_pkey.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/t_bitst.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/t_pkey.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/t_spki.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/tasn_dec.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/tasn_enc.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/tasn_fre.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/tasn_new.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/tasn_prn.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/tasn_scn.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/tasn_typ.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/tasn_utl.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/x_algor.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/x_bignum.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/x_info.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/x_int64.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/x_long.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/x_pkey.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/x_sig.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/x_spki.c
|
||||
$(OPENSSL_PATH)/crypto/asn1/x_val.c
|
||||
$(OPENSSL_PATH)/crypto/async/arch/async_null.c
|
||||
$(OPENSSL_PATH)/crypto/async/arch/async_posix.c
|
||||
$(OPENSSL_PATH)/crypto/async/arch/async_win.c
|
||||
$(OPENSSL_PATH)/crypto/async/async.c
|
||||
$(OPENSSL_PATH)/crypto/async/async_err.c
|
||||
$(OPENSSL_PATH)/crypto/async/async_wait.c
|
||||
$(OPENSSL_PATH)/crypto/bio/b_addr.c
|
||||
$(OPENSSL_PATH)/crypto/bio/b_dump.c
|
||||
$(OPENSSL_PATH)/crypto/bio/b_sock.c
|
||||
$(OPENSSL_PATH)/crypto/bio/b_sock2.c
|
||||
$(OPENSSL_PATH)/crypto/bio/bf_buff.c
|
||||
$(OPENSSL_PATH)/crypto/bio/bf_lbuf.c
|
||||
$(OPENSSL_PATH)/crypto/bio/bf_nbio.c
|
||||
$(OPENSSL_PATH)/crypto/bio/bf_null.c
|
||||
$(OPENSSL_PATH)/crypto/bio/bio_cb.c
|
||||
$(OPENSSL_PATH)/crypto/bio/bio_err.c
|
||||
$(OPENSSL_PATH)/crypto/bio/bio_lib.c
|
||||
$(OPENSSL_PATH)/crypto/bio/bio_meth.c
|
||||
$(OPENSSL_PATH)/crypto/bio/bss_acpt.c
|
||||
$(OPENSSL_PATH)/crypto/bio/bss_bio.c
|
||||
$(OPENSSL_PATH)/crypto/bio/bss_conn.c
|
||||
$(OPENSSL_PATH)/crypto/bio/bss_dgram.c
|
||||
$(OPENSSL_PATH)/crypto/bio/bss_fd.c
|
||||
$(OPENSSL_PATH)/crypto/bio/bss_file.c
|
||||
$(OPENSSL_PATH)/crypto/bio/bss_log.c
|
||||
$(OPENSSL_PATH)/crypto/bio/bss_mem.c
|
||||
$(OPENSSL_PATH)/crypto/bio/bss_null.c
|
||||
$(OPENSSL_PATH)/crypto/bio/bss_sock.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_add.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_asm.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_blind.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_const.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_ctx.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_depr.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_dh.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_div.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_err.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_exp.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_exp2.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_gcd.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_gf2m.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_intern.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_kron.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_lib.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_mod.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_mont.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_mpi.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_mul.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_nist.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_prime.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_print.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_rand.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_recp.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_shift.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_sqr.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_sqrt.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_srp.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_word.c
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_x931p.c
|
||||
$(OPENSSL_PATH)/crypto/buffer/buf_err.c
|
||||
$(OPENSSL_PATH)/crypto/buffer/buffer.c
|
||||
$(OPENSSL_PATH)/crypto/cmac/cm_ameth.c
|
||||
$(OPENSSL_PATH)/crypto/cmac/cm_pmeth.c
|
||||
$(OPENSSL_PATH)/crypto/cmac/cmac.c
|
||||
$(OPENSSL_PATH)/crypto/comp/c_zlib.c
|
||||
$(OPENSSL_PATH)/crypto/comp/comp_err.c
|
||||
$(OPENSSL_PATH)/crypto/comp/comp_lib.c
|
||||
$(OPENSSL_PATH)/crypto/conf/conf_api.c
|
||||
$(OPENSSL_PATH)/crypto/conf/conf_def.c
|
||||
$(OPENSSL_PATH)/crypto/conf/conf_err.c
|
||||
$(OPENSSL_PATH)/crypto/conf/conf_lib.c
|
||||
$(OPENSSL_PATH)/crypto/conf/conf_mall.c
|
||||
$(OPENSSL_PATH)/crypto/conf/conf_mod.c
|
||||
$(OPENSSL_PATH)/crypto/conf/conf_sap.c
|
||||
$(OPENSSL_PATH)/crypto/conf/conf_ssl.c
|
||||
$(OPENSSL_PATH)/crypto/cpt_err.c
|
||||
$(OPENSSL_PATH)/crypto/cryptlib.c
|
||||
$(OPENSSL_PATH)/crypto/ctype.c
|
||||
$(OPENSSL_PATH)/crypto/cversion.c
|
||||
$(OPENSSL_PATH)/crypto/dh/dh_ameth.c
|
||||
$(OPENSSL_PATH)/crypto/dh/dh_asn1.c
|
||||
$(OPENSSL_PATH)/crypto/dh/dh_check.c
|
||||
$(OPENSSL_PATH)/crypto/dh/dh_depr.c
|
||||
$(OPENSSL_PATH)/crypto/dh/dh_err.c
|
||||
$(OPENSSL_PATH)/crypto/dh/dh_gen.c
|
||||
$(OPENSSL_PATH)/crypto/dh/dh_kdf.c
|
||||
$(OPENSSL_PATH)/crypto/dh/dh_key.c
|
||||
$(OPENSSL_PATH)/crypto/dh/dh_lib.c
|
||||
$(OPENSSL_PATH)/crypto/dh/dh_meth.c
|
||||
$(OPENSSL_PATH)/crypto/dh/dh_pmeth.c
|
||||
$(OPENSSL_PATH)/crypto/dh/dh_prn.c
|
||||
$(OPENSSL_PATH)/crypto/dh/dh_rfc5114.c
|
||||
$(OPENSSL_PATH)/crypto/dh/dh_rfc7919.c
|
||||
$(OPENSSL_PATH)/crypto/dso/dso_dl.c
|
||||
$(OPENSSL_PATH)/crypto/dso/dso_dlfcn.c
|
||||
$(OPENSSL_PATH)/crypto/dso/dso_err.c
|
||||
$(OPENSSL_PATH)/crypto/dso/dso_lib.c
|
||||
$(OPENSSL_PATH)/crypto/dso/dso_openssl.c
|
||||
$(OPENSSL_PATH)/crypto/dso/dso_vms.c
|
||||
$(OPENSSL_PATH)/crypto/dso/dso_win32.c
|
||||
$(OPENSSL_PATH)/crypto/ebcdic.c
|
||||
$(OPENSSL_PATH)/crypto/err/err.c
|
||||
$(OPENSSL_PATH)/crypto/err/err_prn.c
|
||||
$(OPENSSL_PATH)/crypto/evp/bio_b64.c
|
||||
$(OPENSSL_PATH)/crypto/evp/bio_enc.c
|
||||
$(OPENSSL_PATH)/crypto/evp/bio_md.c
|
||||
$(OPENSSL_PATH)/crypto/evp/bio_ok.c
|
||||
$(OPENSSL_PATH)/crypto/evp/c_allc.c
|
||||
$(OPENSSL_PATH)/crypto/evp/c_alld.c
|
||||
$(OPENSSL_PATH)/crypto/evp/cmeth_lib.c
|
||||
$(OPENSSL_PATH)/crypto/evp/digest.c
|
||||
$(OPENSSL_PATH)/crypto/evp/e_aes.c
|
||||
$(OPENSSL_PATH)/crypto/evp/e_aes_cbc_hmac_sha1.c
|
||||
$(OPENSSL_PATH)/crypto/evp/e_aes_cbc_hmac_sha256.c
|
||||
$(OPENSSL_PATH)/crypto/evp/e_aria.c
|
||||
$(OPENSSL_PATH)/crypto/evp/e_bf.c
|
||||
$(OPENSSL_PATH)/crypto/evp/e_camellia.c
|
||||
$(OPENSSL_PATH)/crypto/evp/e_cast.c
|
||||
$(OPENSSL_PATH)/crypto/evp/e_chacha20_poly1305.c
|
||||
$(OPENSSL_PATH)/crypto/evp/e_des.c
|
||||
$(OPENSSL_PATH)/crypto/evp/e_des3.c
|
||||
$(OPENSSL_PATH)/crypto/evp/e_idea.c
|
||||
$(OPENSSL_PATH)/crypto/evp/e_null.c
|
||||
$(OPENSSL_PATH)/crypto/evp/e_old.c
|
||||
$(OPENSSL_PATH)/crypto/evp/e_rc2.c
|
||||
$(OPENSSL_PATH)/crypto/evp/e_rc4.c
|
||||
$(OPENSSL_PATH)/crypto/evp/e_rc4_hmac_md5.c
|
||||
$(OPENSSL_PATH)/crypto/evp/e_rc5.c
|
||||
$(OPENSSL_PATH)/crypto/evp/e_seed.c
|
||||
$(OPENSSL_PATH)/crypto/evp/e_sm4.c
|
||||
$(OPENSSL_PATH)/crypto/evp/e_xcbc_d.c
|
||||
$(OPENSSL_PATH)/crypto/evp/encode.c
|
||||
$(OPENSSL_PATH)/crypto/evp/evp_cnf.c
|
||||
$(OPENSSL_PATH)/crypto/evp/evp_enc.c
|
||||
$(OPENSSL_PATH)/crypto/evp/evp_err.c
|
||||
$(OPENSSL_PATH)/crypto/evp/evp_key.c
|
||||
$(OPENSSL_PATH)/crypto/evp/evp_lib.c
|
||||
$(OPENSSL_PATH)/crypto/evp/evp_pbe.c
|
||||
$(OPENSSL_PATH)/crypto/evp/evp_pkey.c
|
||||
$(OPENSSL_PATH)/crypto/evp/m_md2.c
|
||||
$(OPENSSL_PATH)/crypto/evp/m_md4.c
|
||||
$(OPENSSL_PATH)/crypto/evp/m_md5.c
|
||||
$(OPENSSL_PATH)/crypto/evp/m_md5_sha1.c
|
||||
$(OPENSSL_PATH)/crypto/evp/m_mdc2.c
|
||||
$(OPENSSL_PATH)/crypto/evp/m_null.c
|
||||
$(OPENSSL_PATH)/crypto/evp/m_ripemd.c
|
||||
$(OPENSSL_PATH)/crypto/evp/m_sha1.c
|
||||
$(OPENSSL_PATH)/crypto/evp/m_sha3.c
|
||||
$(OPENSSL_PATH)/crypto/evp/m_sigver.c
|
||||
$(OPENSSL_PATH)/crypto/evp/m_wp.c
|
||||
$(OPENSSL_PATH)/crypto/evp/names.c
|
||||
$(OPENSSL_PATH)/crypto/evp/p5_crpt.c
|
||||
$(OPENSSL_PATH)/crypto/evp/p5_crpt2.c
|
||||
$(OPENSSL_PATH)/crypto/evp/p_dec.c
|
||||
$(OPENSSL_PATH)/crypto/evp/p_enc.c
|
||||
$(OPENSSL_PATH)/crypto/evp/p_lib.c
|
||||
$(OPENSSL_PATH)/crypto/evp/p_open.c
|
||||
$(OPENSSL_PATH)/crypto/evp/p_seal.c
|
||||
$(OPENSSL_PATH)/crypto/evp/p_sign.c
|
||||
$(OPENSSL_PATH)/crypto/evp/p_verify.c
|
||||
$(OPENSSL_PATH)/crypto/evp/pbe_scrypt.c
|
||||
$(OPENSSL_PATH)/crypto/evp/pmeth_fn.c
|
||||
$(OPENSSL_PATH)/crypto/evp/pmeth_gn.c
|
||||
$(OPENSSL_PATH)/crypto/evp/pmeth_lib.c
|
||||
$(OPENSSL_PATH)/crypto/ex_data.c
|
||||
$(OPENSSL_PATH)/crypto/getenv.c
|
||||
$(OPENSSL_PATH)/crypto/hmac/hm_ameth.c
|
||||
$(OPENSSL_PATH)/crypto/hmac/hm_pmeth.c
|
||||
$(OPENSSL_PATH)/crypto/hmac/hmac.c
|
||||
$(OPENSSL_PATH)/crypto/init.c
|
||||
$(OPENSSL_PATH)/crypto/kdf/hkdf.c
|
||||
$(OPENSSL_PATH)/crypto/kdf/kdf_err.c
|
||||
$(OPENSSL_PATH)/crypto/kdf/scrypt.c
|
||||
$(OPENSSL_PATH)/crypto/kdf/tls1_prf.c
|
||||
$(OPENSSL_PATH)/crypto/lhash/lh_stats.c
|
||||
$(OPENSSL_PATH)/crypto/lhash/lhash.c
|
||||
$(OPENSSL_PATH)/crypto/md5/md5_dgst.c
|
||||
$(OPENSSL_PATH)/crypto/md5/md5_one.c
|
||||
$(OPENSSL_PATH)/crypto/mem.c
|
||||
$(OPENSSL_PATH)/crypto/mem_dbg.c
|
||||
$(OPENSSL_PATH)/crypto/mem_sec.c
|
||||
$(OPENSSL_PATH)/crypto/modes/cbc128.c
|
||||
$(OPENSSL_PATH)/crypto/modes/ccm128.c
|
||||
$(OPENSSL_PATH)/crypto/modes/cfb128.c
|
||||
$(OPENSSL_PATH)/crypto/modes/ctr128.c
|
||||
$(OPENSSL_PATH)/crypto/modes/cts128.c
|
||||
$(OPENSSL_PATH)/crypto/modes/gcm128.c
|
||||
$(OPENSSL_PATH)/crypto/modes/ocb128.c
|
||||
$(OPENSSL_PATH)/crypto/modes/ofb128.c
|
||||
$(OPENSSL_PATH)/crypto/modes/wrap128.c
|
||||
$(OPENSSL_PATH)/crypto/modes/xts128.c
|
||||
$(OPENSSL_PATH)/crypto/o_dir.c
|
||||
$(OPENSSL_PATH)/crypto/o_fips.c
|
||||
$(OPENSSL_PATH)/crypto/o_fopen.c
|
||||
$(OPENSSL_PATH)/crypto/o_init.c
|
||||
$(OPENSSL_PATH)/crypto/o_str.c
|
||||
$(OPENSSL_PATH)/crypto/o_time.c
|
||||
$(OPENSSL_PATH)/crypto/objects/o_names.c
|
||||
$(OPENSSL_PATH)/crypto/objects/obj_dat.c
|
||||
$(OPENSSL_PATH)/crypto/objects/obj_err.c
|
||||
$(OPENSSL_PATH)/crypto/objects/obj_lib.c
|
||||
$(OPENSSL_PATH)/crypto/objects/obj_xref.c
|
||||
$(OPENSSL_PATH)/crypto/ocsp/ocsp_asn.c
|
||||
$(OPENSSL_PATH)/crypto/ocsp/ocsp_cl.c
|
||||
$(OPENSSL_PATH)/crypto/ocsp/ocsp_err.c
|
||||
$(OPENSSL_PATH)/crypto/ocsp/ocsp_ext.c
|
||||
$(OPENSSL_PATH)/crypto/ocsp/ocsp_ht.c
|
||||
$(OPENSSL_PATH)/crypto/ocsp/ocsp_lib.c
|
||||
$(OPENSSL_PATH)/crypto/ocsp/ocsp_prn.c
|
||||
$(OPENSSL_PATH)/crypto/ocsp/ocsp_srv.c
|
||||
$(OPENSSL_PATH)/crypto/ocsp/ocsp_vfy.c
|
||||
$(OPENSSL_PATH)/crypto/ocsp/v3_ocsp.c
|
||||
$(OPENSSL_PATH)/crypto/pem/pem_all.c
|
||||
$(OPENSSL_PATH)/crypto/pem/pem_err.c
|
||||
$(OPENSSL_PATH)/crypto/pem/pem_info.c
|
||||
$(OPENSSL_PATH)/crypto/pem/pem_lib.c
|
||||
$(OPENSSL_PATH)/crypto/pem/pem_oth.c
|
||||
$(OPENSSL_PATH)/crypto/pem/pem_pk8.c
|
||||
$(OPENSSL_PATH)/crypto/pem/pem_pkey.c
|
||||
$(OPENSSL_PATH)/crypto/pem/pem_sign.c
|
||||
$(OPENSSL_PATH)/crypto/pem/pem_x509.c
|
||||
$(OPENSSL_PATH)/crypto/pem/pem_xaux.c
|
||||
$(OPENSSL_PATH)/crypto/pem/pvkfmt.c
|
||||
$(OPENSSL_PATH)/crypto/pkcs12/p12_add.c
|
||||
$(OPENSSL_PATH)/crypto/pkcs12/p12_asn.c
|
||||
$(OPENSSL_PATH)/crypto/pkcs12/p12_attr.c
|
||||
$(OPENSSL_PATH)/crypto/pkcs12/p12_crpt.c
|
||||
$(OPENSSL_PATH)/crypto/pkcs12/p12_crt.c
|
||||
$(OPENSSL_PATH)/crypto/pkcs12/p12_decr.c
|
||||
$(OPENSSL_PATH)/crypto/pkcs12/p12_init.c
|
||||
$(OPENSSL_PATH)/crypto/pkcs12/p12_key.c
|
||||
$(OPENSSL_PATH)/crypto/pkcs12/p12_kiss.c
|
||||
$(OPENSSL_PATH)/crypto/pkcs12/p12_mutl.c
|
||||
$(OPENSSL_PATH)/crypto/pkcs12/p12_npas.c
|
||||
$(OPENSSL_PATH)/crypto/pkcs12/p12_p8d.c
|
||||
$(OPENSSL_PATH)/crypto/pkcs12/p12_p8e.c
|
||||
$(OPENSSL_PATH)/crypto/pkcs12/p12_sbag.c
|
||||
$(OPENSSL_PATH)/crypto/pkcs12/p12_utl.c
|
||||
$(OPENSSL_PATH)/crypto/pkcs12/pk12err.c
|
||||
$(OPENSSL_PATH)/crypto/pkcs7/bio_pk7.c
|
||||
$(OPENSSL_PATH)/crypto/pkcs7/pk7_asn1.c
|
||||
$(OPENSSL_PATH)/crypto/pkcs7/pk7_attr.c
|
||||
$(OPENSSL_PATH)/crypto/pkcs7/pk7_doit.c
|
||||
$(OPENSSL_PATH)/crypto/pkcs7/pk7_lib.c
|
||||
$(OPENSSL_PATH)/crypto/pkcs7/pk7_mime.c
|
||||
$(OPENSSL_PATH)/crypto/pkcs7/pk7_smime.c
|
||||
$(OPENSSL_PATH)/crypto/pkcs7/pkcs7err.c
|
||||
$(OPENSSL_PATH)/crypto/rand/drbg_ctr.c
|
||||
$(OPENSSL_PATH)/crypto/rand/drbg_lib.c
|
||||
$(OPENSSL_PATH)/crypto/rand/rand_egd.c
|
||||
$(OPENSSL_PATH)/crypto/rand/rand_err.c
|
||||
$(OPENSSL_PATH)/crypto/rand/rand_lib.c
|
||||
$(OPENSSL_PATH)/crypto/rand/rand_unix.c
|
||||
$(OPENSSL_PATH)/crypto/rand/rand_vms.c
|
||||
$(OPENSSL_PATH)/crypto/rand/rand_win.c
|
||||
$(OPENSSL_PATH)/crypto/rsa/rsa_ameth.c
|
||||
$(OPENSSL_PATH)/crypto/rsa/rsa_asn1.c
|
||||
$(OPENSSL_PATH)/crypto/rsa/rsa_chk.c
|
||||
$(OPENSSL_PATH)/crypto/rsa/rsa_crpt.c
|
||||
$(OPENSSL_PATH)/crypto/rsa/rsa_depr.c
|
||||
$(OPENSSL_PATH)/crypto/rsa/rsa_err.c
|
||||
$(OPENSSL_PATH)/crypto/rsa/rsa_gen.c
|
||||
$(OPENSSL_PATH)/crypto/rsa/rsa_lib.c
|
||||
$(OPENSSL_PATH)/crypto/rsa/rsa_meth.c
|
||||
$(OPENSSL_PATH)/crypto/rsa/rsa_mp.c
|
||||
$(OPENSSL_PATH)/crypto/rsa/rsa_none.c
|
||||
$(OPENSSL_PATH)/crypto/rsa/rsa_oaep.c
|
||||
$(OPENSSL_PATH)/crypto/rsa/rsa_ossl.c
|
||||
$(OPENSSL_PATH)/crypto/rsa/rsa_pk1.c
|
||||
$(OPENSSL_PATH)/crypto/rsa/rsa_pmeth.c
|
||||
$(OPENSSL_PATH)/crypto/rsa/rsa_prn.c
|
||||
$(OPENSSL_PATH)/crypto/rsa/rsa_pss.c
|
||||
$(OPENSSL_PATH)/crypto/rsa/rsa_saos.c
|
||||
$(OPENSSL_PATH)/crypto/rsa/rsa_sign.c
|
||||
$(OPENSSL_PATH)/crypto/rsa/rsa_ssl.c
|
||||
$(OPENSSL_PATH)/crypto/rsa/rsa_x931.c
|
||||
$(OPENSSL_PATH)/crypto/rsa/rsa_x931g.c
|
||||
$(OPENSSL_PATH)/crypto/sha/keccak1600.c
|
||||
$(OPENSSL_PATH)/crypto/sha/sha1_one.c
|
||||
$(OPENSSL_PATH)/crypto/sha/sha1dgst.c
|
||||
$(OPENSSL_PATH)/crypto/sha/sha256.c
|
||||
$(OPENSSL_PATH)/crypto/sha/sha512.c
|
||||
$(OPENSSL_PATH)/crypto/siphash/siphash.c
|
||||
$(OPENSSL_PATH)/crypto/siphash/siphash_ameth.c
|
||||
$(OPENSSL_PATH)/crypto/siphash/siphash_pmeth.c
|
||||
$(OPENSSL_PATH)/crypto/sm3/m_sm3.c
|
||||
$(OPENSSL_PATH)/crypto/sm3/sm3.c
|
||||
$(OPENSSL_PATH)/crypto/sm4/sm4.c
|
||||
$(OPENSSL_PATH)/crypto/stack/stack.c
|
||||
$(OPENSSL_PATH)/crypto/threads_none.c
|
||||
$(OPENSSL_PATH)/crypto/threads_pthread.c
|
||||
$(OPENSSL_PATH)/crypto/threads_win.c
|
||||
$(OPENSSL_PATH)/crypto/txt_db/txt_db.c
|
||||
$(OPENSSL_PATH)/crypto/ui/ui_err.c
|
||||
$(OPENSSL_PATH)/crypto/ui/ui_lib.c
|
||||
$(OPENSSL_PATH)/crypto/ui/ui_null.c
|
||||
$(OPENSSL_PATH)/crypto/ui/ui_openssl.c
|
||||
$(OPENSSL_PATH)/crypto/ui/ui_util.c
|
||||
$(OPENSSL_PATH)/crypto/uid.c
|
||||
$(OPENSSL_PATH)/crypto/x509/by_dir.c
|
||||
$(OPENSSL_PATH)/crypto/x509/by_file.c
|
||||
$(OPENSSL_PATH)/crypto/x509/t_crl.c
|
||||
$(OPENSSL_PATH)/crypto/x509/t_req.c
|
||||
$(OPENSSL_PATH)/crypto/x509/t_x509.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x509_att.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x509_cmp.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x509_d2.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x509_def.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x509_err.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x509_ext.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x509_lu.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x509_meth.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x509_obj.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x509_r2x.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x509_req.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x509_set.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x509_trs.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x509_txt.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x509_v3.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x509_vfy.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x509_vpm.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x509cset.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x509name.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x509rset.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x509spki.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x509type.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x_all.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x_attrib.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x_crl.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x_exten.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x_name.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x_pubkey.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x_req.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x_x509.c
|
||||
$(OPENSSL_PATH)/crypto/x509/x_x509a.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/pcy_cache.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/pcy_data.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/pcy_lib.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/pcy_map.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/pcy_node.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/pcy_tree.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_addr.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_admis.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_akey.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_akeya.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_alt.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_asid.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_bcons.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_bitst.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_conf.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_cpols.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_crld.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_enum.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_extku.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_genn.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_ia5.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_info.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_int.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_lib.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_ncons.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_pci.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_pcia.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_pcons.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_pku.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_pmaps.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_prn.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_purp.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_skey.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_sxnet.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_tlsf.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_utl.c
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3err.c
|
||||
$(OPENSSL_PATH)/crypto/arm_arch.h
|
||||
$(OPENSSL_PATH)/crypto/mips_arch.h
|
||||
$(OPENSSL_PATH)/crypto/ppc_arch.h
|
||||
$(OPENSSL_PATH)/crypto/s390x_arch.h
|
||||
$(OPENSSL_PATH)/crypto/sparc_arch.h
|
||||
$(OPENSSL_PATH)/crypto/vms_rms.h
|
||||
$(OPENSSL_PATH)/crypto/aes/aes_local.h
|
||||
$(OPENSSL_PATH)/crypto/asn1/asn1_item_list.h
|
||||
$(OPENSSL_PATH)/crypto/asn1/asn1_local.h
|
||||
$(OPENSSL_PATH)/crypto/asn1/charmap.h
|
||||
$(OPENSSL_PATH)/crypto/asn1/standard_methods.h
|
||||
$(OPENSSL_PATH)/crypto/asn1/tbl_standard.h
|
||||
$(OPENSSL_PATH)/crypto/async/async_local.h
|
||||
$(OPENSSL_PATH)/crypto/async/arch/async_null.h
|
||||
$(OPENSSL_PATH)/crypto/async/arch/async_posix.h
|
||||
$(OPENSSL_PATH)/crypto/async/arch/async_win.h
|
||||
$(OPENSSL_PATH)/crypto/bio/bio_local.h
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_local.h
|
||||
$(OPENSSL_PATH)/crypto/bn/bn_prime.h
|
||||
$(OPENSSL_PATH)/crypto/bn/rsaz_exp.h
|
||||
$(OPENSSL_PATH)/crypto/comp/comp_local.h
|
||||
$(OPENSSL_PATH)/crypto/conf/conf_def.h
|
||||
$(OPENSSL_PATH)/crypto/conf/conf_local.h
|
||||
$(OPENSSL_PATH)/crypto/dh/dh_local.h
|
||||
$(OPENSSL_PATH)/crypto/dso/dso_local.h
|
||||
$(OPENSSL_PATH)/crypto/evp/evp_local.h
|
||||
$(OPENSSL_PATH)/crypto/hmac/hmac_local.h
|
||||
$(OPENSSL_PATH)/crypto/lhash/lhash_local.h
|
||||
$(OPENSSL_PATH)/crypto/md5/md5_local.h
|
||||
$(OPENSSL_PATH)/crypto/modes/modes_local.h
|
||||
$(OPENSSL_PATH)/crypto/objects/obj_dat.h
|
||||
$(OPENSSL_PATH)/crypto/objects/obj_local.h
|
||||
$(OPENSSL_PATH)/crypto/objects/obj_xref.h
|
||||
$(OPENSSL_PATH)/crypto/ocsp/ocsp_local.h
|
||||
$(OPENSSL_PATH)/crypto/pkcs12/p12_local.h
|
||||
$(OPENSSL_PATH)/crypto/rand/rand_local.h
|
||||
$(OPENSSL_PATH)/crypto/rsa/rsa_local.h
|
||||
$(OPENSSL_PATH)/crypto/sha/sha_local.h
|
||||
$(OPENSSL_PATH)/crypto/siphash/siphash_local.h
|
||||
$(OPENSSL_PATH)/crypto/sm3/sm3_local.h
|
||||
$(OPENSSL_PATH)/crypto/store/store_local.h
|
||||
$(OPENSSL_PATH)/crypto/ui/ui_local.h
|
||||
$(OPENSSL_PATH)/crypto/x509/x509_local.h
|
||||
$(OPENSSL_PATH)/crypto/x509v3/ext_dat.h
|
||||
$(OPENSSL_PATH)/crypto/x509v3/pcy_local.h
|
||||
$(OPENSSL_PATH)/crypto/x509v3/standard_exts.h
|
||||
$(OPENSSL_PATH)/crypto/x509v3/v3_admis.h
|
||||
$(OPENSSL_PATH)/ssl/bio_ssl.c
|
||||
$(OPENSSL_PATH)/ssl/d1_lib.c
|
||||
$(OPENSSL_PATH)/ssl/d1_msg.c
|
||||
$(OPENSSL_PATH)/ssl/d1_srtp.c
|
||||
$(OPENSSL_PATH)/ssl/methods.c
|
||||
$(OPENSSL_PATH)/ssl/packet.c
|
||||
$(OPENSSL_PATH)/ssl/pqueue.c
|
||||
$(OPENSSL_PATH)/ssl/record/dtls1_bitmap.c
|
||||
$(OPENSSL_PATH)/ssl/record/rec_layer_d1.c
|
||||
$(OPENSSL_PATH)/ssl/record/rec_layer_s3.c
|
||||
$(OPENSSL_PATH)/ssl/record/ssl3_buffer.c
|
||||
$(OPENSSL_PATH)/ssl/record/ssl3_record.c
|
||||
$(OPENSSL_PATH)/ssl/record/ssl3_record_tls13.c
|
||||
$(OPENSSL_PATH)/ssl/s3_cbc.c
|
||||
$(OPENSSL_PATH)/ssl/s3_enc.c
|
||||
$(OPENSSL_PATH)/ssl/s3_lib.c
|
||||
$(OPENSSL_PATH)/ssl/s3_msg.c
|
||||
$(OPENSSL_PATH)/ssl/ssl_asn1.c
|
||||
$(OPENSSL_PATH)/ssl/ssl_cert.c
|
||||
$(OPENSSL_PATH)/ssl/ssl_ciph.c
|
||||
$(OPENSSL_PATH)/ssl/ssl_conf.c
|
||||
$(OPENSSL_PATH)/ssl/ssl_err.c
|
||||
$(OPENSSL_PATH)/ssl/ssl_init.c
|
||||
$(OPENSSL_PATH)/ssl/ssl_lib.c
|
||||
$(OPENSSL_PATH)/ssl/ssl_mcnf.c
|
||||
$(OPENSSL_PATH)/ssl/ssl_rsa.c
|
||||
$(OPENSSL_PATH)/ssl/ssl_sess.c
|
||||
$(OPENSSL_PATH)/ssl/ssl_stat.c
|
||||
$(OPENSSL_PATH)/ssl/ssl_txt.c
|
||||
$(OPENSSL_PATH)/ssl/ssl_utst.c
|
||||
$(OPENSSL_PATH)/ssl/statem/extensions.c
|
||||
$(OPENSSL_PATH)/ssl/statem/extensions_clnt.c
|
||||
$(OPENSSL_PATH)/ssl/statem/extensions_cust.c
|
||||
$(OPENSSL_PATH)/ssl/statem/extensions_srvr.c
|
||||
$(OPENSSL_PATH)/ssl/statem/statem.c
|
||||
$(OPENSSL_PATH)/ssl/statem/statem_clnt.c
|
||||
$(OPENSSL_PATH)/ssl/statem/statem_dtls.c
|
||||
$(OPENSSL_PATH)/ssl/statem/statem_lib.c
|
||||
$(OPENSSL_PATH)/ssl/statem/statem_srvr.c
|
||||
$(OPENSSL_PATH)/ssl/t1_enc.c
|
||||
$(OPENSSL_PATH)/ssl/t1_lib.c
|
||||
$(OPENSSL_PATH)/ssl/t1_trce.c
|
||||
$(OPENSSL_PATH)/ssl/tls13_enc.c
|
||||
$(OPENSSL_PATH)/ssl/tls_srp.c
|
||||
$(OPENSSL_PATH)/ssl/packet_local.h
|
||||
$(OPENSSL_PATH)/ssl/ssl_cert_table.h
|
||||
$(OPENSSL_PATH)/ssl/ssl_local.h
|
||||
$(OPENSSL_PATH)/ssl/record/record.h
|
||||
$(OPENSSL_PATH)/ssl/record/record_local.h
|
||||
$(OPENSSL_PATH)/ssl/statem/statem.h
|
||||
$(OPENSSL_PATH)/ssl/statem/statem_local.h
|
||||
# Autogenerated files list ends here
|
||||
buildinf.h
|
||||
ossl_store.c
|
||||
rand_pool.c
|
||||
X64/ApiHooks.c
|
||||
|
||||
[Packages]
|
||||
MdePkg/MdePkg.dec
|
||||
CryptoPkg/CryptoPkg.dec
|
||||
|
||||
[LibraryClasses]
|
||||
BaseLib
|
||||
DebugLib
|
||||
RngLib
|
||||
PrintLib
|
||||
|
||||
[BuildOptions]
|
||||
#
|
||||
# Disables the following Visual Studio compiler warnings brought by openssl source,
|
||||
# so we do not break the build with /WX option:
|
||||
# C4090: 'function' : different 'const' qualifiers
|
||||
# C4132: 'object' : const object should be initialized (tls13_enc.c)
|
||||
# C4210: nonstandard extension used: function given file scope
|
||||
# C4244: conversion from type1 to type2, possible loss of data
|
||||
# C4245: conversion from type1 to type2, signed/unsigned mismatch
|
||||
# C4267: conversion from size_t to type, possible loss of data
|
||||
# C4306: 'identifier' : conversion from 'type1' to 'type2' of greater size
|
||||
# C4310: cast truncates constant value
|
||||
# C4389: 'operator' : signed/unsigned mismatch (xxxx)
|
||||
# C4700: uninitialized local variable 'name' used. (conf_sap.c(71))
|
||||
# C4702: unreachable code
|
||||
# C4706: assignment within conditional expression
|
||||
# C4819: The file contains a character that cannot be represented in the current code page
|
||||
#
|
||||
MSFT:*_*_X64_CC_FLAGS = -U_WIN32 -U_WIN64 -U_MSC_VER $(OPENSSL_FLAGS) $(OPENSSL_FLAGS_CONFIG) /wd4090 /wd4132 /wd4210 /wd4244 /wd4245 /wd4267 /wd4306 /wd4310 /wd4700 /wd4389 /wd4702 /wd4706 /wd4819
|
||||
|
||||
INTEL:*_*_X64_CC_FLAGS = -U_WIN32 -U_WIN64 -U_MSC_VER -U__ICC $(OPENSSL_FLAGS) $(OPENSSL_FLAGS_CONFIG) /w
|
||||
|
||||
#
|
||||
# Suppress the following build warnings in openssl so we don't break the build with -Werror
|
||||
# -Werror=maybe-uninitialized: there exist some other paths for which the variable is not initialized.
|
||||
# -Werror=format: Check calls to printf and scanf, etc., to make sure that the arguments supplied have
|
||||
# types appropriate to the format string specified.
|
||||
# -Werror=unused-but-set-variable: Warn whenever a local variable is assigned to, but otherwise unused (aside from its declaration).
|
||||
#
|
||||
GCC:*_*_X64_CC_FLAGS = -UWIN32 -U_WIN32 -U_WIN64 $(OPENSSL_FLAGS) $(OPENSSL_FLAGS_CONFIG) -Wno-error=maybe-uninitialized -Wno-error=format -Wno-format -Wno-error=unused-but-set-variable -DNO_MSABI_VA_FUNCS
|
||||
|
||||
# suppress the following warnings in openssl so we don't break the build with warnings-as-errors:
|
||||
# 1295: Deprecated declaration <entity> - give arg types
|
||||
# 550: <entity> was set but never used
|
||||
# 1293: assignment in condition
|
||||
# 111: statement is unreachable (invariably "break;" after "return X;" in case statement)
|
||||
# 68: integer conversion resulted in a change of sign ("if (Status == -1)")
|
||||
# 177: <entity> was declared but never referenced
|
||||
# 223: function <entity> declared implicitly
|
||||
# 144: a value of type <type> cannot be used to initialize an entity of type <type>
|
||||
# 513: a value of type <type> cannot be assigned to an entity of type <type>
|
||||
# 188: enumerated type mixed with another type (i.e. passing an integer as an enum without a cast)
|
||||
# 1296: Extended constant initialiser used
|
||||
# 128: loop is not reachable - may be emitted inappropriately if code follows a conditional return
|
||||
# from the function that evaluates to true at compile time
|
||||
# 546: transfer of control bypasses initialization - may be emitted inappropriately if the uninitialized
|
||||
# variable is never referenced after the jump
|
||||
# 1: ignore "#1-D: last line of file ends without a newline"
|
||||
# 3017: <entity> may be used before being set (NOTE: This was fixed in OpenSSL 1.1 HEAD with
|
||||
# commit d9b8b89bec4480de3a10bdaf9425db371c19145b, and can be dropped then.)
|
||||
XCODE:*_*_X64_CC_FLAGS = -mmmx -msse -U_WIN32 -U_WIN64 $(OPENSSL_FLAGS) $(OPENSSL_FLAGS_CONFIG) -w -std=c99 -Wno-error=uninitialized
|
30
CryptoPkg/Library/OpensslLib/UefiAsm.conf
Normal file
30
CryptoPkg/Library/OpensslLib/UefiAsm.conf
Normal file
@@ -0,0 +1,30 @@
|
||||
## -*- mode: perl; -*-
|
||||
# UEFI assembly openssl configuration targets.
|
||||
#
|
||||
# Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>
|
||||
#
|
||||
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
#
|
||||
##
|
||||
|
||||
my %targets = (
|
||||
#### UEFI
|
||||
"UEFI-x86_64" => {
|
||||
perlasm_scheme => "nasm",
|
||||
# inherit_from => [ "UEFI", asm("x86_64_asm") ],
|
||||
inherit_from => [ "UEFI" ],
|
||||
cpuid_asm_src => "x86_64cpuid.s",
|
||||
aes_asm_src => "aes_core.c aes_cbc.c vpaes-x86_64.s aesni-x86_64.s aesni-sha1-x86_64.s aesni-sha256-x86_64.s aesni-mb-x86_64.s",
|
||||
sha1_asm_src => "sha1-x86_64.s sha256-x86_64.s sha512-x86_64.s sha1-mb-x86_64.s sha256-mb-x86_64.s",
|
||||
modes_asm_src => "ghash-x86_64.s aesni-gcm-x86_64.s",
|
||||
},
|
||||
"UEFI-x86_64-GCC" => {
|
||||
perlasm_scheme => "elf",
|
||||
# inherit_from => [ "UEFI", asm("x86_64_asm") ],
|
||||
inherit_from => [ "UEFI" ],
|
||||
cpuid_asm_src => "x86_64cpuid.s",
|
||||
aes_asm_src => "aes_core.c aes_cbc.c vpaes-x86_64.s aesni-x86_64.s aesni-sha1-x86_64.s aesni-sha256-x86_64.s aesni-mb-x86_64.s",
|
||||
sha1_asm_src => "sha1-x86_64.s sha256-x86_64.s sha512-x86_64.s sha1-mb-x86_64.s sha256-mb-x86_64.s",
|
||||
modes_asm_src => "ghash-x86_64.s aesni-gcm-x86_64.s",
|
||||
},
|
||||
);
|
22
CryptoPkg/Library/OpensslLib/X64/ApiHooks.c
Normal file
22
CryptoPkg/Library/OpensslLib/X64/ApiHooks.c
Normal file
@@ -0,0 +1,22 @@
|
||||
/** @file
|
||||
OpenSSL Library API hooks.
|
||||
|
||||
Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>
|
||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
|
||||
**/
|
||||
|
||||
#include <Uefi.h>
|
||||
|
||||
/**
|
||||
Stub function for win64 API call.
|
||||
|
||||
**/
|
||||
VOID *
|
||||
__imp_RtlVirtualUnwind (
|
||||
VOID * Args
|
||||
)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
732
CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-mb-x86_64.nasm
Normal file
732
CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-mb-x86_64.nasm
Normal file
@@ -0,0 +1,732 @@
|
||||
; WARNING: do not edit!
|
||||
; Generated from openssl/crypto/aes/asm/aesni-mb-x86_64.pl
|
||||
;
|
||||
; Copyright 2013-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
;
|
||||
; Licensed under the OpenSSL license (the "License"). You may not use
|
||||
; this file except in compliance with the License. You can obtain a copy
|
||||
; in the file LICENSE in the source distribution or at
|
||||
; https://www.openssl.org/source/license.html
|
||||
|
||||
default rel
|
||||
%define XMMWORD
|
||||
%define YMMWORD
|
||||
%define ZMMWORD
|
||||
section .text code align=64
|
||||
|
||||
|
||||
EXTERN OPENSSL_ia32cap_P
|
||||
|
||||
global aesni_multi_cbc_encrypt
|
||||
|
||||
ALIGN 32
|
||||
aesni_multi_cbc_encrypt:
|
||||
mov QWORD[8+rsp],rdi ;WIN64 prologue
|
||||
mov QWORD[16+rsp],rsi
|
||||
mov rax,rsp
|
||||
$L$SEH_begin_aesni_multi_cbc_encrypt:
|
||||
mov rdi,rcx
|
||||
mov rsi,rdx
|
||||
mov rdx,r8
|
||||
|
||||
|
||||
|
||||
mov rax,rsp
|
||||
|
||||
push rbx
|
||||
|
||||
push rbp
|
||||
|
||||
push r12
|
||||
|
||||
push r13
|
||||
|
||||
push r14
|
||||
|
||||
push r15
|
||||
|
||||
lea rsp,[((-168))+rsp]
|
||||
movaps XMMWORD[rsp],xmm6
|
||||
movaps XMMWORD[16+rsp],xmm7
|
||||
movaps XMMWORD[32+rsp],xmm8
|
||||
movaps XMMWORD[48+rsp],xmm9
|
||||
movaps XMMWORD[64+rsp],xmm10
|
||||
movaps XMMWORD[80+rsp],xmm11
|
||||
movaps XMMWORD[96+rsp],xmm12
|
||||
movaps XMMWORD[(-104)+rax],xmm13
|
||||
movaps XMMWORD[(-88)+rax],xmm14
|
||||
movaps XMMWORD[(-72)+rax],xmm15
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
sub rsp,48
|
||||
and rsp,-64
|
||||
mov QWORD[16+rsp],rax
|
||||
|
||||
|
||||
$L$enc4x_body:
|
||||
movdqu xmm12,XMMWORD[rsi]
|
||||
lea rsi,[120+rsi]
|
||||
lea rdi,[80+rdi]
|
||||
|
||||
$L$enc4x_loop_grande:
|
||||
mov DWORD[24+rsp],edx
|
||||
xor edx,edx
|
||||
mov ecx,DWORD[((-64))+rdi]
|
||||
mov r8,QWORD[((-80))+rdi]
|
||||
cmp ecx,edx
|
||||
mov r12,QWORD[((-72))+rdi]
|
||||
cmovg edx,ecx
|
||||
test ecx,ecx
|
||||
movdqu xmm2,XMMWORD[((-56))+rdi]
|
||||
mov DWORD[32+rsp],ecx
|
||||
cmovle r8,rsp
|
||||
mov ecx,DWORD[((-24))+rdi]
|
||||
mov r9,QWORD[((-40))+rdi]
|
||||
cmp ecx,edx
|
||||
mov r13,QWORD[((-32))+rdi]
|
||||
cmovg edx,ecx
|
||||
test ecx,ecx
|
||||
movdqu xmm3,XMMWORD[((-16))+rdi]
|
||||
mov DWORD[36+rsp],ecx
|
||||
cmovle r9,rsp
|
||||
mov ecx,DWORD[16+rdi]
|
||||
mov r10,QWORD[rdi]
|
||||
cmp ecx,edx
|
||||
mov r14,QWORD[8+rdi]
|
||||
cmovg edx,ecx
|
||||
test ecx,ecx
|
||||
movdqu xmm4,XMMWORD[24+rdi]
|
||||
mov DWORD[40+rsp],ecx
|
||||
cmovle r10,rsp
|
||||
mov ecx,DWORD[56+rdi]
|
||||
mov r11,QWORD[40+rdi]
|
||||
cmp ecx,edx
|
||||
mov r15,QWORD[48+rdi]
|
||||
cmovg edx,ecx
|
||||
test ecx,ecx
|
||||
movdqu xmm5,XMMWORD[64+rdi]
|
||||
mov DWORD[44+rsp],ecx
|
||||
cmovle r11,rsp
|
||||
test edx,edx
|
||||
jz NEAR $L$enc4x_done
|
||||
|
||||
movups xmm1,XMMWORD[((16-120))+rsi]
|
||||
pxor xmm2,xmm12
|
||||
movups xmm0,XMMWORD[((32-120))+rsi]
|
||||
pxor xmm3,xmm12
|
||||
mov eax,DWORD[((240-120))+rsi]
|
||||
pxor xmm4,xmm12
|
||||
movdqu xmm6,XMMWORD[r8]
|
||||
pxor xmm5,xmm12
|
||||
movdqu xmm7,XMMWORD[r9]
|
||||
pxor xmm2,xmm6
|
||||
movdqu xmm8,XMMWORD[r10]
|
||||
pxor xmm3,xmm7
|
||||
movdqu xmm9,XMMWORD[r11]
|
||||
pxor xmm4,xmm8
|
||||
pxor xmm5,xmm9
|
||||
movdqa xmm10,XMMWORD[32+rsp]
|
||||
xor rbx,rbx
|
||||
jmp NEAR $L$oop_enc4x
|
||||
|
||||
ALIGN 32
|
||||
$L$oop_enc4x:
|
||||
add rbx,16
|
||||
lea rbp,[16+rsp]
|
||||
mov ecx,1
|
||||
sub rbp,rbx
|
||||
|
||||
DB 102,15,56,220,209
|
||||
prefetcht0 [31+rbx*1+r8]
|
||||
prefetcht0 [31+rbx*1+r9]
|
||||
DB 102,15,56,220,217
|
||||
prefetcht0 [31+rbx*1+r10]
|
||||
prefetcht0 [31+rbx*1+r10]
|
||||
DB 102,15,56,220,225
|
||||
DB 102,15,56,220,233
|
||||
movups xmm1,XMMWORD[((48-120))+rsi]
|
||||
cmp ecx,DWORD[32+rsp]
|
||||
DB 102,15,56,220,208
|
||||
DB 102,15,56,220,216
|
||||
DB 102,15,56,220,224
|
||||
cmovge r8,rbp
|
||||
cmovg r12,rbp
|
||||
DB 102,15,56,220,232
|
||||
movups xmm0,XMMWORD[((-56))+rsi]
|
||||
cmp ecx,DWORD[36+rsp]
|
||||
DB 102,15,56,220,209
|
||||
DB 102,15,56,220,217
|
||||
DB 102,15,56,220,225
|
||||
cmovge r9,rbp
|
||||
cmovg r13,rbp
|
||||
DB 102,15,56,220,233
|
||||
movups xmm1,XMMWORD[((-40))+rsi]
|
||||
cmp ecx,DWORD[40+rsp]
|
||||
DB 102,15,56,220,208
|
||||
DB 102,15,56,220,216
|
||||
DB 102,15,56,220,224
|
||||
cmovge r10,rbp
|
||||
cmovg r14,rbp
|
||||
DB 102,15,56,220,232
|
||||
movups xmm0,XMMWORD[((-24))+rsi]
|
||||
cmp ecx,DWORD[44+rsp]
|
||||
DB 102,15,56,220,209
|
||||
DB 102,15,56,220,217
|
||||
DB 102,15,56,220,225
|
||||
cmovge r11,rbp
|
||||
cmovg r15,rbp
|
||||
DB 102,15,56,220,233
|
||||
movups xmm1,XMMWORD[((-8))+rsi]
|
||||
movdqa xmm11,xmm10
|
||||
DB 102,15,56,220,208
|
||||
prefetcht0 [15+rbx*1+r12]
|
||||
prefetcht0 [15+rbx*1+r13]
|
||||
DB 102,15,56,220,216
|
||||
prefetcht0 [15+rbx*1+r14]
|
||||
prefetcht0 [15+rbx*1+r15]
|
||||
DB 102,15,56,220,224
|
||||
DB 102,15,56,220,232
|
||||
movups xmm0,XMMWORD[((128-120))+rsi]
|
||||
pxor xmm12,xmm12
|
||||
|
||||
DB 102,15,56,220,209
|
||||
pcmpgtd xmm11,xmm12
|
||||
movdqu xmm12,XMMWORD[((-120))+rsi]
|
||||
DB 102,15,56,220,217
|
||||
paddd xmm10,xmm11
|
||||
movdqa XMMWORD[32+rsp],xmm10
|
||||
DB 102,15,56,220,225
|
||||
DB 102,15,56,220,233
|
||||
movups xmm1,XMMWORD[((144-120))+rsi]
|
||||
|
||||
cmp eax,11
|
||||
|
||||
DB 102,15,56,220,208
|
||||
DB 102,15,56,220,216
|
||||
DB 102,15,56,220,224
|
||||
DB 102,15,56,220,232
|
||||
movups xmm0,XMMWORD[((160-120))+rsi]
|
||||
|
||||
jb NEAR $L$enc4x_tail
|
||||
|
||||
DB 102,15,56,220,209
|
||||
DB 102,15,56,220,217
|
||||
DB 102,15,56,220,225
|
||||
DB 102,15,56,220,233
|
||||
movups xmm1,XMMWORD[((176-120))+rsi]
|
||||
|
||||
DB 102,15,56,220,208
|
||||
DB 102,15,56,220,216
|
||||
DB 102,15,56,220,224
|
||||
DB 102,15,56,220,232
|
||||
movups xmm0,XMMWORD[((192-120))+rsi]
|
||||
|
||||
je NEAR $L$enc4x_tail
|
||||
|
||||
DB 102,15,56,220,209
|
||||
DB 102,15,56,220,217
|
||||
DB 102,15,56,220,225
|
||||
DB 102,15,56,220,233
|
||||
movups xmm1,XMMWORD[((208-120))+rsi]
|
||||
|
||||
DB 102,15,56,220,208
|
||||
DB 102,15,56,220,216
|
||||
DB 102,15,56,220,224
|
||||
DB 102,15,56,220,232
|
||||
movups xmm0,XMMWORD[((224-120))+rsi]
|
||||
jmp NEAR $L$enc4x_tail
|
||||
|
||||
ALIGN 32
|
||||
$L$enc4x_tail:
|
||||
DB 102,15,56,220,209
|
||||
DB 102,15,56,220,217
|
||||
DB 102,15,56,220,225
|
||||
DB 102,15,56,220,233
|
||||
movdqu xmm6,XMMWORD[rbx*1+r8]
|
||||
movdqu xmm1,XMMWORD[((16-120))+rsi]
|
||||
|
||||
DB 102,15,56,221,208
|
||||
movdqu xmm7,XMMWORD[rbx*1+r9]
|
||||
pxor xmm6,xmm12
|
||||
DB 102,15,56,221,216
|
||||
movdqu xmm8,XMMWORD[rbx*1+r10]
|
||||
pxor xmm7,xmm12
|
||||
DB 102,15,56,221,224
|
||||
movdqu xmm9,XMMWORD[rbx*1+r11]
|
||||
pxor xmm8,xmm12
|
||||
DB 102,15,56,221,232
|
||||
movdqu xmm0,XMMWORD[((32-120))+rsi]
|
||||
pxor xmm9,xmm12
|
||||
|
||||
movups XMMWORD[(-16)+rbx*1+r12],xmm2
|
||||
pxor xmm2,xmm6
|
||||
movups XMMWORD[(-16)+rbx*1+r13],xmm3
|
||||
pxor xmm3,xmm7
|
||||
movups XMMWORD[(-16)+rbx*1+r14],xmm4
|
||||
pxor xmm4,xmm8
|
||||
movups XMMWORD[(-16)+rbx*1+r15],xmm5
|
||||
pxor xmm5,xmm9
|
||||
|
||||
dec edx
|
||||
jnz NEAR $L$oop_enc4x
|
||||
|
||||
mov rax,QWORD[16+rsp]
|
||||
|
||||
mov edx,DWORD[24+rsp]
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
lea rdi,[160+rdi]
|
||||
dec edx
|
||||
jnz NEAR $L$enc4x_loop_grande
|
||||
|
||||
$L$enc4x_done:
|
||||
movaps xmm6,XMMWORD[((-216))+rax]
|
||||
movaps xmm7,XMMWORD[((-200))+rax]
|
||||
movaps xmm8,XMMWORD[((-184))+rax]
|
||||
movaps xmm9,XMMWORD[((-168))+rax]
|
||||
movaps xmm10,XMMWORD[((-152))+rax]
|
||||
movaps xmm11,XMMWORD[((-136))+rax]
|
||||
movaps xmm12,XMMWORD[((-120))+rax]
|
||||
|
||||
|
||||
|
||||
mov r15,QWORD[((-48))+rax]
|
||||
|
||||
mov r14,QWORD[((-40))+rax]
|
||||
|
||||
mov r13,QWORD[((-32))+rax]
|
||||
|
||||
mov r12,QWORD[((-24))+rax]
|
||||
|
||||
mov rbp,QWORD[((-16))+rax]
|
||||
|
||||
mov rbx,QWORD[((-8))+rax]
|
||||
|
||||
lea rsp,[rax]
|
||||
|
||||
$L$enc4x_epilogue:
|
||||
mov rdi,QWORD[8+rsp] ;WIN64 epilogue
|
||||
mov rsi,QWORD[16+rsp]
|
||||
DB 0F3h,0C3h ;repret
|
||||
|
||||
$L$SEH_end_aesni_multi_cbc_encrypt:
|
||||
|
||||
global aesni_multi_cbc_decrypt
|
||||
|
||||
ALIGN 32
|
||||
aesni_multi_cbc_decrypt:
|
||||
mov QWORD[8+rsp],rdi ;WIN64 prologue
|
||||
mov QWORD[16+rsp],rsi
|
||||
mov rax,rsp
|
||||
$L$SEH_begin_aesni_multi_cbc_decrypt:
|
||||
mov rdi,rcx
|
||||
mov rsi,rdx
|
||||
mov rdx,r8
|
||||
|
||||
|
||||
|
||||
mov rax,rsp
|
||||
|
||||
push rbx
|
||||
|
||||
push rbp
|
||||
|
||||
push r12
|
||||
|
||||
push r13
|
||||
|
||||
push r14
|
||||
|
||||
push r15
|
||||
|
||||
lea rsp,[((-168))+rsp]
|
||||
movaps XMMWORD[rsp],xmm6
|
||||
movaps XMMWORD[16+rsp],xmm7
|
||||
movaps XMMWORD[32+rsp],xmm8
|
||||
movaps XMMWORD[48+rsp],xmm9
|
||||
movaps XMMWORD[64+rsp],xmm10
|
||||
movaps XMMWORD[80+rsp],xmm11
|
||||
movaps XMMWORD[96+rsp],xmm12
|
||||
movaps XMMWORD[(-104)+rax],xmm13
|
||||
movaps XMMWORD[(-88)+rax],xmm14
|
||||
movaps XMMWORD[(-72)+rax],xmm15
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
sub rsp,48
|
||||
and rsp,-64
|
||||
mov QWORD[16+rsp],rax
|
||||
|
||||
|
||||
$L$dec4x_body:
|
||||
movdqu xmm12,XMMWORD[rsi]
|
||||
lea rsi,[120+rsi]
|
||||
lea rdi,[80+rdi]
|
||||
|
||||
$L$dec4x_loop_grande:
|
||||
mov DWORD[24+rsp],edx
|
||||
xor edx,edx
|
||||
mov ecx,DWORD[((-64))+rdi]
|
||||
mov r8,QWORD[((-80))+rdi]
|
||||
cmp ecx,edx
|
||||
mov r12,QWORD[((-72))+rdi]
|
||||
cmovg edx,ecx
|
||||
test ecx,ecx
|
||||
movdqu xmm6,XMMWORD[((-56))+rdi]
|
||||
mov DWORD[32+rsp],ecx
|
||||
cmovle r8,rsp
|
||||
mov ecx,DWORD[((-24))+rdi]
|
||||
mov r9,QWORD[((-40))+rdi]
|
||||
cmp ecx,edx
|
||||
mov r13,QWORD[((-32))+rdi]
|
||||
cmovg edx,ecx
|
||||
test ecx,ecx
|
||||
movdqu xmm7,XMMWORD[((-16))+rdi]
|
||||
mov DWORD[36+rsp],ecx
|
||||
cmovle r9,rsp
|
||||
mov ecx,DWORD[16+rdi]
|
||||
mov r10,QWORD[rdi]
|
||||
cmp ecx,edx
|
||||
mov r14,QWORD[8+rdi]
|
||||
cmovg edx,ecx
|
||||
test ecx,ecx
|
||||
movdqu xmm8,XMMWORD[24+rdi]
|
||||
mov DWORD[40+rsp],ecx
|
||||
cmovle r10,rsp
|
||||
mov ecx,DWORD[56+rdi]
|
||||
mov r11,QWORD[40+rdi]
|
||||
cmp ecx,edx
|
||||
mov r15,QWORD[48+rdi]
|
||||
cmovg edx,ecx
|
||||
test ecx,ecx
|
||||
movdqu xmm9,XMMWORD[64+rdi]
|
||||
mov DWORD[44+rsp],ecx
|
||||
cmovle r11,rsp
|
||||
test edx,edx
|
||||
jz NEAR $L$dec4x_done
|
||||
|
||||
movups xmm1,XMMWORD[((16-120))+rsi]
|
||||
movups xmm0,XMMWORD[((32-120))+rsi]
|
||||
mov eax,DWORD[((240-120))+rsi]
|
||||
movdqu xmm2,XMMWORD[r8]
|
||||
movdqu xmm3,XMMWORD[r9]
|
||||
pxor xmm2,xmm12
|
||||
movdqu xmm4,XMMWORD[r10]
|
||||
pxor xmm3,xmm12
|
||||
movdqu xmm5,XMMWORD[r11]
|
||||
pxor xmm4,xmm12
|
||||
pxor xmm5,xmm12
|
||||
movdqa xmm10,XMMWORD[32+rsp]
|
||||
xor rbx,rbx
|
||||
jmp NEAR $L$oop_dec4x
|
||||
|
||||
ALIGN 32
|
||||
$L$oop_dec4x:
|
||||
add rbx,16
|
||||
lea rbp,[16+rsp]
|
||||
mov ecx,1
|
||||
sub rbp,rbx
|
||||
|
||||
DB 102,15,56,222,209
|
||||
prefetcht0 [31+rbx*1+r8]
|
||||
prefetcht0 [31+rbx*1+r9]
|
||||
DB 102,15,56,222,217
|
||||
prefetcht0 [31+rbx*1+r10]
|
||||
prefetcht0 [31+rbx*1+r11]
|
||||
DB 102,15,56,222,225
|
||||
DB 102,15,56,222,233
|
||||
movups xmm1,XMMWORD[((48-120))+rsi]
|
||||
cmp ecx,DWORD[32+rsp]
|
||||
DB 102,15,56,222,208
|
||||
DB 102,15,56,222,216
|
||||
DB 102,15,56,222,224
|
||||
cmovge r8,rbp
|
||||
cmovg r12,rbp
|
||||
DB 102,15,56,222,232
|
||||
movups xmm0,XMMWORD[((-56))+rsi]
|
||||
cmp ecx,DWORD[36+rsp]
|
||||
DB 102,15,56,222,209
|
||||
DB 102,15,56,222,217
|
||||
DB 102,15,56,222,225
|
||||
cmovge r9,rbp
|
||||
cmovg r13,rbp
|
||||
DB 102,15,56,222,233
|
||||
movups xmm1,XMMWORD[((-40))+rsi]
|
||||
cmp ecx,DWORD[40+rsp]
|
||||
DB 102,15,56,222,208
|
||||
DB 102,15,56,222,216
|
||||
DB 102,15,56,222,224
|
||||
cmovge r10,rbp
|
||||
cmovg r14,rbp
|
||||
DB 102,15,56,222,232
|
||||
movups xmm0,XMMWORD[((-24))+rsi]
|
||||
cmp ecx,DWORD[44+rsp]
|
||||
DB 102,15,56,222,209
|
||||
DB 102,15,56,222,217
|
||||
DB 102,15,56,222,225
|
||||
cmovge r11,rbp
|
||||
cmovg r15,rbp
|
||||
DB 102,15,56,222,233
|
||||
movups xmm1,XMMWORD[((-8))+rsi]
|
||||
movdqa xmm11,xmm10
|
||||
DB 102,15,56,222,208
|
||||
prefetcht0 [15+rbx*1+r12]
|
||||
prefetcht0 [15+rbx*1+r13]
|
||||
DB 102,15,56,222,216
|
||||
prefetcht0 [15+rbx*1+r14]
|
||||
prefetcht0 [15+rbx*1+r15]
|
||||
DB 102,15,56,222,224
|
||||
DB 102,15,56,222,232
|
||||
movups xmm0,XMMWORD[((128-120))+rsi]
|
||||
pxor xmm12,xmm12
|
||||
|
||||
DB 102,15,56,222,209
|
||||
pcmpgtd xmm11,xmm12
|
||||
movdqu xmm12,XMMWORD[((-120))+rsi]
|
||||
DB 102,15,56,222,217
|
||||
paddd xmm10,xmm11
|
||||
movdqa XMMWORD[32+rsp],xmm10
|
||||
DB 102,15,56,222,225
|
||||
DB 102,15,56,222,233
|
||||
movups xmm1,XMMWORD[((144-120))+rsi]
|
||||
|
||||
cmp eax,11
|
||||
|
||||
DB 102,15,56,222,208
|
||||
DB 102,15,56,222,216
|
||||
DB 102,15,56,222,224
|
||||
DB 102,15,56,222,232
|
||||
movups xmm0,XMMWORD[((160-120))+rsi]
|
||||
|
||||
jb NEAR $L$dec4x_tail
|
||||
|
||||
DB 102,15,56,222,209
|
||||
DB 102,15,56,222,217
|
||||
DB 102,15,56,222,225
|
||||
DB 102,15,56,222,233
|
||||
movups xmm1,XMMWORD[((176-120))+rsi]
|
||||
|
||||
DB 102,15,56,222,208
|
||||
DB 102,15,56,222,216
|
||||
DB 102,15,56,222,224
|
||||
DB 102,15,56,222,232
|
||||
movups xmm0,XMMWORD[((192-120))+rsi]
|
||||
|
||||
je NEAR $L$dec4x_tail
|
||||
|
||||
DB 102,15,56,222,209
|
||||
DB 102,15,56,222,217
|
||||
DB 102,15,56,222,225
|
||||
DB 102,15,56,222,233
|
||||
movups xmm1,XMMWORD[((208-120))+rsi]
|
||||
|
||||
DB 102,15,56,222,208
|
||||
DB 102,15,56,222,216
|
||||
DB 102,15,56,222,224
|
||||
DB 102,15,56,222,232
|
||||
movups xmm0,XMMWORD[((224-120))+rsi]
|
||||
jmp NEAR $L$dec4x_tail
|
||||
|
||||
ALIGN 32
|
||||
$L$dec4x_tail:
|
||||
DB 102,15,56,222,209
|
||||
DB 102,15,56,222,217
|
||||
DB 102,15,56,222,225
|
||||
pxor xmm6,xmm0
|
||||
pxor xmm7,xmm0
|
||||
DB 102,15,56,222,233
|
||||
movdqu xmm1,XMMWORD[((16-120))+rsi]
|
||||
pxor xmm8,xmm0
|
||||
pxor xmm9,xmm0
|
||||
movdqu xmm0,XMMWORD[((32-120))+rsi]
|
||||
|
||||
DB 102,15,56,223,214
|
||||
DB 102,15,56,223,223
|
||||
movdqu xmm6,XMMWORD[((-16))+rbx*1+r8]
|
||||
movdqu xmm7,XMMWORD[((-16))+rbx*1+r9]
|
||||
DB 102,65,15,56,223,224
|
||||
DB 102,65,15,56,223,233
|
||||
movdqu xmm8,XMMWORD[((-16))+rbx*1+r10]
|
||||
movdqu xmm9,XMMWORD[((-16))+rbx*1+r11]
|
||||
|
||||
movups XMMWORD[(-16)+rbx*1+r12],xmm2
|
||||
movdqu xmm2,XMMWORD[rbx*1+r8]
|
||||
movups XMMWORD[(-16)+rbx*1+r13],xmm3
|
||||
movdqu xmm3,XMMWORD[rbx*1+r9]
|
||||
pxor xmm2,xmm12
|
||||
movups XMMWORD[(-16)+rbx*1+r14],xmm4
|
||||
movdqu xmm4,XMMWORD[rbx*1+r10]
|
||||
pxor xmm3,xmm12
|
||||
movups XMMWORD[(-16)+rbx*1+r15],xmm5
|
||||
movdqu xmm5,XMMWORD[rbx*1+r11]
|
||||
pxor xmm4,xmm12
|
||||
pxor xmm5,xmm12
|
||||
|
||||
dec edx
|
||||
jnz NEAR $L$oop_dec4x
|
||||
|
||||
mov rax,QWORD[16+rsp]
|
||||
|
||||
mov edx,DWORD[24+rsp]
|
||||
|
||||
lea rdi,[160+rdi]
|
||||
dec edx
|
||||
jnz NEAR $L$dec4x_loop_grande
|
||||
|
||||
$L$dec4x_done:
|
||||
movaps xmm6,XMMWORD[((-216))+rax]
|
||||
movaps xmm7,XMMWORD[((-200))+rax]
|
||||
movaps xmm8,XMMWORD[((-184))+rax]
|
||||
movaps xmm9,XMMWORD[((-168))+rax]
|
||||
movaps xmm10,XMMWORD[((-152))+rax]
|
||||
movaps xmm11,XMMWORD[((-136))+rax]
|
||||
movaps xmm12,XMMWORD[((-120))+rax]
|
||||
|
||||
|
||||
|
||||
mov r15,QWORD[((-48))+rax]
|
||||
|
||||
mov r14,QWORD[((-40))+rax]
|
||||
|
||||
mov r13,QWORD[((-32))+rax]
|
||||
|
||||
mov r12,QWORD[((-24))+rax]
|
||||
|
||||
mov rbp,QWORD[((-16))+rax]
|
||||
|
||||
mov rbx,QWORD[((-8))+rax]
|
||||
|
||||
lea rsp,[rax]
|
||||
|
||||
$L$dec4x_epilogue:
|
||||
mov rdi,QWORD[8+rsp] ;WIN64 epilogue
|
||||
mov rsi,QWORD[16+rsp]
|
||||
DB 0F3h,0C3h ;repret
|
||||
|
||||
$L$SEH_end_aesni_multi_cbc_decrypt:
|
||||
EXTERN __imp_RtlVirtualUnwind
|
||||
|
||||
ALIGN 16
|
||||
se_handler:
|
||||
push rsi
|
||||
push rdi
|
||||
push rbx
|
||||
push rbp
|
||||
push r12
|
||||
push r13
|
||||
push r14
|
||||
push r15
|
||||
pushfq
|
||||
sub rsp,64
|
||||
|
||||
mov rax,QWORD[120+r8]
|
||||
mov rbx,QWORD[248+r8]
|
||||
|
||||
mov rsi,QWORD[8+r9]
|
||||
mov r11,QWORD[56+r9]
|
||||
|
||||
mov r10d,DWORD[r11]
|
||||
lea r10,[r10*1+rsi]
|
||||
cmp rbx,r10
|
||||
jb NEAR $L$in_prologue
|
||||
|
||||
mov rax,QWORD[152+r8]
|
||||
|
||||
mov r10d,DWORD[4+r11]
|
||||
lea r10,[r10*1+rsi]
|
||||
cmp rbx,r10
|
||||
jae NEAR $L$in_prologue
|
||||
|
||||
mov rax,QWORD[16+rax]
|
||||
|
||||
mov rbx,QWORD[((-8))+rax]
|
||||
mov rbp,QWORD[((-16))+rax]
|
||||
mov r12,QWORD[((-24))+rax]
|
||||
mov r13,QWORD[((-32))+rax]
|
||||
mov r14,QWORD[((-40))+rax]
|
||||
mov r15,QWORD[((-48))+rax]
|
||||
mov QWORD[144+r8],rbx
|
||||
mov QWORD[160+r8],rbp
|
||||
mov QWORD[216+r8],r12
|
||||
mov QWORD[224+r8],r13
|
||||
mov QWORD[232+r8],r14
|
||||
mov QWORD[240+r8],r15
|
||||
|
||||
lea rsi,[((-56-160))+rax]
|
||||
lea rdi,[512+r8]
|
||||
mov ecx,20
|
||||
DD 0xa548f3fc
|
||||
|
||||
$L$in_prologue:
|
||||
mov rdi,QWORD[8+rax]
|
||||
mov rsi,QWORD[16+rax]
|
||||
mov QWORD[152+r8],rax
|
||||
mov QWORD[168+r8],rsi
|
||||
mov QWORD[176+r8],rdi
|
||||
|
||||
mov rdi,QWORD[40+r9]
|
||||
mov rsi,r8
|
||||
mov ecx,154
|
||||
DD 0xa548f3fc
|
||||
|
||||
mov rsi,r9
|
||||
xor rcx,rcx
|
||||
mov rdx,QWORD[8+rsi]
|
||||
mov r8,QWORD[rsi]
|
||||
mov r9,QWORD[16+rsi]
|
||||
mov r10,QWORD[40+rsi]
|
||||
lea r11,[56+rsi]
|
||||
lea r12,[24+rsi]
|
||||
mov QWORD[32+rsp],r10
|
||||
mov QWORD[40+rsp],r11
|
||||
mov QWORD[48+rsp],r12
|
||||
mov QWORD[56+rsp],rcx
|
||||
call QWORD[__imp_RtlVirtualUnwind]
|
||||
|
||||
mov eax,1
|
||||
add rsp,64
|
||||
popfq
|
||||
pop r15
|
||||
pop r14
|
||||
pop r13
|
||||
pop r12
|
||||
pop rbp
|
||||
pop rbx
|
||||
pop rdi
|
||||
pop rsi
|
||||
DB 0F3h,0C3h ;repret
|
||||
|
||||
|
||||
section .pdata rdata align=4
|
||||
ALIGN 4
|
||||
DD $L$SEH_begin_aesni_multi_cbc_encrypt wrt ..imagebase
|
||||
DD $L$SEH_end_aesni_multi_cbc_encrypt wrt ..imagebase
|
||||
DD $L$SEH_info_aesni_multi_cbc_encrypt wrt ..imagebase
|
||||
DD $L$SEH_begin_aesni_multi_cbc_decrypt wrt ..imagebase
|
||||
DD $L$SEH_end_aesni_multi_cbc_decrypt wrt ..imagebase
|
||||
DD $L$SEH_info_aesni_multi_cbc_decrypt wrt ..imagebase
|
||||
section .xdata rdata align=8
|
||||
ALIGN 8
|
||||
$L$SEH_info_aesni_multi_cbc_encrypt:
|
||||
DB 9,0,0,0
|
||||
DD se_handler wrt ..imagebase
|
||||
DD $L$enc4x_body wrt ..imagebase,$L$enc4x_epilogue wrt ..imagebase
|
||||
$L$SEH_info_aesni_multi_cbc_decrypt:
|
||||
DB 9,0,0,0
|
||||
DD se_handler wrt ..imagebase
|
||||
DD $L$dec4x_body wrt ..imagebase,$L$dec4x_epilogue wrt ..imagebase
|
1916
CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-sha1-x86_64.nasm
Normal file
1916
CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-sha1-x86_64.nasm
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,78 @@
|
||||
; WARNING: do not edit!
|
||||
; Generated from openssl/crypto/aes/asm/aesni-sha256-x86_64.pl
|
||||
;
|
||||
; Copyright 2013-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
;
|
||||
; Licensed under the OpenSSL license (the "License"). You may not use
|
||||
; this file except in compliance with the License. You can obtain a copy
|
||||
; in the file LICENSE in the source distribution or at
|
||||
; https://www.openssl.org/source/license.html
|
||||
|
||||
default rel
|
||||
%define XMMWORD
|
||||
%define YMMWORD
|
||||
%define ZMMWORD
|
||||
section .text code align=64
|
||||
|
||||
|
||||
EXTERN OPENSSL_ia32cap_P
|
||||
global aesni_cbc_sha256_enc
|
||||
|
||||
ALIGN 16
|
||||
aesni_cbc_sha256_enc:
|
||||
|
||||
xor eax,eax
|
||||
cmp rcx,0
|
||||
je NEAR $L$probe
|
||||
ud2
|
||||
$L$probe:
|
||||
DB 0F3h,0C3h ;repret
|
||||
|
||||
|
||||
|
||||
ALIGN 64
|
||||
|
||||
K256:
|
||||
DD 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
|
||||
DD 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
|
||||
DD 0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
|
||||
DD 0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
|
||||
DD 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
|
||||
DD 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
|
||||
DD 0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
|
||||
DD 0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
|
||||
DD 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
|
||||
DD 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
|
||||
DD 0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
|
||||
DD 0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
|
||||
DD 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
|
||||
DD 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
|
||||
DD 0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
|
||||
DD 0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
|
||||
DD 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
|
||||
DD 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
|
||||
DD 0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
|
||||
DD 0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
|
||||
DD 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
|
||||
DD 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
|
||||
DD 0xd192e819,0xd6990624,0xf40e3585,0x106aa070
|
||||
DD 0xd192e819,0xd6990624,0xf40e3585,0x106aa070
|
||||
DD 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
|
||||
DD 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
|
||||
DD 0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
|
||||
DD 0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
|
||||
DD 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
|
||||
DD 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
|
||||
DD 0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
|
||||
DD 0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
|
||||
|
||||
DD 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
|
||||
DD 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
|
||||
DD 0,0,0,0,0,0,0,0,-1,-1,-1,-1
|
||||
DD 0,0,0,0,0,0,0,0
|
||||
DB 65,69,83,78,73,45,67,66,67,43,83,72,65,50,53,54
|
||||
DB 32,115,116,105,116,99,104,32,102,111,114,32,120,56,54,95
|
||||
DB 54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98
|
||||
DB 121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108
|
||||
DB 46,111,114,103,62,0
|
||||
ALIGN 64
|
5103
CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-x86_64.nasm
Normal file
5103
CryptoPkg/Library/OpensslLib/X64/crypto/aes/aesni-x86_64.nasm
Normal file
File diff suppressed because it is too large
Load Diff
1173
CryptoPkg/Library/OpensslLib/X64/crypto/aes/vpaes-x86_64.nasm
Normal file
1173
CryptoPkg/Library/OpensslLib/X64/crypto/aes/vpaes-x86_64.nasm
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,34 @@
|
||||
; WARNING: do not edit!
|
||||
; Generated from openssl/crypto/modes/asm/aesni-gcm-x86_64.pl
|
||||
;
|
||||
; Copyright 2013-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
;
|
||||
; Licensed under the OpenSSL license (the "License"). You may not use
|
||||
; this file except in compliance with the License. You can obtain a copy
|
||||
; in the file LICENSE in the source distribution or at
|
||||
; https://www.openssl.org/source/license.html
|
||||
|
||||
default rel
|
||||
%define XMMWORD
|
||||
%define YMMWORD
|
||||
%define ZMMWORD
|
||||
section .text code align=64
|
||||
|
||||
|
||||
global aesni_gcm_encrypt
|
||||
|
||||
aesni_gcm_encrypt:
|
||||
|
||||
xor eax,eax
|
||||
DB 0F3h,0C3h ;repret
|
||||
|
||||
|
||||
|
||||
global aesni_gcm_decrypt
|
||||
|
||||
aesni_gcm_decrypt:
|
||||
|
||||
xor eax,eax
|
||||
DB 0F3h,0C3h ;repret
|
||||
|
||||
|
1569
CryptoPkg/Library/OpensslLib/X64/crypto/modes/ghash-x86_64.nasm
Normal file
1569
CryptoPkg/Library/OpensslLib/X64/crypto/modes/ghash-x86_64.nasm
Normal file
File diff suppressed because it is too large
Load Diff
3137
CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha1-mb-x86_64.nasm
Normal file
3137
CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha1-mb-x86_64.nasm
Normal file
File diff suppressed because it is too large
Load Diff
2884
CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha1-x86_64.nasm
Normal file
2884
CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha1-x86_64.nasm
Normal file
File diff suppressed because it is too large
Load Diff
3461
CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha256-mb-x86_64.nasm
Normal file
3461
CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha256-mb-x86_64.nasm
Normal file
File diff suppressed because it is too large
Load Diff
3313
CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha256-x86_64.nasm
Normal file
3313
CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha256-x86_64.nasm
Normal file
File diff suppressed because it is too large
Load Diff
1938
CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha512-x86_64.nasm
Normal file
1938
CryptoPkg/Library/OpensslLib/X64/crypto/sha/sha512-x86_64.nasm
Normal file
File diff suppressed because it is too large
Load Diff
491
CryptoPkg/Library/OpensslLib/X64/crypto/x86_64cpuid.nasm
Normal file
491
CryptoPkg/Library/OpensslLib/X64/crypto/x86_64cpuid.nasm
Normal file
@@ -0,0 +1,491 @@
|
||||
; WARNING: do not edit!
|
||||
; Generated from openssl/crypto/x86_64cpuid.pl
|
||||
;
|
||||
; Copyright 2005-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
;
|
||||
; Licensed under the OpenSSL license (the "License"). You may not use
|
||||
; this file except in compliance with the License. You can obtain a copy
|
||||
; in the file LICENSE in the source distribution or at
|
||||
; https://www.openssl.org/source/license.html
|
||||
|
||||
default rel
|
||||
%define XMMWORD
|
||||
%define YMMWORD
|
||||
%define ZMMWORD
|
||||
EXTERN OPENSSL_cpuid_setup
|
||||
|
||||
section .CRT$XCU rdata align=8
|
||||
DQ OPENSSL_cpuid_setup
|
||||
|
||||
|
||||
common OPENSSL_ia32cap_P 16
|
||||
|
||||
section .text code align=64
|
||||
|
||||
|
||||
global OPENSSL_atomic_add
|
||||
|
||||
ALIGN 16
|
||||
OPENSSL_atomic_add:
|
||||
|
||||
mov eax,DWORD[rcx]
|
||||
$L$spin: lea r8,[rax*1+rdx]
|
||||
DB 0xf0
|
||||
cmpxchg DWORD[rcx],r8d
|
||||
jne NEAR $L$spin
|
||||
mov eax,r8d
|
||||
DB 0x48,0x98
|
||||
DB 0F3h,0C3h ;repret
|
||||
|
||||
|
||||
|
||||
global OPENSSL_rdtsc
|
||||
|
||||
ALIGN 16
|
||||
OPENSSL_rdtsc:
|
||||
|
||||
rdtsc
|
||||
shl rdx,32
|
||||
or rax,rdx
|
||||
DB 0F3h,0C3h ;repret
|
||||
|
||||
|
||||
|
||||
global OPENSSL_ia32_cpuid
|
||||
|
||||
ALIGN 16
|
||||
OPENSSL_ia32_cpuid:
|
||||
mov QWORD[8+rsp],rdi ;WIN64 prologue
|
||||
mov QWORD[16+rsp],rsi
|
||||
mov rax,rsp
|
||||
$L$SEH_begin_OPENSSL_ia32_cpuid:
|
||||
mov rdi,rcx
|
||||
|
||||
|
||||
|
||||
mov r8,rbx
|
||||
|
||||
|
||||
xor eax,eax
|
||||
mov QWORD[8+rdi],rax
|
||||
cpuid
|
||||
mov r11d,eax
|
||||
|
||||
xor eax,eax
|
||||
cmp ebx,0x756e6547
|
||||
setne al
|
||||
mov r9d,eax
|
||||
cmp edx,0x49656e69
|
||||
setne al
|
||||
or r9d,eax
|
||||
cmp ecx,0x6c65746e
|
||||
setne al
|
||||
or r9d,eax
|
||||
jz NEAR $L$intel
|
||||
|
||||
cmp ebx,0x68747541
|
||||
setne al
|
||||
mov r10d,eax
|
||||
cmp edx,0x69746E65
|
||||
setne al
|
||||
or r10d,eax
|
||||
cmp ecx,0x444D4163
|
||||
setne al
|
||||
or r10d,eax
|
||||
jnz NEAR $L$intel
|
||||
|
||||
|
||||
mov eax,0x80000000
|
||||
cpuid
|
||||
cmp eax,0x80000001
|
||||
jb NEAR $L$intel
|
||||
mov r10d,eax
|
||||
mov eax,0x80000001
|
||||
cpuid
|
||||
or r9d,ecx
|
||||
and r9d,0x00000801
|
||||
|
||||
cmp r10d,0x80000008
|
||||
jb NEAR $L$intel
|
||||
|
||||
mov eax,0x80000008
|
||||
cpuid
|
||||
movzx r10,cl
|
||||
inc r10
|
||||
|
||||
mov eax,1
|
||||
cpuid
|
||||
bt edx,28
|
||||
jnc NEAR $L$generic
|
||||
shr ebx,16
|
||||
cmp bl,r10b
|
||||
ja NEAR $L$generic
|
||||
and edx,0xefffffff
|
||||
jmp NEAR $L$generic
|
||||
|
||||
$L$intel:
|
||||
cmp r11d,4
|
||||
mov r10d,-1
|
||||
jb NEAR $L$nocacheinfo
|
||||
|
||||
mov eax,4
|
||||
mov ecx,0
|
||||
cpuid
|
||||
mov r10d,eax
|
||||
shr r10d,14
|
||||
and r10d,0xfff
|
||||
|
||||
$L$nocacheinfo:
|
||||
mov eax,1
|
||||
cpuid
|
||||
movd xmm0,eax
|
||||
and edx,0xbfefffff
|
||||
cmp r9d,0
|
||||
jne NEAR $L$notintel
|
||||
or edx,0x40000000
|
||||
and ah,15
|
||||
cmp ah,15
|
||||
jne NEAR $L$notP4
|
||||
or edx,0x00100000
|
||||
$L$notP4:
|
||||
cmp ah,6
|
||||
jne NEAR $L$notintel
|
||||
and eax,0x0fff0ff0
|
||||
cmp eax,0x00050670
|
||||
je NEAR $L$knights
|
||||
cmp eax,0x00080650
|
||||
jne NEAR $L$notintel
|
||||
$L$knights:
|
||||
and ecx,0xfbffffff
|
||||
|
||||
$L$notintel:
|
||||
bt edx,28
|
||||
jnc NEAR $L$generic
|
||||
and edx,0xefffffff
|
||||
cmp r10d,0
|
||||
je NEAR $L$generic
|
||||
|
||||
or edx,0x10000000
|
||||
shr ebx,16
|
||||
cmp bl,1
|
||||
ja NEAR $L$generic
|
||||
and edx,0xefffffff
|
||||
$L$generic:
|
||||
and r9d,0x00000800
|
||||
and ecx,0xfffff7ff
|
||||
or r9d,ecx
|
||||
|
||||
mov r10d,edx
|
||||
|
||||
cmp r11d,7
|
||||
jb NEAR $L$no_extended_info
|
||||
mov eax,7
|
||||
xor ecx,ecx
|
||||
cpuid
|
||||
bt r9d,26
|
||||
jc NEAR $L$notknights
|
||||
and ebx,0xfff7ffff
|
||||
$L$notknights:
|
||||
movd eax,xmm0
|
||||
and eax,0x0fff0ff0
|
||||
cmp eax,0x00050650
|
||||
jne NEAR $L$notskylakex
|
||||
and ebx,0xfffeffff
|
||||
|
||||
$L$notskylakex:
|
||||
mov DWORD[8+rdi],ebx
|
||||
mov DWORD[12+rdi],ecx
|
||||
$L$no_extended_info:
|
||||
|
||||
bt r9d,27
|
||||
jnc NEAR $L$clear_avx
|
||||
xor ecx,ecx
|
||||
DB 0x0f,0x01,0xd0
|
||||
and eax,0xe6
|
||||
cmp eax,0xe6
|
||||
je NEAR $L$done
|
||||
and DWORD[8+rdi],0x3fdeffff
|
||||
|
||||
|
||||
|
||||
|
||||
and eax,6
|
||||
cmp eax,6
|
||||
je NEAR $L$done
|
||||
$L$clear_avx:
|
||||
mov eax,0xefffe7ff
|
||||
and r9d,eax
|
||||
mov eax,0x3fdeffdf
|
||||
and DWORD[8+rdi],eax
|
||||
$L$done:
|
||||
shl r9,32
|
||||
mov eax,r10d
|
||||
mov rbx,r8
|
||||
|
||||
or rax,r9
|
||||
mov rdi,QWORD[8+rsp] ;WIN64 epilogue
|
||||
mov rsi,QWORD[16+rsp]
|
||||
DB 0F3h,0C3h ;repret
|
||||
|
||||
$L$SEH_end_OPENSSL_ia32_cpuid:
|
||||
|
||||
global OPENSSL_cleanse
|
||||
|
||||
ALIGN 16
|
||||
OPENSSL_cleanse:
|
||||
|
||||
xor rax,rax
|
||||
cmp rdx,15
|
||||
jae NEAR $L$ot
|
||||
cmp rdx,0
|
||||
je NEAR $L$ret
|
||||
$L$ittle:
|
||||
mov BYTE[rcx],al
|
||||
sub rdx,1
|
||||
lea rcx,[1+rcx]
|
||||
jnz NEAR $L$ittle
|
||||
$L$ret:
|
||||
DB 0F3h,0C3h ;repret
|
||||
ALIGN 16
|
||||
$L$ot:
|
||||
test rcx,7
|
||||
jz NEAR $L$aligned
|
||||
mov BYTE[rcx],al
|
||||
lea rdx,[((-1))+rdx]
|
||||
lea rcx,[1+rcx]
|
||||
jmp NEAR $L$ot
|
||||
$L$aligned:
|
||||
mov QWORD[rcx],rax
|
||||
lea rdx,[((-8))+rdx]
|
||||
test rdx,-8
|
||||
lea rcx,[8+rcx]
|
||||
jnz NEAR $L$aligned
|
||||
cmp rdx,0
|
||||
jne NEAR $L$ittle
|
||||
DB 0F3h,0C3h ;repret
|
||||
|
||||
|
||||
|
||||
global CRYPTO_memcmp
|
||||
|
||||
ALIGN 16
|
||||
CRYPTO_memcmp:
|
||||
|
||||
xor rax,rax
|
||||
xor r10,r10
|
||||
cmp r8,0
|
||||
je NEAR $L$no_data
|
||||
cmp r8,16
|
||||
jne NEAR $L$oop_cmp
|
||||
mov r10,QWORD[rcx]
|
||||
mov r11,QWORD[8+rcx]
|
||||
mov r8,1
|
||||
xor r10,QWORD[rdx]
|
||||
xor r11,QWORD[8+rdx]
|
||||
or r10,r11
|
||||
cmovnz rax,r8
|
||||
DB 0F3h,0C3h ;repret
|
||||
|
||||
ALIGN 16
|
||||
$L$oop_cmp:
|
||||
mov r10b,BYTE[rcx]
|
||||
lea rcx,[1+rcx]
|
||||
xor r10b,BYTE[rdx]
|
||||
lea rdx,[1+rdx]
|
||||
or al,r10b
|
||||
dec r8
|
||||
jnz NEAR $L$oop_cmp
|
||||
neg rax
|
||||
shr rax,63
|
||||
$L$no_data:
|
||||
DB 0F3h,0C3h ;repret
|
||||
|
||||
|
||||
global OPENSSL_wipe_cpu
|
||||
|
||||
ALIGN 16
|
||||
OPENSSL_wipe_cpu:
|
||||
pxor xmm0,xmm0
|
||||
pxor xmm1,xmm1
|
||||
pxor xmm2,xmm2
|
||||
pxor xmm3,xmm3
|
||||
pxor xmm4,xmm4
|
||||
pxor xmm5,xmm5
|
||||
xor rcx,rcx
|
||||
xor rdx,rdx
|
||||
xor r8,r8
|
||||
xor r9,r9
|
||||
xor r10,r10
|
||||
xor r11,r11
|
||||
lea rax,[8+rsp]
|
||||
DB 0F3h,0C3h ;repret
|
||||
|
||||
global OPENSSL_instrument_bus
|
||||
|
||||
ALIGN 16
|
||||
OPENSSL_instrument_bus:
|
||||
|
||||
mov r10,rcx
|
||||
mov rcx,rdx
|
||||
mov r11,rdx
|
||||
|
||||
rdtsc
|
||||
mov r8d,eax
|
||||
mov r9d,0
|
||||
clflush [r10]
|
||||
DB 0xf0
|
||||
add DWORD[r10],r9d
|
||||
jmp NEAR $L$oop
|
||||
ALIGN 16
|
||||
$L$oop: rdtsc
|
||||
mov edx,eax
|
||||
sub eax,r8d
|
||||
mov r8d,edx
|
||||
mov r9d,eax
|
||||
clflush [r10]
|
||||
DB 0xf0
|
||||
add DWORD[r10],eax
|
||||
lea r10,[4+r10]
|
||||
sub rcx,1
|
||||
jnz NEAR $L$oop
|
||||
|
||||
mov rax,r11
|
||||
DB 0F3h,0C3h ;repret
|
||||
|
||||
|
||||
|
||||
global OPENSSL_instrument_bus2
|
||||
|
||||
ALIGN 16
|
||||
OPENSSL_instrument_bus2:
|
||||
|
||||
mov r10,rcx
|
||||
mov rcx,rdx
|
||||
mov r11,r8
|
||||
mov QWORD[8+rsp],rcx
|
||||
|
||||
rdtsc
|
||||
mov r8d,eax
|
||||
mov r9d,0
|
||||
|
||||
clflush [r10]
|
||||
DB 0xf0
|
||||
add DWORD[r10],r9d
|
||||
|
||||
rdtsc
|
||||
mov edx,eax
|
||||
sub eax,r8d
|
||||
mov r8d,edx
|
||||
mov r9d,eax
|
||||
$L$oop2:
|
||||
clflush [r10]
|
||||
DB 0xf0
|
||||
add DWORD[r10],eax
|
||||
|
||||
sub r11,1
|
||||
jz NEAR $L$done2
|
||||
|
||||
rdtsc
|
||||
mov edx,eax
|
||||
sub eax,r8d
|
||||
mov r8d,edx
|
||||
cmp eax,r9d
|
||||
mov r9d,eax
|
||||
mov edx,0
|
||||
setne dl
|
||||
sub rcx,rdx
|
||||
lea r10,[rdx*4+r10]
|
||||
jnz NEAR $L$oop2
|
||||
|
||||
$L$done2:
|
||||
mov rax,QWORD[8+rsp]
|
||||
sub rax,rcx
|
||||
DB 0F3h,0C3h ;repret
|
||||
|
||||
|
||||
global OPENSSL_ia32_rdrand_bytes
|
||||
|
||||
ALIGN 16
|
||||
OPENSSL_ia32_rdrand_bytes:
|
||||
|
||||
xor rax,rax
|
||||
cmp rdx,0
|
||||
je NEAR $L$done_rdrand_bytes
|
||||
|
||||
mov r11,8
|
||||
$L$oop_rdrand_bytes:
|
||||
DB 73,15,199,242
|
||||
jc NEAR $L$break_rdrand_bytes
|
||||
dec r11
|
||||
jnz NEAR $L$oop_rdrand_bytes
|
||||
jmp NEAR $L$done_rdrand_bytes
|
||||
|
||||
ALIGN 16
|
||||
$L$break_rdrand_bytes:
|
||||
cmp rdx,8
|
||||
jb NEAR $L$tail_rdrand_bytes
|
||||
mov QWORD[rcx],r10
|
||||
lea rcx,[8+rcx]
|
||||
add rax,8
|
||||
sub rdx,8
|
||||
jz NEAR $L$done_rdrand_bytes
|
||||
mov r11,8
|
||||
jmp NEAR $L$oop_rdrand_bytes
|
||||
|
||||
ALIGN 16
|
||||
$L$tail_rdrand_bytes:
|
||||
mov BYTE[rcx],r10b
|
||||
lea rcx,[1+rcx]
|
||||
inc rax
|
||||
shr r10,8
|
||||
dec rdx
|
||||
jnz NEAR $L$tail_rdrand_bytes
|
||||
|
||||
$L$done_rdrand_bytes:
|
||||
xor r10,r10
|
||||
DB 0F3h,0C3h ;repret
|
||||
|
||||
|
||||
global OPENSSL_ia32_rdseed_bytes
|
||||
|
||||
ALIGN 16
|
||||
OPENSSL_ia32_rdseed_bytes:
|
||||
|
||||
xor rax,rax
|
||||
cmp rdx,0
|
||||
je NEAR $L$done_rdseed_bytes
|
||||
|
||||
mov r11,8
|
||||
$L$oop_rdseed_bytes:
|
||||
DB 73,15,199,250
|
||||
jc NEAR $L$break_rdseed_bytes
|
||||
dec r11
|
||||
jnz NEAR $L$oop_rdseed_bytes
|
||||
jmp NEAR $L$done_rdseed_bytes
|
||||
|
||||
ALIGN 16
|
||||
$L$break_rdseed_bytes:
|
||||
cmp rdx,8
|
||||
jb NEAR $L$tail_rdseed_bytes
|
||||
mov QWORD[rcx],r10
|
||||
lea rcx,[8+rcx]
|
||||
add rax,8
|
||||
sub rdx,8
|
||||
jz NEAR $L$done_rdseed_bytes
|
||||
mov r11,8
|
||||
jmp NEAR $L$oop_rdseed_bytes
|
||||
|
||||
ALIGN 16
|
||||
$L$tail_rdseed_bytes:
|
||||
mov BYTE[rcx],r10b
|
||||
lea rcx,[1+rcx]
|
||||
inc rax
|
||||
shr r10,8
|
||||
dec rdx
|
||||
jnz NEAR $L$tail_rdseed_bytes
|
||||
|
||||
$L$done_rdseed_bytes:
|
||||
xor r10,r10
|
||||
DB 0F3h,0C3h ;repret
|
||||
|
||||
|
552
CryptoPkg/Library/OpensslLib/X64Gcc/crypto/aes/aesni-mb-x86_64.S
Normal file
552
CryptoPkg/Library/OpensslLib/X64Gcc/crypto/aes/aesni-mb-x86_64.S
Normal file
@@ -0,0 +1,552 @@
|
||||
# WARNING: do not edit!
|
||||
# Generated from openssl/crypto/aes/asm/aesni-mb-x86_64.pl
|
||||
#
|
||||
# Copyright 2013-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
#
|
||||
# Licensed under the OpenSSL license (the "License"). You may not use
|
||||
# this file except in compliance with the License. You can obtain a copy
|
||||
# in the file LICENSE in the source distribution or at
|
||||
# https://www.openssl.org/source/license.html
|
||||
|
||||
.text
|
||||
|
||||
|
||||
|
||||
.globl aesni_multi_cbc_encrypt
|
||||
.type aesni_multi_cbc_encrypt,@function
|
||||
.align 32
|
||||
aesni_multi_cbc_encrypt:
|
||||
.cfi_startproc
|
||||
movq %rsp,%rax
|
||||
.cfi_def_cfa_register %rax
|
||||
pushq %rbx
|
||||
.cfi_offset %rbx,-16
|
||||
pushq %rbp
|
||||
.cfi_offset %rbp,-24
|
||||
pushq %r12
|
||||
.cfi_offset %r12,-32
|
||||
pushq %r13
|
||||
.cfi_offset %r13,-40
|
||||
pushq %r14
|
||||
.cfi_offset %r14,-48
|
||||
pushq %r15
|
||||
.cfi_offset %r15,-56
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
subq $48,%rsp
|
||||
andq $-64,%rsp
|
||||
movq %rax,16(%rsp)
|
||||
.cfi_escape 0x0f,0x05,0x77,0x10,0x06,0x23,0x08
|
||||
|
||||
.Lenc4x_body:
|
||||
movdqu (%rsi),%xmm12
|
||||
leaq 120(%rsi),%rsi
|
||||
leaq 80(%rdi),%rdi
|
||||
|
||||
.Lenc4x_loop_grande:
|
||||
movl %edx,24(%rsp)
|
||||
xorl %edx,%edx
|
||||
movl -64(%rdi),%ecx
|
||||
movq -80(%rdi),%r8
|
||||
cmpl %edx,%ecx
|
||||
movq -72(%rdi),%r12
|
||||
cmovgl %ecx,%edx
|
||||
testl %ecx,%ecx
|
||||
movdqu -56(%rdi),%xmm2
|
||||
movl %ecx,32(%rsp)
|
||||
cmovleq %rsp,%r8
|
||||
movl -24(%rdi),%ecx
|
||||
movq -40(%rdi),%r9
|
||||
cmpl %edx,%ecx
|
||||
movq -32(%rdi),%r13
|
||||
cmovgl %ecx,%edx
|
||||
testl %ecx,%ecx
|
||||
movdqu -16(%rdi),%xmm3
|
||||
movl %ecx,36(%rsp)
|
||||
cmovleq %rsp,%r9
|
||||
movl 16(%rdi),%ecx
|
||||
movq 0(%rdi),%r10
|
||||
cmpl %edx,%ecx
|
||||
movq 8(%rdi),%r14
|
||||
cmovgl %ecx,%edx
|
||||
testl %ecx,%ecx
|
||||
movdqu 24(%rdi),%xmm4
|
||||
movl %ecx,40(%rsp)
|
||||
cmovleq %rsp,%r10
|
||||
movl 56(%rdi),%ecx
|
||||
movq 40(%rdi),%r11
|
||||
cmpl %edx,%ecx
|
||||
movq 48(%rdi),%r15
|
||||
cmovgl %ecx,%edx
|
||||
testl %ecx,%ecx
|
||||
movdqu 64(%rdi),%xmm5
|
||||
movl %ecx,44(%rsp)
|
||||
cmovleq %rsp,%r11
|
||||
testl %edx,%edx
|
||||
jz .Lenc4x_done
|
||||
|
||||
movups 16-120(%rsi),%xmm1
|
||||
pxor %xmm12,%xmm2
|
||||
movups 32-120(%rsi),%xmm0
|
||||
pxor %xmm12,%xmm3
|
||||
movl 240-120(%rsi),%eax
|
||||
pxor %xmm12,%xmm4
|
||||
movdqu (%r8),%xmm6
|
||||
pxor %xmm12,%xmm5
|
||||
movdqu (%r9),%xmm7
|
||||
pxor %xmm6,%xmm2
|
||||
movdqu (%r10),%xmm8
|
||||
pxor %xmm7,%xmm3
|
||||
movdqu (%r11),%xmm9
|
||||
pxor %xmm8,%xmm4
|
||||
pxor %xmm9,%xmm5
|
||||
movdqa 32(%rsp),%xmm10
|
||||
xorq %rbx,%rbx
|
||||
jmp .Loop_enc4x
|
||||
|
||||
.align 32
|
||||
.Loop_enc4x:
|
||||
addq $16,%rbx
|
||||
leaq 16(%rsp),%rbp
|
||||
movl $1,%ecx
|
||||
subq %rbx,%rbp
|
||||
|
||||
.byte 102,15,56,220,209
|
||||
prefetcht0 31(%r8,%rbx,1)
|
||||
prefetcht0 31(%r9,%rbx,1)
|
||||
.byte 102,15,56,220,217
|
||||
prefetcht0 31(%r10,%rbx,1)
|
||||
prefetcht0 31(%r10,%rbx,1)
|
||||
.byte 102,15,56,220,225
|
||||
.byte 102,15,56,220,233
|
||||
movups 48-120(%rsi),%xmm1
|
||||
cmpl 32(%rsp),%ecx
|
||||
.byte 102,15,56,220,208
|
||||
.byte 102,15,56,220,216
|
||||
.byte 102,15,56,220,224
|
||||
cmovgeq %rbp,%r8
|
||||
cmovgq %rbp,%r12
|
||||
.byte 102,15,56,220,232
|
||||
movups -56(%rsi),%xmm0
|
||||
cmpl 36(%rsp),%ecx
|
||||
.byte 102,15,56,220,209
|
||||
.byte 102,15,56,220,217
|
||||
.byte 102,15,56,220,225
|
||||
cmovgeq %rbp,%r9
|
||||
cmovgq %rbp,%r13
|
||||
.byte 102,15,56,220,233
|
||||
movups -40(%rsi),%xmm1
|
||||
cmpl 40(%rsp),%ecx
|
||||
.byte 102,15,56,220,208
|
||||
.byte 102,15,56,220,216
|
||||
.byte 102,15,56,220,224
|
||||
cmovgeq %rbp,%r10
|
||||
cmovgq %rbp,%r14
|
||||
.byte 102,15,56,220,232
|
||||
movups -24(%rsi),%xmm0
|
||||
cmpl 44(%rsp),%ecx
|
||||
.byte 102,15,56,220,209
|
||||
.byte 102,15,56,220,217
|
||||
.byte 102,15,56,220,225
|
||||
cmovgeq %rbp,%r11
|
||||
cmovgq %rbp,%r15
|
||||
.byte 102,15,56,220,233
|
||||
movups -8(%rsi),%xmm1
|
||||
movdqa %xmm10,%xmm11
|
||||
.byte 102,15,56,220,208
|
||||
prefetcht0 15(%r12,%rbx,1)
|
||||
prefetcht0 15(%r13,%rbx,1)
|
||||
.byte 102,15,56,220,216
|
||||
prefetcht0 15(%r14,%rbx,1)
|
||||
prefetcht0 15(%r15,%rbx,1)
|
||||
.byte 102,15,56,220,224
|
||||
.byte 102,15,56,220,232
|
||||
movups 128-120(%rsi),%xmm0
|
||||
pxor %xmm12,%xmm12
|
||||
|
||||
.byte 102,15,56,220,209
|
||||
pcmpgtd %xmm12,%xmm11
|
||||
movdqu -120(%rsi),%xmm12
|
||||
.byte 102,15,56,220,217
|
||||
paddd %xmm11,%xmm10
|
||||
movdqa %xmm10,32(%rsp)
|
||||
.byte 102,15,56,220,225
|
||||
.byte 102,15,56,220,233
|
||||
movups 144-120(%rsi),%xmm1
|
||||
|
||||
cmpl $11,%eax
|
||||
|
||||
.byte 102,15,56,220,208
|
||||
.byte 102,15,56,220,216
|
||||
.byte 102,15,56,220,224
|
||||
.byte 102,15,56,220,232
|
||||
movups 160-120(%rsi),%xmm0
|
||||
|
||||
jb .Lenc4x_tail
|
||||
|
||||
.byte 102,15,56,220,209
|
||||
.byte 102,15,56,220,217
|
||||
.byte 102,15,56,220,225
|
||||
.byte 102,15,56,220,233
|
||||
movups 176-120(%rsi),%xmm1
|
||||
|
||||
.byte 102,15,56,220,208
|
||||
.byte 102,15,56,220,216
|
||||
.byte 102,15,56,220,224
|
||||
.byte 102,15,56,220,232
|
||||
movups 192-120(%rsi),%xmm0
|
||||
|
||||
je .Lenc4x_tail
|
||||
|
||||
.byte 102,15,56,220,209
|
||||
.byte 102,15,56,220,217
|
||||
.byte 102,15,56,220,225
|
||||
.byte 102,15,56,220,233
|
||||
movups 208-120(%rsi),%xmm1
|
||||
|
||||
.byte 102,15,56,220,208
|
||||
.byte 102,15,56,220,216
|
||||
.byte 102,15,56,220,224
|
||||
.byte 102,15,56,220,232
|
||||
movups 224-120(%rsi),%xmm0
|
||||
jmp .Lenc4x_tail
|
||||
|
||||
.align 32
|
||||
.Lenc4x_tail:
|
||||
.byte 102,15,56,220,209
|
||||
.byte 102,15,56,220,217
|
||||
.byte 102,15,56,220,225
|
||||
.byte 102,15,56,220,233
|
||||
movdqu (%r8,%rbx,1),%xmm6
|
||||
movdqu 16-120(%rsi),%xmm1
|
||||
|
||||
.byte 102,15,56,221,208
|
||||
movdqu (%r9,%rbx,1),%xmm7
|
||||
pxor %xmm12,%xmm6
|
||||
.byte 102,15,56,221,216
|
||||
movdqu (%r10,%rbx,1),%xmm8
|
||||
pxor %xmm12,%xmm7
|
||||
.byte 102,15,56,221,224
|
||||
movdqu (%r11,%rbx,1),%xmm9
|
||||
pxor %xmm12,%xmm8
|
||||
.byte 102,15,56,221,232
|
||||
movdqu 32-120(%rsi),%xmm0
|
||||
pxor %xmm12,%xmm9
|
||||
|
||||
movups %xmm2,-16(%r12,%rbx,1)
|
||||
pxor %xmm6,%xmm2
|
||||
movups %xmm3,-16(%r13,%rbx,1)
|
||||
pxor %xmm7,%xmm3
|
||||
movups %xmm4,-16(%r14,%rbx,1)
|
||||
pxor %xmm8,%xmm4
|
||||
movups %xmm5,-16(%r15,%rbx,1)
|
||||
pxor %xmm9,%xmm5
|
||||
|
||||
decl %edx
|
||||
jnz .Loop_enc4x
|
||||
|
||||
movq 16(%rsp),%rax
|
||||
.cfi_def_cfa %rax,8
|
||||
movl 24(%rsp),%edx
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
leaq 160(%rdi),%rdi
|
||||
decl %edx
|
||||
jnz .Lenc4x_loop_grande
|
||||
|
||||
.Lenc4x_done:
|
||||
movq -48(%rax),%r15
|
||||
.cfi_restore %r15
|
||||
movq -40(%rax),%r14
|
||||
.cfi_restore %r14
|
||||
movq -32(%rax),%r13
|
||||
.cfi_restore %r13
|
||||
movq -24(%rax),%r12
|
||||
.cfi_restore %r12
|
||||
movq -16(%rax),%rbp
|
||||
.cfi_restore %rbp
|
||||
movq -8(%rax),%rbx
|
||||
.cfi_restore %rbx
|
||||
leaq (%rax),%rsp
|
||||
.cfi_def_cfa_register %rsp
|
||||
.Lenc4x_epilogue:
|
||||
.byte 0xf3,0xc3
|
||||
.cfi_endproc
|
||||
.size aesni_multi_cbc_encrypt,.-aesni_multi_cbc_encrypt
|
||||
|
||||
.globl aesni_multi_cbc_decrypt
|
||||
.type aesni_multi_cbc_decrypt,@function
|
||||
.align 32
|
||||
aesni_multi_cbc_decrypt:
|
||||
.cfi_startproc
|
||||
movq %rsp,%rax
|
||||
.cfi_def_cfa_register %rax
|
||||
pushq %rbx
|
||||
.cfi_offset %rbx,-16
|
||||
pushq %rbp
|
||||
.cfi_offset %rbp,-24
|
||||
pushq %r12
|
||||
.cfi_offset %r12,-32
|
||||
pushq %r13
|
||||
.cfi_offset %r13,-40
|
||||
pushq %r14
|
||||
.cfi_offset %r14,-48
|
||||
pushq %r15
|
||||
.cfi_offset %r15,-56
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
subq $48,%rsp
|
||||
andq $-64,%rsp
|
||||
movq %rax,16(%rsp)
|
||||
.cfi_escape 0x0f,0x05,0x77,0x10,0x06,0x23,0x08
|
||||
|
||||
.Ldec4x_body:
|
||||
movdqu (%rsi),%xmm12
|
||||
leaq 120(%rsi),%rsi
|
||||
leaq 80(%rdi),%rdi
|
||||
|
||||
.Ldec4x_loop_grande:
|
||||
movl %edx,24(%rsp)
|
||||
xorl %edx,%edx
|
||||
movl -64(%rdi),%ecx
|
||||
movq -80(%rdi),%r8
|
||||
cmpl %edx,%ecx
|
||||
movq -72(%rdi),%r12
|
||||
cmovgl %ecx,%edx
|
||||
testl %ecx,%ecx
|
||||
movdqu -56(%rdi),%xmm6
|
||||
movl %ecx,32(%rsp)
|
||||
cmovleq %rsp,%r8
|
||||
movl -24(%rdi),%ecx
|
||||
movq -40(%rdi),%r9
|
||||
cmpl %edx,%ecx
|
||||
movq -32(%rdi),%r13
|
||||
cmovgl %ecx,%edx
|
||||
testl %ecx,%ecx
|
||||
movdqu -16(%rdi),%xmm7
|
||||
movl %ecx,36(%rsp)
|
||||
cmovleq %rsp,%r9
|
||||
movl 16(%rdi),%ecx
|
||||
movq 0(%rdi),%r10
|
||||
cmpl %edx,%ecx
|
||||
movq 8(%rdi),%r14
|
||||
cmovgl %ecx,%edx
|
||||
testl %ecx,%ecx
|
||||
movdqu 24(%rdi),%xmm8
|
||||
movl %ecx,40(%rsp)
|
||||
cmovleq %rsp,%r10
|
||||
movl 56(%rdi),%ecx
|
||||
movq 40(%rdi),%r11
|
||||
cmpl %edx,%ecx
|
||||
movq 48(%rdi),%r15
|
||||
cmovgl %ecx,%edx
|
||||
testl %ecx,%ecx
|
||||
movdqu 64(%rdi),%xmm9
|
||||
movl %ecx,44(%rsp)
|
||||
cmovleq %rsp,%r11
|
||||
testl %edx,%edx
|
||||
jz .Ldec4x_done
|
||||
|
||||
movups 16-120(%rsi),%xmm1
|
||||
movups 32-120(%rsi),%xmm0
|
||||
movl 240-120(%rsi),%eax
|
||||
movdqu (%r8),%xmm2
|
||||
movdqu (%r9),%xmm3
|
||||
pxor %xmm12,%xmm2
|
||||
movdqu (%r10),%xmm4
|
||||
pxor %xmm12,%xmm3
|
||||
movdqu (%r11),%xmm5
|
||||
pxor %xmm12,%xmm4
|
||||
pxor %xmm12,%xmm5
|
||||
movdqa 32(%rsp),%xmm10
|
||||
xorq %rbx,%rbx
|
||||
jmp .Loop_dec4x
|
||||
|
||||
.align 32
|
||||
.Loop_dec4x:
|
||||
addq $16,%rbx
|
||||
leaq 16(%rsp),%rbp
|
||||
movl $1,%ecx
|
||||
subq %rbx,%rbp
|
||||
|
||||
.byte 102,15,56,222,209
|
||||
prefetcht0 31(%r8,%rbx,1)
|
||||
prefetcht0 31(%r9,%rbx,1)
|
||||
.byte 102,15,56,222,217
|
||||
prefetcht0 31(%r10,%rbx,1)
|
||||
prefetcht0 31(%r11,%rbx,1)
|
||||
.byte 102,15,56,222,225
|
||||
.byte 102,15,56,222,233
|
||||
movups 48-120(%rsi),%xmm1
|
||||
cmpl 32(%rsp),%ecx
|
||||
.byte 102,15,56,222,208
|
||||
.byte 102,15,56,222,216
|
||||
.byte 102,15,56,222,224
|
||||
cmovgeq %rbp,%r8
|
||||
cmovgq %rbp,%r12
|
||||
.byte 102,15,56,222,232
|
||||
movups -56(%rsi),%xmm0
|
||||
cmpl 36(%rsp),%ecx
|
||||
.byte 102,15,56,222,209
|
||||
.byte 102,15,56,222,217
|
||||
.byte 102,15,56,222,225
|
||||
cmovgeq %rbp,%r9
|
||||
cmovgq %rbp,%r13
|
||||
.byte 102,15,56,222,233
|
||||
movups -40(%rsi),%xmm1
|
||||
cmpl 40(%rsp),%ecx
|
||||
.byte 102,15,56,222,208
|
||||
.byte 102,15,56,222,216
|
||||
.byte 102,15,56,222,224
|
||||
cmovgeq %rbp,%r10
|
||||
cmovgq %rbp,%r14
|
||||
.byte 102,15,56,222,232
|
||||
movups -24(%rsi),%xmm0
|
||||
cmpl 44(%rsp),%ecx
|
||||
.byte 102,15,56,222,209
|
||||
.byte 102,15,56,222,217
|
||||
.byte 102,15,56,222,225
|
||||
cmovgeq %rbp,%r11
|
||||
cmovgq %rbp,%r15
|
||||
.byte 102,15,56,222,233
|
||||
movups -8(%rsi),%xmm1
|
||||
movdqa %xmm10,%xmm11
|
||||
.byte 102,15,56,222,208
|
||||
prefetcht0 15(%r12,%rbx,1)
|
||||
prefetcht0 15(%r13,%rbx,1)
|
||||
.byte 102,15,56,222,216
|
||||
prefetcht0 15(%r14,%rbx,1)
|
||||
prefetcht0 15(%r15,%rbx,1)
|
||||
.byte 102,15,56,222,224
|
||||
.byte 102,15,56,222,232
|
||||
movups 128-120(%rsi),%xmm0
|
||||
pxor %xmm12,%xmm12
|
||||
|
||||
.byte 102,15,56,222,209
|
||||
pcmpgtd %xmm12,%xmm11
|
||||
movdqu -120(%rsi),%xmm12
|
||||
.byte 102,15,56,222,217
|
||||
paddd %xmm11,%xmm10
|
||||
movdqa %xmm10,32(%rsp)
|
||||
.byte 102,15,56,222,225
|
||||
.byte 102,15,56,222,233
|
||||
movups 144-120(%rsi),%xmm1
|
||||
|
||||
cmpl $11,%eax
|
||||
|
||||
.byte 102,15,56,222,208
|
||||
.byte 102,15,56,222,216
|
||||
.byte 102,15,56,222,224
|
||||
.byte 102,15,56,222,232
|
||||
movups 160-120(%rsi),%xmm0
|
||||
|
||||
jb .Ldec4x_tail
|
||||
|
||||
.byte 102,15,56,222,209
|
||||
.byte 102,15,56,222,217
|
||||
.byte 102,15,56,222,225
|
||||
.byte 102,15,56,222,233
|
||||
movups 176-120(%rsi),%xmm1
|
||||
|
||||
.byte 102,15,56,222,208
|
||||
.byte 102,15,56,222,216
|
||||
.byte 102,15,56,222,224
|
||||
.byte 102,15,56,222,232
|
||||
movups 192-120(%rsi),%xmm0
|
||||
|
||||
je .Ldec4x_tail
|
||||
|
||||
.byte 102,15,56,222,209
|
||||
.byte 102,15,56,222,217
|
||||
.byte 102,15,56,222,225
|
||||
.byte 102,15,56,222,233
|
||||
movups 208-120(%rsi),%xmm1
|
||||
|
||||
.byte 102,15,56,222,208
|
||||
.byte 102,15,56,222,216
|
||||
.byte 102,15,56,222,224
|
||||
.byte 102,15,56,222,232
|
||||
movups 224-120(%rsi),%xmm0
|
||||
jmp .Ldec4x_tail
|
||||
|
||||
.align 32
|
||||
.Ldec4x_tail:
|
||||
.byte 102,15,56,222,209
|
||||
.byte 102,15,56,222,217
|
||||
.byte 102,15,56,222,225
|
||||
pxor %xmm0,%xmm6
|
||||
pxor %xmm0,%xmm7
|
||||
.byte 102,15,56,222,233
|
||||
movdqu 16-120(%rsi),%xmm1
|
||||
pxor %xmm0,%xmm8
|
||||
pxor %xmm0,%xmm9
|
||||
movdqu 32-120(%rsi),%xmm0
|
||||
|
||||
.byte 102,15,56,223,214
|
||||
.byte 102,15,56,223,223
|
||||
movdqu -16(%r8,%rbx,1),%xmm6
|
||||
movdqu -16(%r9,%rbx,1),%xmm7
|
||||
.byte 102,65,15,56,223,224
|
||||
.byte 102,65,15,56,223,233
|
||||
movdqu -16(%r10,%rbx,1),%xmm8
|
||||
movdqu -16(%r11,%rbx,1),%xmm9
|
||||
|
||||
movups %xmm2,-16(%r12,%rbx,1)
|
||||
movdqu (%r8,%rbx,1),%xmm2
|
||||
movups %xmm3,-16(%r13,%rbx,1)
|
||||
movdqu (%r9,%rbx,1),%xmm3
|
||||
pxor %xmm12,%xmm2
|
||||
movups %xmm4,-16(%r14,%rbx,1)
|
||||
movdqu (%r10,%rbx,1),%xmm4
|
||||
pxor %xmm12,%xmm3
|
||||
movups %xmm5,-16(%r15,%rbx,1)
|
||||
movdqu (%r11,%rbx,1),%xmm5
|
||||
pxor %xmm12,%xmm4
|
||||
pxor %xmm12,%xmm5
|
||||
|
||||
decl %edx
|
||||
jnz .Loop_dec4x
|
||||
|
||||
movq 16(%rsp),%rax
|
||||
.cfi_def_cfa %rax,8
|
||||
movl 24(%rsp),%edx
|
||||
|
||||
leaq 160(%rdi),%rdi
|
||||
decl %edx
|
||||
jnz .Ldec4x_loop_grande
|
||||
|
||||
.Ldec4x_done:
|
||||
movq -48(%rax),%r15
|
||||
.cfi_restore %r15
|
||||
movq -40(%rax),%r14
|
||||
.cfi_restore %r14
|
||||
movq -32(%rax),%r13
|
||||
.cfi_restore %r13
|
||||
movq -24(%rax),%r12
|
||||
.cfi_restore %r12
|
||||
movq -16(%rax),%rbp
|
||||
.cfi_restore %rbp
|
||||
movq -8(%rax),%rbx
|
||||
.cfi_restore %rbx
|
||||
leaq (%rax),%rsp
|
||||
.cfi_def_cfa_register %rsp
|
||||
.Ldec4x_epilogue:
|
||||
.byte 0xf3,0xc3
|
||||
.cfi_endproc
|
||||
.size aesni_multi_cbc_decrypt,.-aesni_multi_cbc_decrypt
|
1719
CryptoPkg/Library/OpensslLib/X64Gcc/crypto/aes/aesni-sha1-x86_64.S
Normal file
1719
CryptoPkg/Library/OpensslLib/X64Gcc/crypto/aes/aesni-sha1-x86_64.S
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,69 @@
|
||||
# WARNING: do not edit!
|
||||
# Generated from openssl/crypto/aes/asm/aesni-sha256-x86_64.pl
|
||||
#
|
||||
# Copyright 2013-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
#
|
||||
# Licensed under the OpenSSL license (the "License"). You may not use
|
||||
# this file except in compliance with the License. You can obtain a copy
|
||||
# in the file LICENSE in the source distribution or at
|
||||
# https://www.openssl.org/source/license.html
|
||||
|
||||
.text
|
||||
|
||||
|
||||
.globl aesni_cbc_sha256_enc
|
||||
.type aesni_cbc_sha256_enc,@function
|
||||
.align 16
|
||||
aesni_cbc_sha256_enc:
|
||||
.cfi_startproc
|
||||
xorl %eax,%eax
|
||||
cmpq $0,%rdi
|
||||
je .Lprobe
|
||||
ud2
|
||||
.Lprobe:
|
||||
.byte 0xf3,0xc3
|
||||
.cfi_endproc
|
||||
.size aesni_cbc_sha256_enc,.-aesni_cbc_sha256_enc
|
||||
|
||||
.align 64
|
||||
.type K256,@object
|
||||
K256:
|
||||
.long 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
|
||||
.long 0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5
|
||||
.long 0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
|
||||
.long 0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5
|
||||
.long 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
|
||||
.long 0xd807aa98,0x12835b01,0x243185be,0x550c7dc3
|
||||
.long 0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
|
||||
.long 0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174
|
||||
.long 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
|
||||
.long 0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc
|
||||
.long 0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
|
||||
.long 0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da
|
||||
.long 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
|
||||
.long 0x983e5152,0xa831c66d,0xb00327c8,0xbf597fc7
|
||||
.long 0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
|
||||
.long 0xc6e00bf3,0xd5a79147,0x06ca6351,0x14292967
|
||||
.long 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
|
||||
.long 0x27b70a85,0x2e1b2138,0x4d2c6dfc,0x53380d13
|
||||
.long 0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
|
||||
.long 0x650a7354,0x766a0abb,0x81c2c92e,0x92722c85
|
||||
.long 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
|
||||
.long 0xa2bfe8a1,0xa81a664b,0xc24b8b70,0xc76c51a3
|
||||
.long 0xd192e819,0xd6990624,0xf40e3585,0x106aa070
|
||||
.long 0xd192e819,0xd6990624,0xf40e3585,0x106aa070
|
||||
.long 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
|
||||
.long 0x19a4c116,0x1e376c08,0x2748774c,0x34b0bcb5
|
||||
.long 0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
|
||||
.long 0x391c0cb3,0x4ed8aa4a,0x5b9cca4f,0x682e6ff3
|
||||
.long 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
|
||||
.long 0x748f82ee,0x78a5636f,0x84c87814,0x8cc70208
|
||||
.long 0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
|
||||
.long 0x90befffa,0xa4506ceb,0xbef9a3f7,0xc67178f2
|
||||
|
||||
.long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
|
||||
.long 0x00010203,0x04050607,0x08090a0b,0x0c0d0e0f
|
||||
.long 0,0,0,0, 0,0,0,0, -1,-1,-1,-1
|
||||
.long 0,0,0,0, 0,0,0,0
|
||||
.byte 65,69,83,78,73,45,67,66,67,43,83,72,65,50,53,54,32,115,116,105,116,99,104,32,102,111,114,32,120,56,54,95,54,52,44,32,67,82,89,80,84,79,71,65,77,83,32,98,121,32,60,97,112,112,114,111,64,111,112,101,110,115,115,108,46,111,114,103,62,0
|
||||
.align 64
|
4484
CryptoPkg/Library/OpensslLib/X64Gcc/crypto/aes/aesni-x86_64.S
Normal file
4484
CryptoPkg/Library/OpensslLib/X64Gcc/crypto/aes/aesni-x86_64.S
Normal file
File diff suppressed because it is too large
Load Diff
863
CryptoPkg/Library/OpensslLib/X64Gcc/crypto/aes/vpaes-x86_64.S
Normal file
863
CryptoPkg/Library/OpensslLib/X64Gcc/crypto/aes/vpaes-x86_64.S
Normal file
@@ -0,0 +1,863 @@
|
||||
# WARNING: do not edit!
|
||||
# Generated from openssl/crypto/aes/asm/vpaes-x86_64.pl
|
||||
#
|
||||
# Copyright 2011-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
#
|
||||
# Licensed under the OpenSSL license (the "License"). You may not use
|
||||
# this file except in compliance with the License. You can obtain a copy
|
||||
# in the file LICENSE in the source distribution or at
|
||||
# https://www.openssl.org/source/license.html
|
||||
|
||||
.text
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.type _vpaes_encrypt_core,@function
|
||||
.align 16
|
||||
_vpaes_encrypt_core:
|
||||
.cfi_startproc
|
||||
movq %rdx,%r9
|
||||
movq $16,%r11
|
||||
movl 240(%rdx),%eax
|
||||
movdqa %xmm9,%xmm1
|
||||
movdqa .Lk_ipt(%rip),%xmm2
|
||||
pandn %xmm0,%xmm1
|
||||
movdqu (%r9),%xmm5
|
||||
psrld $4,%xmm1
|
||||
pand %xmm9,%xmm0
|
||||
.byte 102,15,56,0,208
|
||||
movdqa .Lk_ipt+16(%rip),%xmm0
|
||||
.byte 102,15,56,0,193
|
||||
pxor %xmm5,%xmm2
|
||||
addq $16,%r9
|
||||
pxor %xmm2,%xmm0
|
||||
leaq .Lk_mc_backward(%rip),%r10
|
||||
jmp .Lenc_entry
|
||||
|
||||
.align 16
|
||||
.Lenc_loop:
|
||||
|
||||
movdqa %xmm13,%xmm4
|
||||
movdqa %xmm12,%xmm0
|
||||
.byte 102,15,56,0,226
|
||||
.byte 102,15,56,0,195
|
||||
pxor %xmm5,%xmm4
|
||||
movdqa %xmm15,%xmm5
|
||||
pxor %xmm4,%xmm0
|
||||
movdqa -64(%r11,%r10,1),%xmm1
|
||||
.byte 102,15,56,0,234
|
||||
movdqa (%r11,%r10,1),%xmm4
|
||||
movdqa %xmm14,%xmm2
|
||||
.byte 102,15,56,0,211
|
||||
movdqa %xmm0,%xmm3
|
||||
pxor %xmm5,%xmm2
|
||||
.byte 102,15,56,0,193
|
||||
addq $16,%r9
|
||||
pxor %xmm2,%xmm0
|
||||
.byte 102,15,56,0,220
|
||||
addq $16,%r11
|
||||
pxor %xmm0,%xmm3
|
||||
.byte 102,15,56,0,193
|
||||
andq $0x30,%r11
|
||||
subq $1,%rax
|
||||
pxor %xmm3,%xmm0
|
||||
|
||||
.Lenc_entry:
|
||||
|
||||
movdqa %xmm9,%xmm1
|
||||
movdqa %xmm11,%xmm5
|
||||
pandn %xmm0,%xmm1
|
||||
psrld $4,%xmm1
|
||||
pand %xmm9,%xmm0
|
||||
.byte 102,15,56,0,232
|
||||
movdqa %xmm10,%xmm3
|
||||
pxor %xmm1,%xmm0
|
||||
.byte 102,15,56,0,217
|
||||
movdqa %xmm10,%xmm4
|
||||
pxor %xmm5,%xmm3
|
||||
.byte 102,15,56,0,224
|
||||
movdqa %xmm10,%xmm2
|
||||
pxor %xmm5,%xmm4
|
||||
.byte 102,15,56,0,211
|
||||
movdqa %xmm10,%xmm3
|
||||
pxor %xmm0,%xmm2
|
||||
.byte 102,15,56,0,220
|
||||
movdqu (%r9),%xmm5
|
||||
pxor %xmm1,%xmm3
|
||||
jnz .Lenc_loop
|
||||
|
||||
|
||||
movdqa -96(%r10),%xmm4
|
||||
movdqa -80(%r10),%xmm0
|
||||
.byte 102,15,56,0,226
|
||||
pxor %xmm5,%xmm4
|
||||
.byte 102,15,56,0,195
|
||||
movdqa 64(%r11,%r10,1),%xmm1
|
||||
pxor %xmm4,%xmm0
|
||||
.byte 102,15,56,0,193
|
||||
.byte 0xf3,0xc3
|
||||
.cfi_endproc
|
||||
.size _vpaes_encrypt_core,.-_vpaes_encrypt_core
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.type _vpaes_decrypt_core,@function
|
||||
.align 16
|
||||
_vpaes_decrypt_core:
|
||||
.cfi_startproc
|
||||
movq %rdx,%r9
|
||||
movl 240(%rdx),%eax
|
||||
movdqa %xmm9,%xmm1
|
||||
movdqa .Lk_dipt(%rip),%xmm2
|
||||
pandn %xmm0,%xmm1
|
||||
movq %rax,%r11
|
||||
psrld $4,%xmm1
|
||||
movdqu (%r9),%xmm5
|
||||
shlq $4,%r11
|
||||
pand %xmm9,%xmm0
|
||||
.byte 102,15,56,0,208
|
||||
movdqa .Lk_dipt+16(%rip),%xmm0
|
||||
xorq $0x30,%r11
|
||||
leaq .Lk_dsbd(%rip),%r10
|
||||
.byte 102,15,56,0,193
|
||||
andq $0x30,%r11
|
||||
pxor %xmm5,%xmm2
|
||||
movdqa .Lk_mc_forward+48(%rip),%xmm5
|
||||
pxor %xmm2,%xmm0
|
||||
addq $16,%r9
|
||||
addq %r10,%r11
|
||||
jmp .Ldec_entry
|
||||
|
||||
.align 16
|
||||
.Ldec_loop:
|
||||
|
||||
|
||||
|
||||
movdqa -32(%r10),%xmm4
|
||||
movdqa -16(%r10),%xmm1
|
||||
.byte 102,15,56,0,226
|
||||
.byte 102,15,56,0,203
|
||||
pxor %xmm4,%xmm0
|
||||
movdqa 0(%r10),%xmm4
|
||||
pxor %xmm1,%xmm0
|
||||
movdqa 16(%r10),%xmm1
|
||||
|
||||
.byte 102,15,56,0,226
|
||||
.byte 102,15,56,0,197
|
||||
.byte 102,15,56,0,203
|
||||
pxor %xmm4,%xmm0
|
||||
movdqa 32(%r10),%xmm4
|
||||
pxor %xmm1,%xmm0
|
||||
movdqa 48(%r10),%xmm1
|
||||
|
||||
.byte 102,15,56,0,226
|
||||
.byte 102,15,56,0,197
|
||||
.byte 102,15,56,0,203
|
||||
pxor %xmm4,%xmm0
|
||||
movdqa 64(%r10),%xmm4
|
||||
pxor %xmm1,%xmm0
|
||||
movdqa 80(%r10),%xmm1
|
||||
|
||||
.byte 102,15,56,0,226
|
||||
.byte 102,15,56,0,197
|
||||
.byte 102,15,56,0,203
|
||||
pxor %xmm4,%xmm0
|
||||
addq $16,%r9
|
||||
.byte 102,15,58,15,237,12
|
||||
pxor %xmm1,%xmm0
|
||||
subq $1,%rax
|
||||
|
||||
.Ldec_entry:
|
||||
|
||||
movdqa %xmm9,%xmm1
|
||||
pandn %xmm0,%xmm1
|
||||
movdqa %xmm11,%xmm2
|
||||
psrld $4,%xmm1
|
||||
pand %xmm9,%xmm0
|
||||
.byte 102,15,56,0,208
|
||||
movdqa %xmm10,%xmm3
|
||||
pxor %xmm1,%xmm0
|
||||
.byte 102,15,56,0,217
|
||||
movdqa %xmm10,%xmm4
|
||||
pxor %xmm2,%xmm3
|
||||
.byte 102,15,56,0,224
|
||||
pxor %xmm2,%xmm4
|
||||
movdqa %xmm10,%xmm2
|
||||
.byte 102,15,56,0,211
|
||||
movdqa %xmm10,%xmm3
|
||||
pxor %xmm0,%xmm2
|
||||
.byte 102,15,56,0,220
|
||||
movdqu (%r9),%xmm0
|
||||
pxor %xmm1,%xmm3
|
||||
jnz .Ldec_loop
|
||||
|
||||
|
||||
movdqa 96(%r10),%xmm4
|
||||
.byte 102,15,56,0,226
|
||||
pxor %xmm0,%xmm4
|
||||
movdqa 112(%r10),%xmm0
|
||||
movdqa -352(%r11),%xmm2
|
||||
.byte 102,15,56,0,195
|
||||
pxor %xmm4,%xmm0
|
||||
.byte 102,15,56,0,194
|
||||
.byte 0xf3,0xc3
|
||||
.cfi_endproc
|
||||
.size _vpaes_decrypt_core,.-_vpaes_decrypt_core
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.type _vpaes_schedule_core,@function
|
||||
.align 16
|
||||
_vpaes_schedule_core:
|
||||
.cfi_startproc
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
call _vpaes_preheat
|
||||
movdqa .Lk_rcon(%rip),%xmm8
|
||||
movdqu (%rdi),%xmm0
|
||||
|
||||
|
||||
movdqa %xmm0,%xmm3
|
||||
leaq .Lk_ipt(%rip),%r11
|
||||
call _vpaes_schedule_transform
|
||||
movdqa %xmm0,%xmm7
|
||||
|
||||
leaq .Lk_sr(%rip),%r10
|
||||
testq %rcx,%rcx
|
||||
jnz .Lschedule_am_decrypting
|
||||
|
||||
|
||||
movdqu %xmm0,(%rdx)
|
||||
jmp .Lschedule_go
|
||||
|
||||
.Lschedule_am_decrypting:
|
||||
|
||||
movdqa (%r8,%r10,1),%xmm1
|
||||
.byte 102,15,56,0,217
|
||||
movdqu %xmm3,(%rdx)
|
||||
xorq $0x30,%r8
|
||||
|
||||
.Lschedule_go:
|
||||
cmpl $192,%esi
|
||||
ja .Lschedule_256
|
||||
je .Lschedule_192
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.Lschedule_128:
|
||||
movl $10,%esi
|
||||
|
||||
.Loop_schedule_128:
|
||||
call _vpaes_schedule_round
|
||||
decq %rsi
|
||||
jz .Lschedule_mangle_last
|
||||
call _vpaes_schedule_mangle
|
||||
jmp .Loop_schedule_128
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.align 16
|
||||
.Lschedule_192:
|
||||
movdqu 8(%rdi),%xmm0
|
||||
call _vpaes_schedule_transform
|
||||
movdqa %xmm0,%xmm6
|
||||
pxor %xmm4,%xmm4
|
||||
movhlps %xmm4,%xmm6
|
||||
movl $4,%esi
|
||||
|
||||
.Loop_schedule_192:
|
||||
call _vpaes_schedule_round
|
||||
.byte 102,15,58,15,198,8
|
||||
call _vpaes_schedule_mangle
|
||||
call _vpaes_schedule_192_smear
|
||||
call _vpaes_schedule_mangle
|
||||
call _vpaes_schedule_round
|
||||
decq %rsi
|
||||
jz .Lschedule_mangle_last
|
||||
call _vpaes_schedule_mangle
|
||||
call _vpaes_schedule_192_smear
|
||||
jmp .Loop_schedule_192
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.align 16
|
||||
.Lschedule_256:
|
||||
movdqu 16(%rdi),%xmm0
|
||||
call _vpaes_schedule_transform
|
||||
movl $7,%esi
|
||||
|
||||
.Loop_schedule_256:
|
||||
call _vpaes_schedule_mangle
|
||||
movdqa %xmm0,%xmm6
|
||||
|
||||
|
||||
call _vpaes_schedule_round
|
||||
decq %rsi
|
||||
jz .Lschedule_mangle_last
|
||||
call _vpaes_schedule_mangle
|
||||
|
||||
|
||||
pshufd $0xFF,%xmm0,%xmm0
|
||||
movdqa %xmm7,%xmm5
|
||||
movdqa %xmm6,%xmm7
|
||||
call _vpaes_schedule_low_round
|
||||
movdqa %xmm5,%xmm7
|
||||
|
||||
jmp .Loop_schedule_256
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.align 16
|
||||
.Lschedule_mangle_last:
|
||||
|
||||
leaq .Lk_deskew(%rip),%r11
|
||||
testq %rcx,%rcx
|
||||
jnz .Lschedule_mangle_last_dec
|
||||
|
||||
|
||||
movdqa (%r8,%r10,1),%xmm1
|
||||
.byte 102,15,56,0,193
|
||||
leaq .Lk_opt(%rip),%r11
|
||||
addq $32,%rdx
|
||||
|
||||
.Lschedule_mangle_last_dec:
|
||||
addq $-16,%rdx
|
||||
pxor .Lk_s63(%rip),%xmm0
|
||||
call _vpaes_schedule_transform
|
||||
movdqu %xmm0,(%rdx)
|
||||
|
||||
|
||||
pxor %xmm0,%xmm0
|
||||
pxor %xmm1,%xmm1
|
||||
pxor %xmm2,%xmm2
|
||||
pxor %xmm3,%xmm3
|
||||
pxor %xmm4,%xmm4
|
||||
pxor %xmm5,%xmm5
|
||||
pxor %xmm6,%xmm6
|
||||
pxor %xmm7,%xmm7
|
||||
.byte 0xf3,0xc3
|
||||
.cfi_endproc
|
||||
.size _vpaes_schedule_core,.-_vpaes_schedule_core
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.type _vpaes_schedule_192_smear,@function
|
||||
.align 16
|
||||
_vpaes_schedule_192_smear:
|
||||
.cfi_startproc
|
||||
pshufd $0x80,%xmm6,%xmm1
|
||||
pshufd $0xFE,%xmm7,%xmm0
|
||||
pxor %xmm1,%xmm6
|
||||
pxor %xmm1,%xmm1
|
||||
pxor %xmm0,%xmm6
|
||||
movdqa %xmm6,%xmm0
|
||||
movhlps %xmm1,%xmm6
|
||||
.byte 0xf3,0xc3
|
||||
.cfi_endproc
|
||||
.size _vpaes_schedule_192_smear,.-_vpaes_schedule_192_smear
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.type _vpaes_schedule_round,@function
|
||||
.align 16
|
||||
_vpaes_schedule_round:
|
||||
.cfi_startproc
|
||||
|
||||
pxor %xmm1,%xmm1
|
||||
.byte 102,65,15,58,15,200,15
|
||||
.byte 102,69,15,58,15,192,15
|
||||
pxor %xmm1,%xmm7
|
||||
|
||||
|
||||
pshufd $0xFF,%xmm0,%xmm0
|
||||
.byte 102,15,58,15,192,1
|
||||
|
||||
|
||||
|
||||
|
||||
_vpaes_schedule_low_round:
|
||||
|
||||
movdqa %xmm7,%xmm1
|
||||
pslldq $4,%xmm7
|
||||
pxor %xmm1,%xmm7
|
||||
movdqa %xmm7,%xmm1
|
||||
pslldq $8,%xmm7
|
||||
pxor %xmm1,%xmm7
|
||||
pxor .Lk_s63(%rip),%xmm7
|
||||
|
||||
|
||||
movdqa %xmm9,%xmm1
|
||||
pandn %xmm0,%xmm1
|
||||
psrld $4,%xmm1
|
||||
pand %xmm9,%xmm0
|
||||
movdqa %xmm11,%xmm2
|
||||
.byte 102,15,56,0,208
|
||||
pxor %xmm1,%xmm0
|
||||
movdqa %xmm10,%xmm3
|
||||
.byte 102,15,56,0,217
|
||||
pxor %xmm2,%xmm3
|
||||
movdqa %xmm10,%xmm4
|
||||
.byte 102,15,56,0,224
|
||||
pxor %xmm2,%xmm4
|
||||
movdqa %xmm10,%xmm2
|
||||
.byte 102,15,56,0,211
|
||||
pxor %xmm0,%xmm2
|
||||
movdqa %xmm10,%xmm3
|
||||
.byte 102,15,56,0,220
|
||||
pxor %xmm1,%xmm3
|
||||
movdqa %xmm13,%xmm4
|
||||
.byte 102,15,56,0,226
|
||||
movdqa %xmm12,%xmm0
|
||||
.byte 102,15,56,0,195
|
||||
pxor %xmm4,%xmm0
|
||||
|
||||
|
||||
pxor %xmm7,%xmm0
|
||||
movdqa %xmm0,%xmm7
|
||||
.byte 0xf3,0xc3
|
||||
.cfi_endproc
|
||||
.size _vpaes_schedule_round,.-_vpaes_schedule_round
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.type _vpaes_schedule_transform,@function
|
||||
.align 16
|
||||
_vpaes_schedule_transform:
|
||||
.cfi_startproc
|
||||
movdqa %xmm9,%xmm1
|
||||
pandn %xmm0,%xmm1
|
||||
psrld $4,%xmm1
|
||||
pand %xmm9,%xmm0
|
||||
movdqa (%r11),%xmm2
|
||||
.byte 102,15,56,0,208
|
||||
movdqa 16(%r11),%xmm0
|
||||
.byte 102,15,56,0,193
|
||||
pxor %xmm2,%xmm0
|
||||
.byte 0xf3,0xc3
|
||||
.cfi_endproc
|
||||
.size _vpaes_schedule_transform,.-_vpaes_schedule_transform
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.type _vpaes_schedule_mangle,@function
|
||||
.align 16
|
||||
_vpaes_schedule_mangle:
|
||||
.cfi_startproc
|
||||
movdqa %xmm0,%xmm4
|
||||
movdqa .Lk_mc_forward(%rip),%xmm5
|
||||
testq %rcx,%rcx
|
||||
jnz .Lschedule_mangle_dec
|
||||
|
||||
|
||||
addq $16,%rdx
|
||||
pxor .Lk_s63(%rip),%xmm4
|
||||
.byte 102,15,56,0,229
|
||||
movdqa %xmm4,%xmm3
|
||||
.byte 102,15,56,0,229
|
||||
pxor %xmm4,%xmm3
|
||||
.byte 102,15,56,0,229
|
||||
pxor %xmm4,%xmm3
|
||||
|
||||
jmp .Lschedule_mangle_both
|
||||
.align 16
|
||||
.Lschedule_mangle_dec:
|
||||
|
||||
leaq .Lk_dksd(%rip),%r11
|
||||
movdqa %xmm9,%xmm1
|
||||
pandn %xmm4,%xmm1
|
||||
psrld $4,%xmm1
|
||||
pand %xmm9,%xmm4
|
||||
|
||||
movdqa 0(%r11),%xmm2
|
||||
.byte 102,15,56,0,212
|
||||
movdqa 16(%r11),%xmm3
|
||||
.byte 102,15,56,0,217
|
||||
pxor %xmm2,%xmm3
|
||||
.byte 102,15,56,0,221
|
||||
|
||||
movdqa 32(%r11),%xmm2
|
||||
.byte 102,15,56,0,212
|
||||
pxor %xmm3,%xmm2
|
||||
movdqa 48(%r11),%xmm3
|
||||
.byte 102,15,56,0,217
|
||||
pxor %xmm2,%xmm3
|
||||
.byte 102,15,56,0,221
|
||||
|
||||
movdqa 64(%r11),%xmm2
|
||||
.byte 102,15,56,0,212
|
||||
pxor %xmm3,%xmm2
|
||||
movdqa 80(%r11),%xmm3
|
||||
.byte 102,15,56,0,217
|
||||
pxor %xmm2,%xmm3
|
||||
.byte 102,15,56,0,221
|
||||
|
||||
movdqa 96(%r11),%xmm2
|
||||
.byte 102,15,56,0,212
|
||||
pxor %xmm3,%xmm2
|
||||
movdqa 112(%r11),%xmm3
|
||||
.byte 102,15,56,0,217
|
||||
pxor %xmm2,%xmm3
|
||||
|
||||
addq $-16,%rdx
|
||||
|
||||
.Lschedule_mangle_both:
|
||||
movdqa (%r8,%r10,1),%xmm1
|
||||
.byte 102,15,56,0,217
|
||||
addq $-16,%r8
|
||||
andq $0x30,%r8
|
||||
movdqu %xmm3,(%rdx)
|
||||
.byte 0xf3,0xc3
|
||||
.cfi_endproc
|
||||
.size _vpaes_schedule_mangle,.-_vpaes_schedule_mangle
|
||||
|
||||
|
||||
|
||||
|
||||
.globl vpaes_set_encrypt_key
|
||||
.type vpaes_set_encrypt_key,@function
|
||||
.align 16
|
||||
vpaes_set_encrypt_key:
|
||||
.cfi_startproc
|
||||
movl %esi,%eax
|
||||
shrl $5,%eax
|
||||
addl $5,%eax
|
||||
movl %eax,240(%rdx)
|
||||
|
||||
movl $0,%ecx
|
||||
movl $0x30,%r8d
|
||||
call _vpaes_schedule_core
|
||||
xorl %eax,%eax
|
||||
.byte 0xf3,0xc3
|
||||
.cfi_endproc
|
||||
.size vpaes_set_encrypt_key,.-vpaes_set_encrypt_key
|
||||
|
||||
.globl vpaes_set_decrypt_key
|
||||
.type vpaes_set_decrypt_key,@function
|
||||
.align 16
|
||||
vpaes_set_decrypt_key:
|
||||
.cfi_startproc
|
||||
movl %esi,%eax
|
||||
shrl $5,%eax
|
||||
addl $5,%eax
|
||||
movl %eax,240(%rdx)
|
||||
shll $4,%eax
|
||||
leaq 16(%rdx,%rax,1),%rdx
|
||||
|
||||
movl $1,%ecx
|
||||
movl %esi,%r8d
|
||||
shrl $1,%r8d
|
||||
andl $32,%r8d
|
||||
xorl $32,%r8d
|
||||
call _vpaes_schedule_core
|
||||
xorl %eax,%eax
|
||||
.byte 0xf3,0xc3
|
||||
.cfi_endproc
|
||||
.size vpaes_set_decrypt_key,.-vpaes_set_decrypt_key
|
||||
|
||||
.globl vpaes_encrypt
|
||||
.type vpaes_encrypt,@function
|
||||
.align 16
|
||||
vpaes_encrypt:
|
||||
.cfi_startproc
|
||||
movdqu (%rdi),%xmm0
|
||||
call _vpaes_preheat
|
||||
call _vpaes_encrypt_core
|
||||
movdqu %xmm0,(%rsi)
|
||||
.byte 0xf3,0xc3
|
||||
.cfi_endproc
|
||||
.size vpaes_encrypt,.-vpaes_encrypt
|
||||
|
||||
.globl vpaes_decrypt
|
||||
.type vpaes_decrypt,@function
|
||||
.align 16
|
||||
vpaes_decrypt:
|
||||
.cfi_startproc
|
||||
movdqu (%rdi),%xmm0
|
||||
call _vpaes_preheat
|
||||
call _vpaes_decrypt_core
|
||||
movdqu %xmm0,(%rsi)
|
||||
.byte 0xf3,0xc3
|
||||
.cfi_endproc
|
||||
.size vpaes_decrypt,.-vpaes_decrypt
|
||||
.globl vpaes_cbc_encrypt
|
||||
.type vpaes_cbc_encrypt,@function
|
||||
.align 16
|
||||
vpaes_cbc_encrypt:
|
||||
.cfi_startproc
|
||||
xchgq %rcx,%rdx
|
||||
subq $16,%rcx
|
||||
jc .Lcbc_abort
|
||||
movdqu (%r8),%xmm6
|
||||
subq %rdi,%rsi
|
||||
call _vpaes_preheat
|
||||
cmpl $0,%r9d
|
||||
je .Lcbc_dec_loop
|
||||
jmp .Lcbc_enc_loop
|
||||
.align 16
|
||||
.Lcbc_enc_loop:
|
||||
movdqu (%rdi),%xmm0
|
||||
pxor %xmm6,%xmm0
|
||||
call _vpaes_encrypt_core
|
||||
movdqa %xmm0,%xmm6
|
||||
movdqu %xmm0,(%rsi,%rdi,1)
|
||||
leaq 16(%rdi),%rdi
|
||||
subq $16,%rcx
|
||||
jnc .Lcbc_enc_loop
|
||||
jmp .Lcbc_done
|
||||
.align 16
|
||||
.Lcbc_dec_loop:
|
||||
movdqu (%rdi),%xmm0
|
||||
movdqa %xmm0,%xmm7
|
||||
call _vpaes_decrypt_core
|
||||
pxor %xmm6,%xmm0
|
||||
movdqa %xmm7,%xmm6
|
||||
movdqu %xmm0,(%rsi,%rdi,1)
|
||||
leaq 16(%rdi),%rdi
|
||||
subq $16,%rcx
|
||||
jnc .Lcbc_dec_loop
|
||||
.Lcbc_done:
|
||||
movdqu %xmm6,(%r8)
|
||||
.Lcbc_abort:
|
||||
.byte 0xf3,0xc3
|
||||
.cfi_endproc
|
||||
.size vpaes_cbc_encrypt,.-vpaes_cbc_encrypt
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.type _vpaes_preheat,@function
|
||||
.align 16
|
||||
_vpaes_preheat:
|
||||
.cfi_startproc
|
||||
leaq .Lk_s0F(%rip),%r10
|
||||
movdqa -32(%r10),%xmm10
|
||||
movdqa -16(%r10),%xmm11
|
||||
movdqa 0(%r10),%xmm9
|
||||
movdqa 48(%r10),%xmm13
|
||||
movdqa 64(%r10),%xmm12
|
||||
movdqa 80(%r10),%xmm15
|
||||
movdqa 96(%r10),%xmm14
|
||||
.byte 0xf3,0xc3
|
||||
.cfi_endproc
|
||||
.size _vpaes_preheat,.-_vpaes_preheat
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.type _vpaes_consts,@object
|
||||
.align 64
|
||||
_vpaes_consts:
|
||||
.Lk_inv:
|
||||
.quad 0x0E05060F0D080180, 0x040703090A0B0C02
|
||||
.quad 0x01040A060F0B0780, 0x030D0E0C02050809
|
||||
|
||||
.Lk_s0F:
|
||||
.quad 0x0F0F0F0F0F0F0F0F, 0x0F0F0F0F0F0F0F0F
|
||||
|
||||
.Lk_ipt:
|
||||
.quad 0xC2B2E8985A2A7000, 0xCABAE09052227808
|
||||
.quad 0x4C01307D317C4D00, 0xCD80B1FCB0FDCC81
|
||||
|
||||
.Lk_sb1:
|
||||
.quad 0xB19BE18FCB503E00, 0xA5DF7A6E142AF544
|
||||
.quad 0x3618D415FAE22300, 0x3BF7CCC10D2ED9EF
|
||||
.Lk_sb2:
|
||||
.quad 0xE27A93C60B712400, 0x5EB7E955BC982FCD
|
||||
.quad 0x69EB88400AE12900, 0xC2A163C8AB82234A
|
||||
.Lk_sbo:
|
||||
.quad 0xD0D26D176FBDC700, 0x15AABF7AC502A878
|
||||
.quad 0xCFE474A55FBB6A00, 0x8E1E90D1412B35FA
|
||||
|
||||
.Lk_mc_forward:
|
||||
.quad 0x0407060500030201, 0x0C0F0E0D080B0A09
|
||||
.quad 0x080B0A0904070605, 0x000302010C0F0E0D
|
||||
.quad 0x0C0F0E0D080B0A09, 0x0407060500030201
|
||||
.quad 0x000302010C0F0E0D, 0x080B0A0904070605
|
||||
|
||||
.Lk_mc_backward:
|
||||
.quad 0x0605040702010003, 0x0E0D0C0F0A09080B
|
||||
.quad 0x020100030E0D0C0F, 0x0A09080B06050407
|
||||
.quad 0x0E0D0C0F0A09080B, 0x0605040702010003
|
||||
.quad 0x0A09080B06050407, 0x020100030E0D0C0F
|
||||
|
||||
.Lk_sr:
|
||||
.quad 0x0706050403020100, 0x0F0E0D0C0B0A0908
|
||||
.quad 0x030E09040F0A0500, 0x0B06010C07020D08
|
||||
.quad 0x0F060D040B020900, 0x070E050C030A0108
|
||||
.quad 0x0B0E0104070A0D00, 0x0306090C0F020508
|
||||
|
||||
.Lk_rcon:
|
||||
.quad 0x1F8391B9AF9DEEB6, 0x702A98084D7C7D81
|
||||
|
||||
.Lk_s63:
|
||||
.quad 0x5B5B5B5B5B5B5B5B, 0x5B5B5B5B5B5B5B5B
|
||||
|
||||
.Lk_opt:
|
||||
.quad 0xFF9F4929D6B66000, 0xF7974121DEBE6808
|
||||
.quad 0x01EDBD5150BCEC00, 0xE10D5DB1B05C0CE0
|
||||
|
||||
.Lk_deskew:
|
||||
.quad 0x07E4A34047A4E300, 0x1DFEB95A5DBEF91A
|
||||
.quad 0x5F36B5DC83EA6900, 0x2841C2ABF49D1E77
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.Lk_dksd:
|
||||
.quad 0xFEB91A5DA3E44700, 0x0740E3A45A1DBEF9
|
||||
.quad 0x41C277F4B5368300, 0x5FDC69EAAB289D1E
|
||||
.Lk_dksb:
|
||||
.quad 0x9A4FCA1F8550D500, 0x03D653861CC94C99
|
||||
.quad 0x115BEDA7B6FC4A00, 0xD993256F7E3482C8
|
||||
.Lk_dkse:
|
||||
.quad 0xD5031CCA1FC9D600, 0x53859A4C994F5086
|
||||
.quad 0xA23196054FDC7BE8, 0xCD5EF96A20B31487
|
||||
.Lk_dks9:
|
||||
.quad 0xB6116FC87ED9A700, 0x4AED933482255BFC
|
||||
.quad 0x4576516227143300, 0x8BB89FACE9DAFDCE
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.Lk_dipt:
|
||||
.quad 0x0F505B040B545F00, 0x154A411E114E451A
|
||||
.quad 0x86E383E660056500, 0x12771772F491F194
|
||||
|
||||
.Lk_dsb9:
|
||||
.quad 0x851C03539A86D600, 0xCAD51F504F994CC9
|
||||
.quad 0xC03B1789ECD74900, 0x725E2C9EB2FBA565
|
||||
.Lk_dsbd:
|
||||
.quad 0x7D57CCDFE6B1A200, 0xF56E9B13882A4439
|
||||
.quad 0x3CE2FAF724C6CB00, 0x2931180D15DEEFD3
|
||||
.Lk_dsbb:
|
||||
.quad 0xD022649296B44200, 0x602646F6B0F2D404
|
||||
.quad 0xC19498A6CD596700, 0xF3FF0C3E3255AA6B
|
||||
.Lk_dsbe:
|
||||
.quad 0x46F2929626D4D000, 0x2242600464B4F6B0
|
||||
.quad 0x0C55A6CDFFAAC100, 0x9467F36B98593E32
|
||||
.Lk_dsbo:
|
||||
.quad 0x1387EA537EF94000, 0xC7AA6DB9D4943E2D
|
||||
.quad 0x12D7560F93441D00, 0xCA4B8159D8C58E9C
|
||||
.byte 86,101,99,116,111,114,32,80,101,114,109,117,116,97,116,105,111,110,32,65,69,83,32,102,111,114,32,120,56,54,95,54,52,47,83,83,83,69,51,44,32,77,105,107,101,32,72,97,109,98,117,114,103,32,40,83,116,97,110,102,111,114,100,32,85,110,105,118,101,114,115,105,116,121,41,0
|
||||
.align 64
|
||||
.size _vpaes_consts,.-_vpaes_consts
|
@@ -0,0 +1,29 @@
|
||||
# WARNING: do not edit!
|
||||
# Generated from openssl/crypto/modes/asm/aesni-gcm-x86_64.pl
|
||||
#
|
||||
# Copyright 2013-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
#
|
||||
# Licensed under the OpenSSL license (the "License"). You may not use
|
||||
# this file except in compliance with the License. You can obtain a copy
|
||||
# in the file LICENSE in the source distribution or at
|
||||
# https://www.openssl.org/source/license.html
|
||||
|
||||
.text
|
||||
|
||||
.globl aesni_gcm_encrypt
|
||||
.type aesni_gcm_encrypt,@function
|
||||
aesni_gcm_encrypt:
|
||||
.cfi_startproc
|
||||
xorl %eax,%eax
|
||||
.byte 0xf3,0xc3
|
||||
.cfi_endproc
|
||||
.size aesni_gcm_encrypt,.-aesni_gcm_encrypt
|
||||
|
||||
.globl aesni_gcm_decrypt
|
||||
.type aesni_gcm_decrypt,@function
|
||||
aesni_gcm_decrypt:
|
||||
.cfi_startproc
|
||||
xorl %eax,%eax
|
||||
.byte 0xf3,0xc3
|
||||
.cfi_endproc
|
||||
.size aesni_gcm_decrypt,.-aesni_gcm_decrypt
|
1386
CryptoPkg/Library/OpensslLib/X64Gcc/crypto/modes/ghash-x86_64.S
Normal file
1386
CryptoPkg/Library/OpensslLib/X64Gcc/crypto/modes/ghash-x86_64.S
Normal file
File diff suppressed because it is too large
Load Diff
2962
CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha/sha1-mb-x86_64.S
Normal file
2962
CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha/sha1-mb-x86_64.S
Normal file
File diff suppressed because it is too large
Load Diff
2631
CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha/sha1-x86_64.S
Normal file
2631
CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha/sha1-x86_64.S
Normal file
File diff suppressed because it is too large
Load Diff
3286
CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha/sha256-mb-x86_64.S
Normal file
3286
CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha/sha256-mb-x86_64.S
Normal file
File diff suppressed because it is too large
Load Diff
3097
CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha/sha256-x86_64.S
Normal file
3097
CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha/sha256-x86_64.S
Normal file
File diff suppressed because it is too large
Load Diff
1811
CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha/sha512-x86_64.S
Normal file
1811
CryptoPkg/Library/OpensslLib/X64Gcc/crypto/sha/sha512-x86_64.S
Normal file
File diff suppressed because it is too large
Load Diff
491
CryptoPkg/Library/OpensslLib/X64Gcc/crypto/x86_64cpuid.S
Normal file
491
CryptoPkg/Library/OpensslLib/X64Gcc/crypto/x86_64cpuid.S
Normal file
@@ -0,0 +1,491 @@
|
||||
# WARNING: do not edit!
|
||||
# Generated from openssl/crypto/x86_64cpuid.pl
|
||||
#
|
||||
# Copyright 2005-2020 The OpenSSL Project Authors. All Rights Reserved.
|
||||
#
|
||||
# Licensed under the OpenSSL license (the "License"). You may not use
|
||||
# this file except in compliance with the License. You can obtain a copy
|
||||
# in the file LICENSE in the source distribution or at
|
||||
# https://www.openssl.org/source/license.html
|
||||
|
||||
|
||||
.hidden OPENSSL_cpuid_setup
|
||||
.section .init
|
||||
call OPENSSL_cpuid_setup
|
||||
|
||||
.hidden OPENSSL_ia32cap_P
|
||||
.comm OPENSSL_ia32cap_P,16,4
|
||||
|
||||
.text
|
||||
|
||||
.globl OPENSSL_atomic_add
|
||||
.type OPENSSL_atomic_add,@function
|
||||
.align 16
|
||||
OPENSSL_atomic_add:
|
||||
.cfi_startproc
|
||||
movl (%rdi),%eax
|
||||
.Lspin: leaq (%rsi,%rax,1),%r8
|
||||
.byte 0xf0
|
||||
cmpxchgl %r8d,(%rdi)
|
||||
jne .Lspin
|
||||
movl %r8d,%eax
|
||||
.byte 0x48,0x98
|
||||
.byte 0xf3,0xc3
|
||||
.cfi_endproc
|
||||
.size OPENSSL_atomic_add,.-OPENSSL_atomic_add
|
||||
|
||||
.globl OPENSSL_rdtsc
|
||||
.type OPENSSL_rdtsc,@function
|
||||
.align 16
|
||||
OPENSSL_rdtsc:
|
||||
.cfi_startproc
|
||||
rdtsc
|
||||
shlq $32,%rdx
|
||||
orq %rdx,%rax
|
||||
.byte 0xf3,0xc3
|
||||
.cfi_endproc
|
||||
.size OPENSSL_rdtsc,.-OPENSSL_rdtsc
|
||||
|
||||
.globl OPENSSL_ia32_cpuid
|
||||
.type OPENSSL_ia32_cpuid,@function
|
||||
.align 16
|
||||
OPENSSL_ia32_cpuid:
|
||||
.cfi_startproc
|
||||
movq %rbx,%r8
|
||||
.cfi_register %rbx,%r8
|
||||
|
||||
xorl %eax,%eax
|
||||
movq %rax,8(%rdi)
|
||||
cpuid
|
||||
movl %eax,%r11d
|
||||
|
||||
xorl %eax,%eax
|
||||
cmpl $0x756e6547,%ebx
|
||||
setne %al
|
||||
movl %eax,%r9d
|
||||
cmpl $0x49656e69,%edx
|
||||
setne %al
|
||||
orl %eax,%r9d
|
||||
cmpl $0x6c65746e,%ecx
|
||||
setne %al
|
||||
orl %eax,%r9d
|
||||
jz .Lintel
|
||||
|
||||
cmpl $0x68747541,%ebx
|
||||
setne %al
|
||||
movl %eax,%r10d
|
||||
cmpl $0x69746E65,%edx
|
||||
setne %al
|
||||
orl %eax,%r10d
|
||||
cmpl $0x444D4163,%ecx
|
||||
setne %al
|
||||
orl %eax,%r10d
|
||||
jnz .Lintel
|
||||
|
||||
|
||||
movl $0x80000000,%eax
|
||||
cpuid
|
||||
cmpl $0x80000001,%eax
|
||||
jb .Lintel
|
||||
movl %eax,%r10d
|
||||
movl $0x80000001,%eax
|
||||
cpuid
|
||||
orl %ecx,%r9d
|
||||
andl $0x00000801,%r9d
|
||||
|
||||
cmpl $0x80000008,%r10d
|
||||
jb .Lintel
|
||||
|
||||
movl $0x80000008,%eax
|
||||
cpuid
|
||||
movzbq %cl,%r10
|
||||
incq %r10
|
||||
|
||||
movl $1,%eax
|
||||
cpuid
|
||||
btl $28,%edx
|
||||
jnc .Lgeneric
|
||||
shrl $16,%ebx
|
||||
cmpb %r10b,%bl
|
||||
ja .Lgeneric
|
||||
andl $0xefffffff,%edx
|
||||
jmp .Lgeneric
|
||||
|
||||
.Lintel:
|
||||
cmpl $4,%r11d
|
||||
movl $-1,%r10d
|
||||
jb .Lnocacheinfo
|
||||
|
||||
movl $4,%eax
|
||||
movl $0,%ecx
|
||||
cpuid
|
||||
movl %eax,%r10d
|
||||
shrl $14,%r10d
|
||||
andl $0xfff,%r10d
|
||||
|
||||
.Lnocacheinfo:
|
||||
movl $1,%eax
|
||||
cpuid
|
||||
movd %eax,%xmm0
|
||||
andl $0xbfefffff,%edx
|
||||
cmpl $0,%r9d
|
||||
jne .Lnotintel
|
||||
orl $0x40000000,%edx
|
||||
andb $15,%ah
|
||||
cmpb $15,%ah
|
||||
jne .LnotP4
|
||||
orl $0x00100000,%edx
|
||||
.LnotP4:
|
||||
cmpb $6,%ah
|
||||
jne .Lnotintel
|
||||
andl $0x0fff0ff0,%eax
|
||||
cmpl $0x00050670,%eax
|
||||
je .Lknights
|
||||
cmpl $0x00080650,%eax
|
||||
jne .Lnotintel
|
||||
.Lknights:
|
||||
andl $0xfbffffff,%ecx
|
||||
|
||||
.Lnotintel:
|
||||
btl $28,%edx
|
||||
jnc .Lgeneric
|
||||
andl $0xefffffff,%edx
|
||||
cmpl $0,%r10d
|
||||
je .Lgeneric
|
||||
|
||||
orl $0x10000000,%edx
|
||||
shrl $16,%ebx
|
||||
cmpb $1,%bl
|
||||
ja .Lgeneric
|
||||
andl $0xefffffff,%edx
|
||||
.Lgeneric:
|
||||
andl $0x00000800,%r9d
|
||||
andl $0xfffff7ff,%ecx
|
||||
orl %ecx,%r9d
|
||||
|
||||
movl %edx,%r10d
|
||||
|
||||
cmpl $7,%r11d
|
||||
jb .Lno_extended_info
|
||||
movl $7,%eax
|
||||
xorl %ecx,%ecx
|
||||
cpuid
|
||||
btl $26,%r9d
|
||||
jc .Lnotknights
|
||||
andl $0xfff7ffff,%ebx
|
||||
.Lnotknights:
|
||||
movd %xmm0,%eax
|
||||
andl $0x0fff0ff0,%eax
|
||||
cmpl $0x00050650,%eax
|
||||
jne .Lnotskylakex
|
||||
andl $0xfffeffff,%ebx
|
||||
|
||||
.Lnotskylakex:
|
||||
movl %ebx,8(%rdi)
|
||||
movl %ecx,12(%rdi)
|
||||
.Lno_extended_info:
|
||||
|
||||
btl $27,%r9d
|
||||
jnc .Lclear_avx
|
||||
xorl %ecx,%ecx
|
||||
.byte 0x0f,0x01,0xd0
|
||||
andl $0xe6,%eax
|
||||
cmpl $0xe6,%eax
|
||||
je .Ldone
|
||||
andl $0x3fdeffff,8(%rdi)
|
||||
|
||||
|
||||
|
||||
|
||||
andl $6,%eax
|
||||
cmpl $6,%eax
|
||||
je .Ldone
|
||||
.Lclear_avx:
|
||||
movl $0xefffe7ff,%eax
|
||||
andl %eax,%r9d
|
||||
movl $0x3fdeffdf,%eax
|
||||
andl %eax,8(%rdi)
|
||||
.Ldone:
|
||||
shlq $32,%r9
|
||||
movl %r10d,%eax
|
||||
movq %r8,%rbx
|
||||
.cfi_restore %rbx
|
||||
orq %r9,%rax
|
||||
.byte 0xf3,0xc3
|
||||
.cfi_endproc
|
||||
.size OPENSSL_ia32_cpuid,.-OPENSSL_ia32_cpuid
|
||||
|
||||
.globl OPENSSL_cleanse
|
||||
.type OPENSSL_cleanse,@function
|
||||
.align 16
|
||||
OPENSSL_cleanse:
|
||||
.cfi_startproc
|
||||
xorq %rax,%rax
|
||||
cmpq $15,%rsi
|
||||
jae .Lot
|
||||
cmpq $0,%rsi
|
||||
je .Lret
|
||||
.Little:
|
||||
movb %al,(%rdi)
|
||||
subq $1,%rsi
|
||||
leaq 1(%rdi),%rdi
|
||||
jnz .Little
|
||||
.Lret:
|
||||
.byte 0xf3,0xc3
|
||||
.align 16
|
||||
.Lot:
|
||||
testq $7,%rdi
|
||||
jz .Laligned
|
||||
movb %al,(%rdi)
|
||||
leaq -1(%rsi),%rsi
|
||||
leaq 1(%rdi),%rdi
|
||||
jmp .Lot
|
||||
.Laligned:
|
||||
movq %rax,(%rdi)
|
||||
leaq -8(%rsi),%rsi
|
||||
testq $-8,%rsi
|
||||
leaq 8(%rdi),%rdi
|
||||
jnz .Laligned
|
||||
cmpq $0,%rsi
|
||||
jne .Little
|
||||
.byte 0xf3,0xc3
|
||||
.cfi_endproc
|
||||
.size OPENSSL_cleanse,.-OPENSSL_cleanse
|
||||
|
||||
.globl CRYPTO_memcmp
|
||||
.type CRYPTO_memcmp,@function
|
||||
.align 16
|
||||
CRYPTO_memcmp:
|
||||
.cfi_startproc
|
||||
xorq %rax,%rax
|
||||
xorq %r10,%r10
|
||||
cmpq $0,%rdx
|
||||
je .Lno_data
|
||||
cmpq $16,%rdx
|
||||
jne .Loop_cmp
|
||||
movq (%rdi),%r10
|
||||
movq 8(%rdi),%r11
|
||||
movq $1,%rdx
|
||||
xorq (%rsi),%r10
|
||||
xorq 8(%rsi),%r11
|
||||
orq %r11,%r10
|
||||
cmovnzq %rdx,%rax
|
||||
.byte 0xf3,0xc3
|
||||
|
||||
.align 16
|
||||
.Loop_cmp:
|
||||
movb (%rdi),%r10b
|
||||
leaq 1(%rdi),%rdi
|
||||
xorb (%rsi),%r10b
|
||||
leaq 1(%rsi),%rsi
|
||||
orb %r10b,%al
|
||||
decq %rdx
|
||||
jnz .Loop_cmp
|
||||
negq %rax
|
||||
shrq $63,%rax
|
||||
.Lno_data:
|
||||
.byte 0xf3,0xc3
|
||||
.cfi_endproc
|
||||
.size CRYPTO_memcmp,.-CRYPTO_memcmp
|
||||
.globl OPENSSL_wipe_cpu
|
||||
.type OPENSSL_wipe_cpu,@function
|
||||
.align 16
|
||||
OPENSSL_wipe_cpu:
|
||||
.cfi_startproc
|
||||
pxor %xmm0,%xmm0
|
||||
pxor %xmm1,%xmm1
|
||||
pxor %xmm2,%xmm2
|
||||
pxor %xmm3,%xmm3
|
||||
pxor %xmm4,%xmm4
|
||||
pxor %xmm5,%xmm5
|
||||
pxor %xmm6,%xmm6
|
||||
pxor %xmm7,%xmm7
|
||||
pxor %xmm8,%xmm8
|
||||
pxor %xmm9,%xmm9
|
||||
pxor %xmm10,%xmm10
|
||||
pxor %xmm11,%xmm11
|
||||
pxor %xmm12,%xmm12
|
||||
pxor %xmm13,%xmm13
|
||||
pxor %xmm14,%xmm14
|
||||
pxor %xmm15,%xmm15
|
||||
xorq %rcx,%rcx
|
||||
xorq %rdx,%rdx
|
||||
xorq %rsi,%rsi
|
||||
xorq %rdi,%rdi
|
||||
xorq %r8,%r8
|
||||
xorq %r9,%r9
|
||||
xorq %r10,%r10
|
||||
xorq %r11,%r11
|
||||
leaq 8(%rsp),%rax
|
||||
.byte 0xf3,0xc3
|
||||
.cfi_endproc
|
||||
.size OPENSSL_wipe_cpu,.-OPENSSL_wipe_cpu
|
||||
.globl OPENSSL_instrument_bus
|
||||
.type OPENSSL_instrument_bus,@function
|
||||
.align 16
|
||||
OPENSSL_instrument_bus:
|
||||
.cfi_startproc
|
||||
movq %rdi,%r10
|
||||
movq %rsi,%rcx
|
||||
movq %rsi,%r11
|
||||
|
||||
rdtsc
|
||||
movl %eax,%r8d
|
||||
movl $0,%r9d
|
||||
clflush (%r10)
|
||||
.byte 0xf0
|
||||
addl %r9d,(%r10)
|
||||
jmp .Loop
|
||||
.align 16
|
||||
.Loop: rdtsc
|
||||
movl %eax,%edx
|
||||
subl %r8d,%eax
|
||||
movl %edx,%r8d
|
||||
movl %eax,%r9d
|
||||
clflush (%r10)
|
||||
.byte 0xf0
|
||||
addl %eax,(%r10)
|
||||
leaq 4(%r10),%r10
|
||||
subq $1,%rcx
|
||||
jnz .Loop
|
||||
|
||||
movq %r11,%rax
|
||||
.byte 0xf3,0xc3
|
||||
.cfi_endproc
|
||||
.size OPENSSL_instrument_bus,.-OPENSSL_instrument_bus
|
||||
|
||||
.globl OPENSSL_instrument_bus2
|
||||
.type OPENSSL_instrument_bus2,@function
|
||||
.align 16
|
||||
OPENSSL_instrument_bus2:
|
||||
.cfi_startproc
|
||||
movq %rdi,%r10
|
||||
movq %rsi,%rcx
|
||||
movq %rdx,%r11
|
||||
movq %rcx,8(%rsp)
|
||||
|
||||
rdtsc
|
||||
movl %eax,%r8d
|
||||
movl $0,%r9d
|
||||
|
||||
clflush (%r10)
|
||||
.byte 0xf0
|
||||
addl %r9d,(%r10)
|
||||
|
||||
rdtsc
|
||||
movl %eax,%edx
|
||||
subl %r8d,%eax
|
||||
movl %edx,%r8d
|
||||
movl %eax,%r9d
|
||||
.Loop2:
|
||||
clflush (%r10)
|
||||
.byte 0xf0
|
||||
addl %eax,(%r10)
|
||||
|
||||
subq $1,%r11
|
||||
jz .Ldone2
|
||||
|
||||
rdtsc
|
||||
movl %eax,%edx
|
||||
subl %r8d,%eax
|
||||
movl %edx,%r8d
|
||||
cmpl %r9d,%eax
|
||||
movl %eax,%r9d
|
||||
movl $0,%edx
|
||||
setne %dl
|
||||
subq %rdx,%rcx
|
||||
leaq (%r10,%rdx,4),%r10
|
||||
jnz .Loop2
|
||||
|
||||
.Ldone2:
|
||||
movq 8(%rsp),%rax
|
||||
subq %rcx,%rax
|
||||
.byte 0xf3,0xc3
|
||||
.cfi_endproc
|
||||
.size OPENSSL_instrument_bus2,.-OPENSSL_instrument_bus2
|
||||
.globl OPENSSL_ia32_rdrand_bytes
|
||||
.type OPENSSL_ia32_rdrand_bytes,@function
|
||||
.align 16
|
||||
OPENSSL_ia32_rdrand_bytes:
|
||||
.cfi_startproc
|
||||
xorq %rax,%rax
|
||||
cmpq $0,%rsi
|
||||
je .Ldone_rdrand_bytes
|
||||
|
||||
movq $8,%r11
|
||||
.Loop_rdrand_bytes:
|
||||
.byte 73,15,199,242
|
||||
jc .Lbreak_rdrand_bytes
|
||||
decq %r11
|
||||
jnz .Loop_rdrand_bytes
|
||||
jmp .Ldone_rdrand_bytes
|
||||
|
||||
.align 16
|
||||
.Lbreak_rdrand_bytes:
|
||||
cmpq $8,%rsi
|
||||
jb .Ltail_rdrand_bytes
|
||||
movq %r10,(%rdi)
|
||||
leaq 8(%rdi),%rdi
|
||||
addq $8,%rax
|
||||
subq $8,%rsi
|
||||
jz .Ldone_rdrand_bytes
|
||||
movq $8,%r11
|
||||
jmp .Loop_rdrand_bytes
|
||||
|
||||
.align 16
|
||||
.Ltail_rdrand_bytes:
|
||||
movb %r10b,(%rdi)
|
||||
leaq 1(%rdi),%rdi
|
||||
incq %rax
|
||||
shrq $8,%r10
|
||||
decq %rsi
|
||||
jnz .Ltail_rdrand_bytes
|
||||
|
||||
.Ldone_rdrand_bytes:
|
||||
xorq %r10,%r10
|
||||
.byte 0xf3,0xc3
|
||||
.cfi_endproc
|
||||
.size OPENSSL_ia32_rdrand_bytes,.-OPENSSL_ia32_rdrand_bytes
|
||||
.globl OPENSSL_ia32_rdseed_bytes
|
||||
.type OPENSSL_ia32_rdseed_bytes,@function
|
||||
.align 16
|
||||
OPENSSL_ia32_rdseed_bytes:
|
||||
.cfi_startproc
|
||||
xorq %rax,%rax
|
||||
cmpq $0,%rsi
|
||||
je .Ldone_rdseed_bytes
|
||||
|
||||
movq $8,%r11
|
||||
.Loop_rdseed_bytes:
|
||||
.byte 73,15,199,250
|
||||
jc .Lbreak_rdseed_bytes
|
||||
decq %r11
|
||||
jnz .Loop_rdseed_bytes
|
||||
jmp .Ldone_rdseed_bytes
|
||||
|
||||
.align 16
|
||||
.Lbreak_rdseed_bytes:
|
||||
cmpq $8,%rsi
|
||||
jb .Ltail_rdseed_bytes
|
||||
movq %r10,(%rdi)
|
||||
leaq 8(%rdi),%rdi
|
||||
addq $8,%rax
|
||||
subq $8,%rsi
|
||||
jz .Ldone_rdseed_bytes
|
||||
movq $8,%r11
|
||||
jmp .Loop_rdseed_bytes
|
||||
|
||||
.align 16
|
||||
.Ltail_rdseed_bytes:
|
||||
movb %r10b,(%rdi)
|
||||
leaq 1(%rdi),%rdi
|
||||
incq %rax
|
||||
shrq $8,%r10
|
||||
decq %rsi
|
||||
jnz .Ltail_rdseed_bytes
|
||||
|
||||
.Ldone_rdseed_bytes:
|
||||
xorq %r10,%r10
|
||||
.byte 0xf3,0xc3
|
||||
.cfi_endproc
|
||||
.size OPENSSL_ia32_rdseed_bytes,.-OPENSSL_ia32_rdseed_bytes
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user