Compare commits
272 Commits
edk2-stabl
...
edk2-stabl
Author | SHA1 | Date | |
---|---|---|---|
|
6fdd1c13a7 | ||
|
ac826886c9 | ||
|
a776bbabd9 | ||
|
b7f0226a46 | ||
|
ca1773878d | ||
|
aee0098faf | ||
|
03e19e6bc8 | ||
|
7311e96417 | ||
|
3d359ff905 | ||
|
605c4a1ff2 | ||
|
1803757a9b | ||
|
75c4a8e10d | ||
|
0938f9235c | ||
|
7b17bcd9a0 | ||
|
357383bc4f | ||
|
c82d6dd4a3 | ||
|
ced4cb7609 | ||
|
ad3dea9861 | ||
|
d910e83299 | ||
|
4d7137f261 | ||
|
5963ce5d28 | ||
|
a7ddc7847c | ||
|
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_pkgs: $(Build.Pkgs)
|
||||||
build_targets: $(Build.Targets)
|
build_targets: $(Build.Targets)
|
||||||
build_archs: ${{ parameters.arch_list }}
|
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:
|
steps:
|
||||||
- task: NodeTool@0
|
- task: NodeTool@0
|
||||||
inputs:
|
inputs:
|
||||||
versionSpec: '10.x'
|
versionSpec: '14.x'
|
||||||
#checkLatest: false # Optional
|
#checkLatest: false # Optional
|
||||||
condition: and(gt(variables.pkg_count, 0), succeeded())
|
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
|
# * 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.
|
# 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
|
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||||
#
|
#
|
||||||
# https://github.com/apps/mergify
|
# 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
|
- name: Automatically merge a PR when all required checks pass and 'push' label is present
|
||||||
conditions:
|
conditions:
|
||||||
- base~=(^master|^stable/)
|
- base~=(^main|^master|^stable/)
|
||||||
- label=push
|
- label=push
|
||||||
- author=@tianocore/edk-ii-maintainers
|
|
||||||
- status-success=tianocore.PatchCheck
|
|
||||||
- status-success=Ubuntu GCC5 PR
|
|
||||||
- status-success=Windows VS2019 PR
|
|
||||||
actions:
|
actions:
|
||||||
merge:
|
queue:
|
||||||
strict: true
|
|
||||||
method: rebase
|
method: rebase
|
||||||
|
rebase_fallback: none
|
||||||
- name: Automatically close a PR when all required checks pass and 'push' label is not present
|
name: default
|
||||||
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.
|
|
||||||
|
|
||||||
- name: Post a comment on a PR that can not be merged due to a merge conflict
|
- name: Post a comment on a PR that can not be merged due to a merge conflict
|
||||||
conditions:
|
conditions:
|
||||||
- base~=(^master|^stable/)
|
- base~=(^main|^master|^stable/)
|
||||||
- conflict
|
- conflict
|
||||||
actions:
|
actions:
|
||||||
comment:
|
comment:
|
||||||
message: PR can not be merged due to conflict. Please rebase and resubmit
|
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
|
# @file EccCheck.py
|
||||||
#
|
#
|
||||||
|
# Copyright (c) 2021, Arm Limited. All rights reserved.<BR>
|
||||||
# Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>
|
# Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>
|
||||||
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||||
##
|
##
|
||||||
@@ -60,18 +61,20 @@ class EccCheck(ICiBuildPlugin):
|
|||||||
# - Junit Logger
|
# - Junit Logger
|
||||||
# - output_stream the StringIO output stream from this plugin via logging
|
# - output_stream the StringIO output stream from this plugin via logging
|
||||||
def RunBuildPlugin(self, packagename, Edk2pathObj, pkgconfig, environment, PLM, PLMHelper, tc, output_stream=None):
|
def RunBuildPlugin(self, packagename, Edk2pathObj, pkgconfig, environment, PLM, PLMHelper, tc, output_stream=None):
|
||||||
edk2_path = Edk2pathObj.WorkspacePath
|
workspace_path = Edk2pathObj.WorkspacePath
|
||||||
python_path = os.path.join(edk2_path, "BaseTools", "Source", "Python")
|
basetools_path = environment.GetValue("EDK_TOOLS_PATH")
|
||||||
|
python_path = os.path.join(basetools_path, "Source", "Python")
|
||||||
env = shell_environment.GetEnvironment()
|
env = shell_environment.GetEnvironment()
|
||||||
env.set_shell_var('PYTHONPATH', python_path)
|
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.ECC_PASS = True
|
||||||
self.ApplyConfig(pkgconfig, edk2_path, packagename)
|
self.ApplyConfig(pkgconfig, workspace_path, basetools_path, packagename)
|
||||||
modify_dir_list = self.GetModifyDir(packagename)
|
modify_dir_list = self.GetModifyDir(packagename)
|
||||||
patch = self.GetDiff(packagename)
|
patch = self.GetDiff(packagename)
|
||||||
ecc_diff_range = self.GetDiffRange(patch, packagename, edk2_path)
|
ecc_diff_range = self.GetDiffRange(patch, packagename, workspace_path)
|
||||||
self.GenerateEccReport(modify_dir_list, ecc_diff_range, edk2_path)
|
self.GenerateEccReport(modify_dir_list, ecc_diff_range, workspace_path, basetools_path)
|
||||||
ecc_log = os.path.join(edk2_path, "Ecc.log")
|
ecc_log = os.path.join(workspace_path, "Ecc.log")
|
||||||
self.RevertCode()
|
self.RevertCode()
|
||||||
if self.ECC_PASS:
|
if self.ECC_PASS:
|
||||||
tc.SetSuccess()
|
tc.SetSuccess()
|
||||||
@@ -176,24 +179,24 @@ class EccCheck(ICiBuildPlugin):
|
|||||||
return comment_range
|
return comment_range
|
||||||
|
|
||||||
def GenerateEccReport(self, modify_dir_list: List[str], ecc_diff_range: Dict[str, List[Tuple[int, int]]],
|
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_need = False
|
||||||
ecc_run = True
|
ecc_run = True
|
||||||
config = os.path.join(edk2_path, "BaseTools", "Source", "Python", "Ecc", "config.ini")
|
config = os.path.join(basetools_path, "Source", "Python", "Ecc", "config.ini")
|
||||||
exception = os.path.join(edk2_path, "BaseTools", "Source", "Python", "Ecc", "exception.xml")
|
exception = os.path.join(basetools_path, "Source", "Python", "Ecc", "exception.xml")
|
||||||
report = os.path.join(edk2_path, "Ecc.csv")
|
report = os.path.join(workspace_path, "Ecc.csv")
|
||||||
for modify_dir in modify_dir_list:
|
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)
|
logging.info('Run ECC tool for the commit in %s' % modify_dir)
|
||||||
ecc_need = True
|
ecc_need = True
|
||||||
ecc_params = "-c {0} -e {1} -t {2} -r {3}".format(config, exception, target, report)
|
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:
|
if return_code != 0:
|
||||||
ecc_run = False
|
ecc_run = False
|
||||||
break
|
break
|
||||||
if not ecc_run:
|
if not ecc_run:
|
||||||
logging.error('Fail to run ECC tool')
|
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:
|
if not ecc_need:
|
||||||
logging.info("Doesn't need run ECC check")
|
logging.info("Doesn't need run ECC check")
|
||||||
@@ -202,13 +205,12 @@ class EccCheck(ICiBuildPlugin):
|
|||||||
RunCmd("git", revert_params)
|
RunCmd("git", revert_params)
|
||||||
return
|
return
|
||||||
|
|
||||||
def ParseEccReport(self, ecc_diff_range: Dict[str, List[Tuple[int, int]]], edk2_path: str) -> None:
|
def ParseEccReport(self, ecc_diff_range: Dict[str, List[Tuple[int, int]]], workspace_path: str) -> None:
|
||||||
ecc_log = os.path.join(edk2_path, "Ecc.log")
|
ecc_log = os.path.join(workspace_path, "Ecc.log")
|
||||||
ecc_csv = "Ecc.csv"
|
ecc_csv = os.path.join(workspace_path, "Ecc.csv")
|
||||||
file = os.listdir(edk2_path)
|
|
||||||
row_lines = []
|
row_lines = []
|
||||||
ignore_error_code = self.GetIgnoreErrorCode()
|
ignore_error_code = self.GetIgnoreErrorCode()
|
||||||
if ecc_csv in file:
|
if os.path.exists(ecc_csv):
|
||||||
with open(ecc_csv) as csv_file:
|
with open(ecc_csv) as csv_file:
|
||||||
reader = csv.reader(csv_file)
|
reader = csv.reader(csv_file)
|
||||||
for row in reader:
|
for row in reader:
|
||||||
@@ -234,10 +236,10 @@ class EccCheck(ICiBuildPlugin):
|
|||||||
log.writelines(all_line)
|
log.writelines(all_line)
|
||||||
return
|
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:
|
if "IgnoreFiles" in pkgconfig:
|
||||||
for a in pkgconfig["IgnoreFiles"]:
|
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, "/")
|
a = a.replace(os.sep, "/")
|
||||||
|
|
||||||
logging.info("Ignoring Files {0}".format(a))
|
logging.info("Ignoring Files {0}".format(a))
|
||||||
@@ -251,7 +253,7 @@ class EccCheck(ICiBuildPlugin):
|
|||||||
|
|
||||||
if "ExceptionList" in pkgconfig:
|
if "ExceptionList" in pkgconfig:
|
||||||
exception_list = pkgconfig["ExceptionList"]
|
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:
|
try:
|
||||||
logging.info("Appending exceptions")
|
logging.info("Appending exceptions")
|
||||||
self.AppendException(exception_list, exception_xml)
|
self.AppendException(exception_list, exception_xml)
|
||||||
|
@@ -37,12 +37,12 @@ class SpellCheck(ICiBuildPlugin):
|
|||||||
#
|
#
|
||||||
# A package can remove any of these using IgnoreStandardPaths
|
# 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",
|
"*.nasm", "*.asm", "*.masm", "*.s",
|
||||||
"*.asl",
|
"*.asl",
|
||||||
"*.dsc", "*.dec", "*.fdf", "*.inf",
|
"*.dsc", "*.dec", "*.fdf", "*.inf",
|
||||||
"*.md", "*.txt"
|
"*.md", "*.txt"
|
||||||
]
|
)
|
||||||
|
|
||||||
def GetTestName(self, packagename: str, environment: VarDict) -> tuple:
|
def GetTestName(self, packagename: str, environment: VarDict) -> tuple:
|
||||||
""" Provide the testcase name and classname for use in reporting
|
""" Provide the testcase name and classname for use in reporting
|
||||||
@@ -107,7 +107,8 @@ class SpellCheck(ICiBuildPlugin):
|
|||||||
version_aggregator.GetVersionAggregator().ReportVersion(
|
version_aggregator.GetVersionAggregator().ReportVersion(
|
||||||
"CSpell", cspell_version, version_aggregator.VersionTypes.INFO)
|
"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
|
# 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)
|
relpath = os.path.relpath(abs_pkg_path)
|
||||||
cpsell_paths = " ".join(
|
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
|
# Make the config file
|
||||||
config_file_path = os.path.join(
|
config_file_path = os.path.join(
|
||||||
|
@@ -94,13 +94,18 @@
|
|||||||
"ackintid",
|
"ackintid",
|
||||||
"actlr",
|
"actlr",
|
||||||
"aeabi",
|
"aeabi",
|
||||||
|
"asedis",
|
||||||
"ashldi",
|
"ashldi",
|
||||||
"ashrdi",
|
"ashrdi",
|
||||||
|
"baddr",
|
||||||
"ccidx",
|
"ccidx",
|
||||||
"ccsidr",
|
"ccsidr",
|
||||||
"clidr",
|
"clidr",
|
||||||
"clrex",
|
"clrex",
|
||||||
"clzsi",
|
"clzsi",
|
||||||
|
"cnthctl",
|
||||||
|
"cortexa",
|
||||||
|
"cpacr",
|
||||||
"cpuactlr",
|
"cpuactlr",
|
||||||
"csselr",
|
"csselr",
|
||||||
"ctzsi",
|
"ctzsi",
|
||||||
@@ -116,6 +121,7 @@
|
|||||||
"divdi",
|
"divdi",
|
||||||
"divsi",
|
"divsi",
|
||||||
"dmdepkg",
|
"dmdepkg",
|
||||||
|
"dpref",
|
||||||
"drsub",
|
"drsub",
|
||||||
"fcmpeq",
|
"fcmpeq",
|
||||||
"fcmpge",
|
"fcmpge",
|
||||||
@@ -125,17 +131,25 @@
|
|||||||
"ffreestanding",
|
"ffreestanding",
|
||||||
"frsub",
|
"frsub",
|
||||||
"hisilicon",
|
"hisilicon",
|
||||||
|
"iccabpr",
|
||||||
"iccbpr",
|
"iccbpr",
|
||||||
"icciar",
|
"icciar",
|
||||||
"iccicr",
|
"iccicr",
|
||||||
"icciidr",
|
"icciidr",
|
||||||
|
"iccpir",
|
||||||
"iccpmr",
|
"iccpmr",
|
||||||
|
"iccrpr",
|
||||||
|
"icdabr",
|
||||||
"icdicer",
|
"icdicer",
|
||||||
"icdicfr",
|
"icdicfr",
|
||||||
|
"icdicpr",
|
||||||
"icdictr",
|
"icdictr",
|
||||||
|
"icdiidr",
|
||||||
"icdiser",
|
"icdiser",
|
||||||
"icdisr",
|
"icdisr",
|
||||||
|
"icdppisr",
|
||||||
"icdsgir",
|
"icdsgir",
|
||||||
|
"icdspr",
|
||||||
"icenabler",
|
"icenabler",
|
||||||
"intid",
|
"intid",
|
||||||
"ipriority",
|
"ipriority",
|
||||||
@@ -160,6 +174,7 @@
|
|||||||
"lshrdi",
|
"lshrdi",
|
||||||
"moddi",
|
"moddi",
|
||||||
"modsi",
|
"modsi",
|
||||||
|
"mpcore",
|
||||||
"mpidr",
|
"mpidr",
|
||||||
"muldi",
|
"muldi",
|
||||||
"mullu",
|
"mullu",
|
||||||
@@ -168,6 +183,9 @@
|
|||||||
"nsasedis",
|
"nsasedis",
|
||||||
"nuvia",
|
"nuvia",
|
||||||
"oldit",
|
"oldit",
|
||||||
|
"pcten",
|
||||||
|
"plpis",
|
||||||
|
"procno",
|
||||||
"readc",
|
"readc",
|
||||||
"revsh",
|
"revsh",
|
||||||
"rfedb",
|
"rfedb",
|
||||||
@@ -189,6 +207,7 @@
|
|||||||
"smmlsr",
|
"smmlsr",
|
||||||
"sourcery",
|
"sourcery",
|
||||||
"srsdb",
|
"srsdb",
|
||||||
|
"ssacr",
|
||||||
"stmdb",
|
"stmdb",
|
||||||
"stmia",
|
"stmia",
|
||||||
"strbt",
|
"strbt",
|
||||||
|
@@ -137,7 +137,7 @@
|
|||||||
# hardware coherency (i.e., no virtualization or cache coherent DMA)
|
# hardware coherency (i.e., no virtualization or cache coherent DMA)
|
||||||
gArmTokenSpaceGuid.PcdNormalMemoryNonshareableOverride|FALSE|BOOLEAN|0x00000043
|
gArmTokenSpaceGuid.PcdNormalMemoryNonshareableOverride|FALSE|BOOLEAN|0x00000043
|
||||||
|
|
||||||
[PcdsFeatureFlag.AARCH64]
|
[PcdsFeatureFlag.AARCH64, PcdsFeatureFlag.ARM]
|
||||||
## Used to select method for requesting services from S-EL1.<BR><BR>
|
## Used to select method for requesting services from S-EL1.<BR><BR>
|
||||||
# TRUE - Selects FF-A calls for communication between S-EL0 and SPMC.<BR>
|
# TRUE - Selects FF-A calls for communication between S-EL0 and SPMC.<BR>
|
||||||
# FALSE - Selects SVC calls for communication between S-EL0 and SPMC.<BR>
|
# FALSE - Selects SVC calls for communication between S-EL0 and SPMC.<BR>
|
||||||
|
@@ -161,4 +161,6 @@
|
|||||||
[Components.AARCH64]
|
[Components.AARCH64]
|
||||||
ArmPkg/Drivers/MmCommunicationDxe/MmCommunication.inf
|
ArmPkg/Drivers/MmCommunicationDxe/MmCommunication.inf
|
||||||
ArmPkg/Library/ArmMmuLib/ArmMmuPeiLib.inf
|
ArmPkg/Library/ArmMmuLib/ArmMmuPeiLib.inf
|
||||||
|
|
||||||
|
[Components.AARCH64, Components.ARM]
|
||||||
ArmPkg/Library/StandaloneMmMmuLib/ArmMmuStandaloneMmLib.inf
|
ArmPkg/Library/StandaloneMmMmuLib/ArmMmuStandaloneMmLib.inf
|
||||||
|
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_ */
|
@@ -17,9 +17,21 @@
|
|||||||
#define ARM_FFA_SVC_H_
|
#define ARM_FFA_SVC_H_
|
||||||
|
|
||||||
#define ARM_SVC_ID_FFA_VERSION_AARCH32 0x84000063
|
#define ARM_SVC_ID_FFA_VERSION_AARCH32 0x84000063
|
||||||
|
#define ARM_SVC_ID_FFA_MSG_SEND_DIRECT_REQ_AARCH32 0x8400006F
|
||||||
|
#define ARM_SVC_ID_FFA_MSG_SEND_DIRECT_RESP_AARCH32 0x84000070
|
||||||
#define ARM_SVC_ID_FFA_MSG_SEND_DIRECT_REQ_AARCH64 0xC400006F
|
#define ARM_SVC_ID_FFA_MSG_SEND_DIRECT_REQ_AARCH64 0xC400006F
|
||||||
#define ARM_SVC_ID_FFA_MSG_SEND_DIRECT_RESP_AARCH64 0xC4000070
|
#define ARM_SVC_ID_FFA_MSG_SEND_DIRECT_RESP_AARCH64 0xC4000070
|
||||||
|
|
||||||
|
/* Generic IDs when using AArch32 or AArch64 execution state */
|
||||||
|
#ifdef MDE_CPU_AARCH64
|
||||||
|
#define ARM_SVC_ID_FFA_MSG_SEND_DIRECT_REQ ARM_SVC_ID_FFA_MSG_SEND_DIRECT_REQ_AARCH64
|
||||||
|
#define ARM_SVC_ID_FFA_MSG_SEND_DIRECT_RESP ARM_SVC_ID_FFA_MSG_SEND_DIRECT_RESP_AARCH64
|
||||||
|
#endif
|
||||||
|
#ifdef MDE_CPU_ARM
|
||||||
|
#define ARM_SVC_ID_FFA_MSG_SEND_DIRECT_REQ ARM_SVC_ID_FFA_MSG_SEND_DIRECT_REQ_AARCH32
|
||||||
|
#define ARM_SVC_ID_FFA_MSG_SEND_DIRECT_RESP ARM_SVC_ID_FFA_MSG_SEND_DIRECT_RESP_AARCH32
|
||||||
|
#endif
|
||||||
|
|
||||||
#define SPM_MAJOR_VERSION_FFA 1
|
#define SPM_MAJOR_VERSION_FFA 1
|
||||||
#define SPM_MINOR_VERSION_FFA 0
|
#define SPM_MINOR_VERSION_FFA 0
|
||||||
|
|
||||||
|
@@ -15,10 +15,25 @@
|
|||||||
* privileged operations on its behalf.
|
* privileged operations on its behalf.
|
||||||
*/
|
*/
|
||||||
#define ARM_SVC_ID_SPM_VERSION_AARCH32 0x84000060
|
#define ARM_SVC_ID_SPM_VERSION_AARCH32 0x84000060
|
||||||
|
#define ARM_SVC_ID_SP_EVENT_COMPLETE_AARCH32 0x84000061
|
||||||
|
#define ARM_SVC_ID_SP_GET_MEM_ATTRIBUTES_AARCH32 0x84000064
|
||||||
|
#define ARM_SVC_ID_SP_SET_MEM_ATTRIBUTES_AARCH32 0x84000065
|
||||||
#define ARM_SVC_ID_SP_EVENT_COMPLETE_AARCH64 0xC4000061
|
#define ARM_SVC_ID_SP_EVENT_COMPLETE_AARCH64 0xC4000061
|
||||||
#define ARM_SVC_ID_SP_GET_MEM_ATTRIBUTES_AARCH64 0xC4000064
|
#define ARM_SVC_ID_SP_GET_MEM_ATTRIBUTES_AARCH64 0xC4000064
|
||||||
#define ARM_SVC_ID_SP_SET_MEM_ATTRIBUTES_AARCH64 0xC4000065
|
#define ARM_SVC_ID_SP_SET_MEM_ATTRIBUTES_AARCH64 0xC4000065
|
||||||
|
|
||||||
|
/* Generic IDs when using AArch32 or AArch64 execution state */
|
||||||
|
#ifdef MDE_CPU_AARCH64
|
||||||
|
#define ARM_SVC_ID_SP_EVENT_COMPLETE ARM_SVC_ID_SP_EVENT_COMPLETE_AARCH64
|
||||||
|
#define ARM_SVC_ID_SP_GET_MEM_ATTRIBUTES ARM_SVC_ID_SP_GET_MEM_ATTRIBUTES_AARCH64
|
||||||
|
#define ARM_SVC_ID_SP_SET_MEM_ATTRIBUTES ARM_SVC_ID_SP_SET_MEM_ATTRIBUTES_AARCH64
|
||||||
|
#endif
|
||||||
|
#ifdef MDE_CPU_ARM
|
||||||
|
#define ARM_SVC_ID_SP_EVENT_COMPLETE ARM_SVC_ID_SP_EVENT_COMPLETE_AARCH32
|
||||||
|
#define ARM_SVC_ID_SP_GET_MEM_ATTRIBUTES ARM_SVC_ID_SP_GET_MEM_ATTRIBUTES_AARCH32
|
||||||
|
#define ARM_SVC_ID_SP_SET_MEM_ATTRIBUTES ARM_SVC_ID_SP_SET_MEM_ATTRIBUTES_AARCH32
|
||||||
|
#endif
|
||||||
|
|
||||||
#define SET_MEM_ATTR_DATA_PERM_MASK 0x3
|
#define SET_MEM_ATTR_DATA_PERM_MASK 0x3
|
||||||
#define SET_MEM_ATTR_DATA_PERM_SHIFT 0
|
#define SET_MEM_ATTR_DATA_PERM_SHIFT 0
|
||||||
#define SET_MEM_ATTR_DATA_PERM_NO_ACCESS 0
|
#define SET_MEM_ATTR_DATA_PERM_NO_ACCESS 0
|
||||||
|
@@ -49,6 +49,14 @@
|
|||||||
#define ARM_SMC_ID_MM_COMMUNICATE_AARCH32 0x84000041
|
#define ARM_SMC_ID_MM_COMMUNICATE_AARCH32 0x84000041
|
||||||
#define ARM_SMC_ID_MM_COMMUNICATE_AARCH64 0xC4000041
|
#define ARM_SMC_ID_MM_COMMUNICATE_AARCH64 0xC4000041
|
||||||
|
|
||||||
|
/* Generic ID when using AArch32 or AArch64 execution state */
|
||||||
|
#ifdef MDE_CPU_AARCH64
|
||||||
|
#define ARM_SMC_ID_MM_COMMUNICATE ARM_SMC_ID_MM_COMMUNICATE_AARCH64
|
||||||
|
#endif
|
||||||
|
#ifdef MDE_CPU_ARM
|
||||||
|
#define ARM_SMC_ID_MM_COMMUNICATE ARM_SMC_ID_MM_COMMUNICATE_AARCH32
|
||||||
|
#endif
|
||||||
|
|
||||||
/* MM return error codes */
|
/* MM return error codes */
|
||||||
#define ARM_SMC_MM_RET_SUCCESS 0
|
#define ARM_SMC_MM_RET_SUCCESS 0
|
||||||
#define ARM_SMC_MM_RET_NOT_SUPPORTED -1
|
#define ARM_SMC_MM_RET_NOT_SUPPORTED -1
|
||||||
|
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
|
Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
|
||||||
Copyright (c) 2011 - 2016, ARM Ltd. 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
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||||
|
|
||||||
@@ -109,9 +109,37 @@ typedef enum {
|
|||||||
#define GET_MPID(ClusterId, CoreId) (((ClusterId) << 8) | (CoreId))
|
#define GET_MPID(ClusterId, CoreId) (((ClusterId) << 8) | (CoreId))
|
||||||
#define PRIMARY_CORE_ID (PcdGet32(PcdArmPrimaryCore) & ARM_CORE_MASK)
|
#define PRIMARY_CORE_ID (PcdGet32(PcdArmPrimaryCore) & ARM_CORE_MASK)
|
||||||
|
|
||||||
// The ARM Architecture Reference Manual for ARMv8-A defines up
|
/** Reads the CCSIDR register for the specified cache.
|
||||||
// to 7 levels of cache, L1 through L7.
|
|
||||||
#define MAX_ARM_CACHE_LEVEL 7
|
@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
|
UINTN
|
||||||
EFIAPI
|
EFIAPI
|
||||||
|
@@ -52,101 +52,6 @@
|
|||||||
#define CACHE_ARCHITECTURE_UNIFIED (0UL)
|
#define CACHE_ARCHITECTURE_UNIFIED (0UL)
|
||||||
#define CACHE_ARCHITECTURE_SEPARATE (1UL)
|
#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
|
VOID
|
||||||
CPSRMaskInsert (
|
CPSRMaskInsert (
|
||||||
IN UINT32 Mask,
|
IN UINT32 Mask,
|
||||||
@@ -158,32 +63,4 @@ CPSRRead (
|
|||||||
VOID
|
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_
|
#endif // ARM_LIB_PRIVATE_H_
|
||||||
|
@@ -2,6 +2,7 @@
|
|||||||
File managing the MMU for ARMv8 architecture in S-EL0
|
File managing the MMU for ARMv8 architecture in S-EL0
|
||||||
|
|
||||||
Copyright (c) 2017 - 2021, Arm Limited. All rights reserved.<BR>
|
Copyright (c) 2017 - 2021, Arm Limited. All rights reserved.<BR>
|
||||||
|
Copyright (c) 2021, Linaro Limited
|
||||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||||
|
|
||||||
@par Reference(s):
|
@par Reference(s):
|
||||||
@@ -62,7 +63,7 @@ SendMemoryPermissionRequest (
|
|||||||
// for other Direct Request calls which are not atomic
|
// for other Direct Request calls which are not atomic
|
||||||
// We therefore check only for Direct Response by the
|
// We therefore check only for Direct Response by the
|
||||||
// callee.
|
// callee.
|
||||||
if (SvcArgs->Arg0 == ARM_SVC_ID_FFA_MSG_SEND_DIRECT_RESP_AARCH64) {
|
if (SvcArgs->Arg0 == ARM_SVC_ID_FFA_MSG_SEND_DIRECT_RESP) {
|
||||||
// A Direct Response means FF-A success
|
// A Direct Response means FF-A success
|
||||||
// Now check the payload for errors
|
// Now check the payload for errors
|
||||||
// The callee sends back the return value
|
// The callee sends back the return value
|
||||||
@@ -164,13 +165,13 @@ GetMemoryPermissions (
|
|||||||
ZeroMem (&SvcArgs, sizeof (ARM_SVC_ARGS));
|
ZeroMem (&SvcArgs, sizeof (ARM_SVC_ARGS));
|
||||||
if (FeaturePcdGet (PcdFfaEnable)) {
|
if (FeaturePcdGet (PcdFfaEnable)) {
|
||||||
// See [2], Section 10.2 FFA_MSG_SEND_DIRECT_REQ.
|
// See [2], Section 10.2 FFA_MSG_SEND_DIRECT_REQ.
|
||||||
SvcArgs.Arg0 = ARM_SVC_ID_FFA_MSG_SEND_DIRECT_REQ_AARCH64;
|
SvcArgs.Arg0 = ARM_SVC_ID_FFA_MSG_SEND_DIRECT_REQ;
|
||||||
SvcArgs.Arg1 = ARM_FFA_DESTINATION_ENDPOINT_ID;
|
SvcArgs.Arg1 = ARM_FFA_DESTINATION_ENDPOINT_ID;
|
||||||
SvcArgs.Arg2 = 0;
|
SvcArgs.Arg2 = 0;
|
||||||
SvcArgs.Arg3 = ARM_SVC_ID_SP_GET_MEM_ATTRIBUTES_AARCH64;
|
SvcArgs.Arg3 = ARM_SVC_ID_SP_GET_MEM_ATTRIBUTES;
|
||||||
SvcArgs.Arg4 = BaseAddress;
|
SvcArgs.Arg4 = BaseAddress;
|
||||||
} else {
|
} else {
|
||||||
SvcArgs.Arg0 = ARM_SVC_ID_SP_GET_MEM_ATTRIBUTES_AARCH64;
|
SvcArgs.Arg0 = ARM_SVC_ID_SP_GET_MEM_ATTRIBUTES;
|
||||||
SvcArgs.Arg1 = BaseAddress;
|
SvcArgs.Arg1 = BaseAddress;
|
||||||
SvcArgs.Arg2 = 0;
|
SvcArgs.Arg2 = 0;
|
||||||
SvcArgs.Arg3 = 0;
|
SvcArgs.Arg3 = 0;
|
||||||
@@ -219,15 +220,15 @@ RequestMemoryPermissionChange (
|
|||||||
ZeroMem (&SvcArgs, sizeof (ARM_SVC_ARGS));
|
ZeroMem (&SvcArgs, sizeof (ARM_SVC_ARGS));
|
||||||
if (FeaturePcdGet (PcdFfaEnable)) {
|
if (FeaturePcdGet (PcdFfaEnable)) {
|
||||||
// See [2], Section 10.2 FFA_MSG_SEND_DIRECT_REQ.
|
// See [2], Section 10.2 FFA_MSG_SEND_DIRECT_REQ.
|
||||||
SvcArgs.Arg0 = ARM_SVC_ID_FFA_MSG_SEND_DIRECT_REQ_AARCH64;
|
SvcArgs.Arg0 = ARM_SVC_ID_FFA_MSG_SEND_DIRECT_REQ;
|
||||||
SvcArgs.Arg1 = ARM_FFA_DESTINATION_ENDPOINT_ID;
|
SvcArgs.Arg1 = ARM_FFA_DESTINATION_ENDPOINT_ID;
|
||||||
SvcArgs.Arg2 = 0;
|
SvcArgs.Arg2 = 0;
|
||||||
SvcArgs.Arg3 = ARM_SVC_ID_SP_SET_MEM_ATTRIBUTES_AARCH64;
|
SvcArgs.Arg3 = ARM_SVC_ID_SP_SET_MEM_ATTRIBUTES;
|
||||||
SvcArgs.Arg4 = BaseAddress;
|
SvcArgs.Arg4 = BaseAddress;
|
||||||
SvcArgs.Arg5 = EFI_SIZE_TO_PAGES (Length);
|
SvcArgs.Arg5 = EFI_SIZE_TO_PAGES (Length);
|
||||||
SvcArgs.Arg6 = Permissions;
|
SvcArgs.Arg6 = Permissions;
|
||||||
} else {
|
} else {
|
||||||
SvcArgs.Arg0 = ARM_SVC_ID_SP_SET_MEM_ATTRIBUTES_AARCH64;
|
SvcArgs.Arg0 = ARM_SVC_ID_SP_SET_MEM_ATTRIBUTES;
|
||||||
SvcArgs.Arg1 = BaseAddress;
|
SvcArgs.Arg1 = BaseAddress;
|
||||||
SvcArgs.Arg2 = EFI_SIZE_TO_PAGES (Length);
|
SvcArgs.Arg2 = EFI_SIZE_TO_PAGES (Length);
|
||||||
SvcArgs.Arg3 = Permissions;
|
SvcArgs.Arg3 = Permissions;
|
@@ -16,14 +16,14 @@
|
|||||||
LIBRARY_CLASS = StandaloneMmMmuLib
|
LIBRARY_CLASS = StandaloneMmMmuLib
|
||||||
PI_SPECIFICATION_VERSION = 0x00010032
|
PI_SPECIFICATION_VERSION = 0x00010032
|
||||||
|
|
||||||
[Sources.AARCH64]
|
[Sources]
|
||||||
AArch64/ArmMmuStandaloneMmLib.c
|
ArmMmuStandaloneMmLib.c
|
||||||
|
|
||||||
[Packages]
|
[Packages]
|
||||||
ArmPkg/ArmPkg.dec
|
ArmPkg/ArmPkg.dec
|
||||||
MdePkg/MdePkg.dec
|
MdePkg/MdePkg.dec
|
||||||
|
|
||||||
[FeaturePcd.AARCH64]
|
[FeaturePcd.ARM, FeaturePcd.AARCH64]
|
||||||
gArmTokenSpaceGuid.PcdFfaEnable
|
gArmTokenSpaceGuid.PcdFfaEnable
|
||||||
|
|
||||||
[LibraryClasses]
|
[LibraryClasses]
|
||||||
|
@@ -10,11 +10,11 @@
|
|||||||
|
|
||||||
#include <Uefi.h>
|
#include <Uefi.h>
|
||||||
#include <Protocol/Smbios.h>
|
#include <Protocol/Smbios.h>
|
||||||
|
#include <IndustryStandard/ArmCache.h>
|
||||||
#include <IndustryStandard/ArmStdSmc.h>
|
#include <IndustryStandard/ArmStdSmc.h>
|
||||||
#include <IndustryStandard/SmBios.h>
|
#include <IndustryStandard/SmBios.h>
|
||||||
#include <Library/ArmLib.h>
|
#include <Library/ArmLib.h>
|
||||||
#include <Library/ArmSmcLib.h>
|
#include <Library/ArmSmcLib.h>
|
||||||
#include <Library/ArmLib/ArmLibPrivate.h>
|
|
||||||
#include <Library/BaseLib.h>
|
#include <Library/BaseLib.h>
|
||||||
#include <Library/BaseMemoryLib.h>
|
#include <Library/BaseMemoryLib.h>
|
||||||
#include <Library/DebugLib.h>
|
#include <Library/DebugLib.h>
|
||||||
|
@@ -8,8 +8,8 @@
|
|||||||
**/
|
**/
|
||||||
|
|
||||||
#include <Uefi.h>
|
#include <Uefi.h>
|
||||||
|
#include <IndustryStandard/ArmCache.h>
|
||||||
#include <Library/ArmLib.h>
|
#include <Library/ArmLib.h>
|
||||||
#include <Library/ArmLib/ArmLibPrivate.h>
|
|
||||||
|
|
||||||
#include "SmbiosProcessor.h"
|
#include "SmbiosProcessor.h"
|
||||||
|
|
||||||
|
@@ -8,8 +8,8 @@
|
|||||||
**/
|
**/
|
||||||
|
|
||||||
#include <Uefi.h>
|
#include <Uefi.h>
|
||||||
|
#include <IndustryStandard/ArmCache.h>
|
||||||
#include <Library/ArmLib.h>
|
#include <Library/ArmLib.h>
|
||||||
#include <Library/ArmLib/ArmLibPrivate.h>
|
|
||||||
|
|
||||||
#include "SmbiosProcessor.h"
|
#include "SmbiosProcessor.h"
|
||||||
|
|
||||||
|
@@ -8,10 +8,10 @@
|
|||||||
**/
|
**/
|
||||||
|
|
||||||
#include <Uefi.h>
|
#include <Uefi.h>
|
||||||
|
#include <IndustryStandard/ArmCache.h>
|
||||||
#include <IndustryStandard/ArmStdSmc.h>
|
#include <IndustryStandard/ArmStdSmc.h>
|
||||||
#include <IndustryStandard/SmBios.h>
|
#include <IndustryStandard/SmBios.h>
|
||||||
#include <Library/ArmLib.h>
|
#include <Library/ArmLib.h>
|
||||||
#include <Library/ArmLib/ArmLibPrivate.h>
|
|
||||||
#include <Library/ArmSmcLib.h>
|
#include <Library/ArmSmcLib.h>
|
||||||
#include <Library/BaseMemoryLib.h>
|
#include <Library/BaseMemoryLib.h>
|
||||||
|
|
||||||
|
@@ -83,7 +83,7 @@
|
|||||||
|
|
||||||
## options defined .pytool/Plugin/SpellCheck
|
## options defined .pytool/Plugin/SpellCheck
|
||||||
"SpellCheck": {
|
"SpellCheck": {
|
||||||
"AuditOnly": False,
|
"AuditOnly": True,
|
||||||
"IgnoreFiles": [], # use gitignore syntax to ignore errors
|
"IgnoreFiles": [], # use gitignore syntax to ignore errors
|
||||||
# in matching files
|
# in matching files
|
||||||
"ExtendWords": [
|
"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
|
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||||
#
|
#
|
||||||
@@ -7,6 +7,8 @@
|
|||||||
from arm_ds.debugger_v1 import Debugger
|
from arm_ds.debugger_v1 import Debugger
|
||||||
from arm_ds.debugger_v1 import DebugException
|
from arm_ds.debugger_v1 import DebugException
|
||||||
|
|
||||||
|
from console_loader import load_symbol_from_console
|
||||||
|
|
||||||
import re, sys, getopt
|
import re, sys, getopt
|
||||||
|
|
||||||
import edk2_debugger
|
import edk2_debugger
|
||||||
@@ -21,12 +23,16 @@ def usage():
|
|||||||
print "-m,--sysmem=(base,size): System Memory region"
|
print "-m,--sysmem=(base,size): System Memory region"
|
||||||
print "-f,--fv=(base,size): Firmware region"
|
print "-f,--fv=(base,size): Firmware region"
|
||||||
print "-r,--rom=(base,size): ROM 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
|
verbose = False
|
||||||
load_all = False
|
load_all = False
|
||||||
report_file = None
|
report_file = None
|
||||||
|
input_file = None
|
||||||
|
objdump = None
|
||||||
regions = []
|
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):
|
if (opts is None) or (not opts):
|
||||||
report_file = '../../../report.log'
|
report_file = '../../../report.log'
|
||||||
else:
|
else:
|
||||||
@@ -55,6 +61,10 @@ else:
|
|||||||
elif o in ("-r","--rom"):
|
elif o in ("-r","--rom"):
|
||||||
region_type = edk2_debugger.ArmPlatformDebugger.REGION_TYPE_ROM
|
region_type = edk2_debugger.ArmPlatformDebugger.REGION_TYPE_ROM
|
||||||
regex = region_reg
|
regex = region_reg
|
||||||
|
elif o in ("-i","--input"):
|
||||||
|
input_file = a
|
||||||
|
elif o in ("-o", "--objdump"):
|
||||||
|
objdump = a
|
||||||
else:
|
else:
|
||||||
assert False, "Unhandled option (%s)" % o
|
assert False, "Unhandled option (%s)" % o
|
||||||
|
|
||||||
@@ -94,3 +104,6 @@ except Exception, (ErrorClass, ErrorMessage):
|
|||||||
print "Error(%s): %s" % (ErrorClass, ErrorMessage)
|
print "Error(%s): %s" % (ErrorClass, ErrorMessage)
|
||||||
except DebugException, de:
|
except DebugException, de:
|
||||||
print "DebugError: %s" % (de.getMessage())
|
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
|
!if $(SECURE_BOOT_ENABLE) == TRUE
|
||||||
AuthVariableLib|SecurityPkg/Library/AuthVariableLib/AuthVariableLib.inf
|
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
|
# re-use the UserPhysicalPresent() dummy implementation from the ovmf tree
|
||||||
PlatformSecureLib|OvmfPkg/Library/PlatformSecureLib/PlatformSecureLib.inf
|
PlatformSecureLib|OvmfPkg/Library/PlatformSecureLib/PlatformSecureLib.inf
|
||||||
@@ -375,9 +377,6 @@
|
|||||||
#
|
#
|
||||||
MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskDxe.inf
|
MdeModulePkg/Universal/Disk/RamDiskDxe/RamDiskDxe.inf
|
||||||
|
|
||||||
#
|
|
||||||
# UEFI application (Shell Embedded Boot Loader)
|
|
||||||
#
|
|
||||||
ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.inf {
|
ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.inf {
|
||||||
<PcdsFixedAtBuild>
|
<PcdsFixedAtBuild>
|
||||||
gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE
|
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
|
# @file
|
||||||
# Workspace file for KVMTool virtual platform.
|
# 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
|
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||||
#
|
#
|
||||||
@@ -60,7 +60,7 @@
|
|||||||
PciPcdProducerLib|ArmVirtPkg/Library/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf
|
PciPcdProducerLib|ArmVirtPkg/Library/FdtPciPcdProducerLib/FdtPciPcdProducerLib.inf
|
||||||
PciSegmentLib|MdePkg/Library/BasePciSegmentLibPci/BasePciSegmentLibPci.inf
|
PciSegmentLib|MdePkg/Library/BasePciSegmentLibPci/BasePciSegmentLibPci.inf
|
||||||
PciHostBridgeLib|ArmVirtPkg/Library/FdtPciHostBridgeLib/FdtPciHostBridgeLib.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
|
TpmMeasurementLib|MdeModulePkg/Library/TpmMeasurementLibNull/TpmMeasurementLibNull.inf
|
||||||
AuthVariableLib|MdeModulePkg/Library/AuthVariableLibNull/AuthVariableLibNull.inf
|
AuthVariableLib|MdeModulePkg/Library/AuthVariableLibNull/AuthVariableLibNull.inf
|
||||||
@@ -175,6 +175,17 @@
|
|||||||
gArmTokenSpaceGuid.PcdGicRedistributorsBase|0x0
|
gArmTokenSpaceGuid.PcdGicRedistributorsBase|0x0
|
||||||
gArmTokenSpaceGuid.PcdGicInterruptInterfaceBase|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.
|
# Set video resolution for boot options and for text setup.
|
||||||
# PlatformDxe can set the former at runtime.
|
# PlatformDxe can set the former at runtime.
|
||||||
@@ -322,3 +333,23 @@
|
|||||||
#
|
#
|
||||||
MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf
|
MdeModulePkg/Bus/Scsi/ScsiBusDxe/ScsiBusDxe.inf
|
||||||
MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.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
|
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||||
#
|
#
|
||||||
@@ -173,9 +173,6 @@ READ_LOCK_STATUS = TRUE
|
|||||||
INF OvmfPkg/VirtioScsiDxe/VirtioScsi.inf
|
INF OvmfPkg/VirtioScsiDxe/VirtioScsi.inf
|
||||||
INF OvmfPkg/VirtioRngDxe/VirtioRng.inf
|
INF OvmfPkg/VirtioRngDxe/VirtioRng.inf
|
||||||
|
|
||||||
#
|
|
||||||
# UEFI application (Shell Embedded Boot Loader)
|
|
||||||
#
|
|
||||||
INF ShellPkg/Application/Shell/Shell.inf
|
INF ShellPkg/Application/Shell/Shell.inf
|
||||||
INF ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.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/ScsiBusDxe/ScsiBusDxe.inf
|
||||||
INF MdeModulePkg/Bus/Scsi/ScsiDiskDxe/ScsiDiskDxe.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)
|
# TianoCore logo (splash screen)
|
||||||
#
|
#
|
||||||
|
@@ -115,7 +115,8 @@
|
|||||||
"virt's",
|
"virt's",
|
||||||
"werror",
|
"werror",
|
||||||
"xenio",
|
"xenio",
|
||||||
"kvmtool"
|
"kvmtool",
|
||||||
|
"cloudhv"
|
||||||
], # words to extend to the dictionary for this package
|
], # words to extend to the dictionary for this package
|
||||||
"IgnoreStandardPaths": [], # Standard Plugin defined paths that should be ignore
|
"IgnoreStandardPaths": [], # Standard Plugin defined paths that should be ignore
|
||||||
"AdditionalIncludePaths": [] # Additional paths to spell check (wildcards supported)
|
"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
|
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]
|
[PcdsDynamic]
|
||||||
#
|
#
|
||||||
# Whether to force disable ACPI, regardless of the fw_cfg settings
|
# Whether to force disable ACPI, regardless of the fw_cfg settings
|
||||||
|
@@ -440,7 +440,10 @@
|
|||||||
NULL|MdeModulePkg/Library/BootManagerUiLib/BootManagerUiLib.inf
|
NULL|MdeModulePkg/Library/BootManagerUiLib/BootManagerUiLib.inf
|
||||||
NULL|MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib.inf
|
NULL|MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib.inf
|
||||||
}
|
}
|
||||||
OvmfPkg/QemuKernelLoaderFsDxe/QemuKernelLoaderFsDxe.inf
|
OvmfPkg/QemuKernelLoaderFsDxe/QemuKernelLoaderFsDxe.inf {
|
||||||
|
<LibraryClasses>
|
||||||
|
NULL|OvmfPkg/Library/BlobVerifierLibNull/BlobVerifierLibNull.inf
|
||||||
|
}
|
||||||
|
|
||||||
#
|
#
|
||||||
# Networking stack
|
# Networking stack
|
||||||
|
@@ -99,9 +99,6 @@ READ_LOCK_STATUS = TRUE
|
|||||||
INF OvmfPkg/VirtioScsiDxe/VirtioScsi.inf
|
INF OvmfPkg/VirtioScsiDxe/VirtioScsi.inf
|
||||||
INF OvmfPkg/VirtioRngDxe/VirtioRng.inf
|
INF OvmfPkg/VirtioRngDxe/VirtioRng.inf
|
||||||
|
|
||||||
#
|
|
||||||
# UEFI application (Shell Embedded Boot Loader)
|
|
||||||
#
|
|
||||||
INF ShellPkg/Application/Shell/Shell.inf
|
INF ShellPkg/Application/Shell/Shell.inf
|
||||||
INF ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.inf
|
INF ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.inf
|
||||||
INF ShellPkg/DynamicCommand/HttpDynamicCommand/HttpDynamicCommand.inf
|
INF ShellPkg/DynamicCommand/HttpDynamicCommand/HttpDynamicCommand.inf
|
||||||
|
@@ -376,7 +376,10 @@
|
|||||||
NULL|MdeModulePkg/Library/BootManagerUiLib/BootManagerUiLib.inf
|
NULL|MdeModulePkg/Library/BootManagerUiLib/BootManagerUiLib.inf
|
||||||
NULL|MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib.inf
|
NULL|MdeModulePkg/Library/BootMaintenanceManagerUiLib/BootMaintenanceManagerUiLib.inf
|
||||||
}
|
}
|
||||||
OvmfPkg/QemuKernelLoaderFsDxe/QemuKernelLoaderFsDxe.inf
|
OvmfPkg/QemuKernelLoaderFsDxe/QemuKernelLoaderFsDxe.inf {
|
||||||
|
<LibraryClasses>
|
||||||
|
NULL|OvmfPkg/Library/BlobVerifierLibNull/BlobVerifierLibNull.inf
|
||||||
|
}
|
||||||
|
|
||||||
#
|
#
|
||||||
# Networking stack
|
# Networking stack
|
||||||
|
@@ -177,9 +177,6 @@ READ_LOCK_STATUS = TRUE
|
|||||||
INF MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
|
INF MdeModulePkg/Universal/Disk/UnicodeCollation/EnglishDxe/EnglishDxe.inf
|
||||||
INF MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf
|
INF MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf
|
||||||
|
|
||||||
#
|
|
||||||
# UEFI application (Shell Embedded Boot Loader)
|
|
||||||
#
|
|
||||||
INF ShellPkg/Application/Shell/Shell.inf
|
INF ShellPkg/Application/Shell/Shell.inf
|
||||||
INF ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.inf
|
INF ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.inf
|
||||||
INF ShellPkg/DynamicCommand/HttpDynamicCommand/HttpDynamicCommand.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>
|
<Command.GCC>
|
||||||
"$(GENFW)" -o $(OUTPUT_DIR)(+)$(MODULE_NAME)hii.rc -g $(MODULE_GUID) --hiibinpackage $(HII_BINARY_PACKAGES) $(GENFW_FLAGS)
|
"$(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}
|
"$(RC)" $(RC_FLAGS) $(OUTPUT_DIR)(+)$(MODULE_NAME)hii.rc ${dst}
|
||||||
|
<Command.XCODE, Command.RVCT, Command.CLANGGCC>
|
||||||
<Command.XCODE, Command.RVCT>
|
"$(GENFW)" -o $(OUTPUT_DIR)(+)$(MODULE_NAME)hii.rc -g $(MODULE_GUID) --hiibinpackage $(HII_BINARY_PACKAGES) $(GENFW_FLAGS)
|
||||||
GenFw -o $(OUTPUT_DIR)(+)$(MODULE_NAME)hii.rc -g $(MODULE_GUID) --hiibinpackage $(HII_BINARY_PACKAGES)
|
|
||||||
|
@@ -292,9 +292,12 @@ DEFINE DTC_BIN = ENV(DTC_PREFIX)dtc
|
|||||||
# Required to compile nasm source:
|
# Required to compile nasm source:
|
||||||
# nasm compiler from
|
# nasm compiler from
|
||||||
# NASM -- http://www.nasm.us/
|
# NASM -- http://www.nasm.us/
|
||||||
# Required to build platforms or ACPI tables:
|
# CLANGDWARF -Linux, Windows, Mac- Requires:
|
||||||
# Intel(r) ACPI Compiler from
|
# Clang 9 or above from http://releases.llvm.org/
|
||||||
# https://acpica.org/downloads
|
# Optional:
|
||||||
|
# Required to compile nasm source:
|
||||||
|
# nasm compiler from
|
||||||
|
# NASM -- http://www.nasm.us/
|
||||||
# VS2008x86 -win64- Requires:
|
# VS2008x86 -win64- Requires:
|
||||||
# Microsoft Visual Studio 2008 (x86)
|
# Microsoft Visual Studio 2008 (x86)
|
||||||
# Microsoft Windows Server 2003 Driver Development Kit (Microsoft WINDDK) version 3790.1830
|
# 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_DLINK2_FLAGS =
|
||||||
NOOPT_CLANGPDB_X64_GENFW_FLAGS = --keepexceptiontable
|
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
|
# 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]
|
line=x.split('\n')[0]
|
||||||
comment_list = value_re.findall(line) # the string \\... in "Q...." line
|
comment_list = value_re.findall(line) # the string \\... in "Q...." line
|
||||||
comment_list[0] = comment_list[0].replace('//', '')
|
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
|
line=value_re.sub('',line) #delete \\... in "Q...." line
|
||||||
list1=line.split(' ')
|
list1=line.split(' ')
|
||||||
value=self.value_parser(list1)
|
value=self.value_parser(list1)
|
||||||
|
@@ -74,6 +74,5 @@ SECTIONS {
|
|||||||
*(.dynamic)
|
*(.dynamic)
|
||||||
*(.hash .gnu.hash)
|
*(.hash .gnu.hash)
|
||||||
*(.comment)
|
*(.comment)
|
||||||
*(COMMON)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,194 +1,196 @@
|
|||||||
## @file
|
## @file
|
||||||
# Retrieves the people to request review from on submission of a commit.
|
# Retrieves the people to request review from on submission of a commit.
|
||||||
#
|
#
|
||||||
# Copyright (c) 2019, Linaro Ltd. All rights reserved.<BR>
|
# Copyright (c) 2019, Linaro Ltd. All rights reserved.<BR>
|
||||||
#
|
#
|
||||||
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||||
#
|
#
|
||||||
|
|
||||||
from __future__ import print_function
|
from __future__ import print_function
|
||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
from collections import OrderedDict
|
from collections import OrderedDict
|
||||||
import argparse
|
import argparse
|
||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
import SetupGit
|
import SetupGit
|
||||||
|
|
||||||
EXPRESSIONS = {
|
EXPRESSIONS = {
|
||||||
'exclude': re.compile(r'^X:\s*(?P<exclude>.*?)\r*$'),
|
'exclude': re.compile(r'^X:\s*(?P<exclude>.*?)\r*$'),
|
||||||
'file': re.compile(r'^F:\s*(?P<file>.*?)\r*$'),
|
'file': re.compile(r'^F:\s*(?P<file>.*?)\r*$'),
|
||||||
'list': re.compile(r'^L:\s*(?P<list>.*?)\r*$'),
|
'list': re.compile(r'^L:\s*(?P<list>.*?)\r*$'),
|
||||||
'maintainer': re.compile(r'^M:\s*(?P<maintainer>.*<.*?>)\r*$'),
|
'maintainer': re.compile(r'^M:\s*(?P<maintainer>.*?)\r*$'),
|
||||||
'reviewer': re.compile(r'^R:\s*(?P<reviewer>.*?)\r*$'),
|
'reviewer': re.compile(r'^R:\s*(?P<reviewer>.*?)\r*$'),
|
||||||
'status': re.compile(r'^S:\s*(?P<status>.*?)\r*$'),
|
'status': re.compile(r'^S:\s*(?P<status>.*?)\r*$'),
|
||||||
'tree': re.compile(r'^T:\s*(?P<tree>.*?)\r*$'),
|
'tree': re.compile(r'^T:\s*(?P<tree>.*?)\r*$'),
|
||||||
'webpage': re.compile(r'^W:\s*(?P<webpage>.*?)\r*$')
|
'webpage': re.compile(r'^W:\s*(?P<webpage>.*?)\r*$')
|
||||||
}
|
}
|
||||||
|
|
||||||
def printsection(section):
|
def printsection(section):
|
||||||
"""Prints out the dictionary describing a Maintainers.txt section."""
|
"""Prints out the dictionary describing a Maintainers.txt section."""
|
||||||
print('===')
|
print('===')
|
||||||
for key in section.keys():
|
for key in section.keys():
|
||||||
print("Key: %s" % key)
|
print("Key: %s" % key)
|
||||||
for item in section[key]:
|
for item in section[key]:
|
||||||
print(' %s' % item)
|
print(' %s' % item)
|
||||||
|
|
||||||
def pattern_to_regex(pattern):
|
def pattern_to_regex(pattern):
|
||||||
"""Takes a string containing regular UNIX path wildcards
|
"""Takes a string containing regular UNIX path wildcards
|
||||||
and returns a string suitable for matching with regex."""
|
and returns a string suitable for matching with regex."""
|
||||||
|
|
||||||
pattern = pattern.replace('.', r'\.')
|
pattern = pattern.replace('.', r'\.')
|
||||||
pattern = pattern.replace('?', r'.')
|
pattern = pattern.replace('?', r'.')
|
||||||
pattern = pattern.replace('*', r'.*')
|
pattern = pattern.replace('*', r'.*')
|
||||||
|
|
||||||
if pattern.endswith('/'):
|
if pattern.endswith('/'):
|
||||||
pattern += r'.*'
|
pattern += r'.*'
|
||||||
elif pattern.endswith('.*'):
|
elif pattern.endswith('.*'):
|
||||||
pattern = pattern[:-2]
|
pattern = pattern[:-2]
|
||||||
pattern += r'(?!.*?/.*?)'
|
pattern += r'(?!.*?/.*?)'
|
||||||
|
|
||||||
return pattern
|
return pattern
|
||||||
|
|
||||||
def path_in_section(path, section):
|
def path_in_section(path, section):
|
||||||
"""Returns True of False indicating whether the path is covered by
|
"""Returns True of False indicating whether the path is covered by
|
||||||
the current section."""
|
the current section."""
|
||||||
if not 'file' in section:
|
if not 'file' in section:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
for pattern in section['file']:
|
for pattern in section['file']:
|
||||||
regex = pattern_to_regex(pattern)
|
regex = pattern_to_regex(pattern)
|
||||||
|
|
||||||
match = re.match(regex, path)
|
match = re.match(regex, path)
|
||||||
if match:
|
if match:
|
||||||
# Check if there is an exclude pattern that applies
|
# Check if there is an exclude pattern that applies
|
||||||
for pattern in section['exclude']:
|
for pattern in section['exclude']:
|
||||||
regex = pattern_to_regex(pattern)
|
regex = pattern_to_regex(pattern)
|
||||||
|
|
||||||
match = re.match(regex, path)
|
match = re.match(regex, path)
|
||||||
if match:
|
if match:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def get_section_maintainers(path, section):
|
def get_section_maintainers(path, section):
|
||||||
"""Returns a list with email addresses to any M: and R: entries
|
"""Returns a list with email addresses to any M: and R: entries
|
||||||
matching the provided path in the provided section."""
|
matching the provided path in the provided section."""
|
||||||
maintainers = []
|
maintainers = []
|
||||||
lists = []
|
lists = []
|
||||||
nowarn_status = ['Supported', 'Maintained']
|
nowarn_status = ['Supported', 'Maintained']
|
||||||
|
|
||||||
if path_in_section(path, section):
|
if path_in_section(path, section):
|
||||||
for status in section['status']:
|
for status in section['status']:
|
||||||
if status not in nowarn_status:
|
if status not in nowarn_status:
|
||||||
print('WARNING: Maintained status for "%s" is \'%s\'!' % (path, status))
|
print('WARNING: Maintained status for "%s" is \'%s\'!' % (path, status))
|
||||||
for address in section['maintainer'], section['reviewer']:
|
for address in section['maintainer'], section['reviewer']:
|
||||||
# Convert to list if necessary
|
# Convert to list if necessary
|
||||||
if isinstance(address, list):
|
if isinstance(address, list):
|
||||||
maintainers += address
|
maintainers += address
|
||||||
else:
|
else:
|
||||||
lists += [address]
|
lists += [address]
|
||||||
for address in section['list']:
|
for address in section['list']:
|
||||||
# Convert to list if necessary
|
# Convert to list if necessary
|
||||||
if isinstance(address, list):
|
if isinstance(address, list):
|
||||||
lists += address
|
lists += address
|
||||||
else:
|
else:
|
||||||
lists += [address]
|
lists += [address]
|
||||||
|
|
||||||
return maintainers, lists
|
return maintainers, lists
|
||||||
|
|
||||||
def get_maintainers(path, sections, level=0):
|
def get_maintainers(path, sections, level=0):
|
||||||
"""For 'path', iterates over all sections, returning maintainers
|
"""For 'path', iterates over all sections, returning maintainers
|
||||||
for matching ones."""
|
for matching ones."""
|
||||||
maintainers = []
|
maintainers = []
|
||||||
lists = []
|
lists = []
|
||||||
for section in sections:
|
for section in sections:
|
||||||
tmp_maint, tmp_lists = get_section_maintainers(path, section)
|
tmp_maint, tmp_lists = get_section_maintainers(path, section)
|
||||||
if tmp_maint:
|
if tmp_maint:
|
||||||
maintainers += tmp_maint
|
maintainers += tmp_maint
|
||||||
if tmp_lists:
|
if tmp_lists:
|
||||||
lists += tmp_lists
|
lists += tmp_lists
|
||||||
|
|
||||||
if not maintainers:
|
if not maintainers:
|
||||||
# If no match found, look for match for (nonexistent) file
|
# If no match found, look for match for (nonexistent) file
|
||||||
# REPO.working_dir/<default>
|
# REPO.working_dir/<default>
|
||||||
print('"%s": no maintainers found, looking for default' % path)
|
print('"%s": no maintainers found, looking for default' % path)
|
||||||
if level == 0:
|
if level == 0:
|
||||||
maintainers = get_maintainers('<default>', sections, level=level + 1)
|
maintainers = get_maintainers('<default>', sections, level=level + 1)
|
||||||
else:
|
else:
|
||||||
print("No <default> maintainers set for project.")
|
print("No <default> maintainers set for project.")
|
||||||
if not maintainers:
|
if not maintainers:
|
||||||
return None
|
return None
|
||||||
|
|
||||||
return maintainers + lists
|
return maintainers + lists
|
||||||
|
|
||||||
def parse_maintainers_line(line):
|
def parse_maintainers_line(line):
|
||||||
"""Parse one line of Maintainers.txt, returning any match group and its key."""
|
"""Parse one line of Maintainers.txt, returning any match group and its key."""
|
||||||
for key, expression in EXPRESSIONS.items():
|
for key, expression in EXPRESSIONS.items():
|
||||||
match = expression.match(line)
|
match = expression.match(line)
|
||||||
if match:
|
if match:
|
||||||
return key, match.group(key)
|
return key, match.group(key)
|
||||||
return None, None
|
return None, None
|
||||||
|
|
||||||
def parse_maintainers_file(filename):
|
def parse_maintainers_file(filename):
|
||||||
"""Parse the Maintainers.txt from top-level of repo and
|
"""Parse the Maintainers.txt from top-level of repo and
|
||||||
return a list containing dictionaries of all sections."""
|
return a list containing dictionaries of all sections."""
|
||||||
with open(filename, 'r') as text:
|
with open(filename, 'r') as text:
|
||||||
line = text.readline()
|
line = text.readline()
|
||||||
sectionlist = []
|
sectionlist = []
|
||||||
section = defaultdict(list)
|
section = defaultdict(list)
|
||||||
while line:
|
while line:
|
||||||
key, value = parse_maintainers_line(line)
|
key, value = parse_maintainers_line(line)
|
||||||
if key and value:
|
if key and value:
|
||||||
section[key].append(value)
|
section[key].append(value)
|
||||||
|
|
||||||
line = text.readline()
|
line = text.readline()
|
||||||
# If end of section (end of file, or non-tag line encountered)...
|
# If end of section (end of file, or non-tag line encountered)...
|
||||||
if not key or not value or not line:
|
if not key or not value or not line:
|
||||||
# ...if non-empty, append section to list.
|
# ...if non-empty, append section to list.
|
||||||
if section:
|
if section:
|
||||||
sectionlist.append(section.copy())
|
sectionlist.append(section.copy())
|
||||||
section.clear()
|
section.clear()
|
||||||
|
|
||||||
return sectionlist
|
return sectionlist
|
||||||
|
|
||||||
def get_modified_files(repo, args):
|
def get_modified_files(repo, args):
|
||||||
"""Returns a list of the files modified by the commit specified in 'args'."""
|
"""Returns a list of the files modified by the commit specified in 'args'."""
|
||||||
commit = repo.commit(args.commit)
|
commit = repo.commit(args.commit)
|
||||||
return commit.stats.files
|
return commit.stats.files
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
PARSER = argparse.ArgumentParser(
|
PARSER = argparse.ArgumentParser(
|
||||||
description='Retrieves information on who to cc for review on a given commit')
|
description='Retrieves information on who to cc for review on a given commit')
|
||||||
PARSER.add_argument('commit',
|
PARSER.add_argument('commit',
|
||||||
action="store",
|
action="store",
|
||||||
help='git revision to examine (default: HEAD)',
|
help='git revision to examine (default: HEAD)',
|
||||||
nargs='?',
|
nargs='?',
|
||||||
default='HEAD')
|
default='HEAD')
|
||||||
PARSER.add_argument('-l', '--lookup',
|
PARSER.add_argument('-l', '--lookup',
|
||||||
help='Find section matches for path LOOKUP',
|
help='Find section matches for path LOOKUP',
|
||||||
required=False)
|
required=False)
|
||||||
ARGS = PARSER.parse_args()
|
ARGS = PARSER.parse_args()
|
||||||
|
|
||||||
REPO = SetupGit.locate_repo()
|
REPO = SetupGit.locate_repo()
|
||||||
|
|
||||||
CONFIG_FILE = os.path.join(REPO.working_dir, 'Maintainers.txt')
|
CONFIG_FILE = os.path.join(REPO.working_dir, 'Maintainers.txt')
|
||||||
|
|
||||||
SECTIONS = parse_maintainers_file(CONFIG_FILE)
|
SECTIONS = parse_maintainers_file(CONFIG_FILE)
|
||||||
|
|
||||||
if ARGS.lookup:
|
if ARGS.lookup:
|
||||||
FILES = [ARGS.lookup]
|
FILES = [ARGS.lookup.replace('\\','/')]
|
||||||
else:
|
else:
|
||||||
FILES = get_modified_files(REPO, ARGS)
|
FILES = get_modified_files(REPO, ARGS)
|
||||||
|
|
||||||
ADDRESSES = []
|
ADDRESSES = []
|
||||||
|
|
||||||
for file in FILES:
|
for file in FILES:
|
||||||
print(file)
|
print(file)
|
||||||
addresslist = get_maintainers(file, SECTIONS)
|
addresslist = get_maintainers(file, SECTIONS)
|
||||||
if addresslist:
|
if addresslist:
|
||||||
ADDRESSES += addresslist
|
ADDRESSES += addresslist
|
||||||
|
|
||||||
for address in list(OrderedDict.fromkeys(ADDRESSES)):
|
for address in list(OrderedDict.fromkeys(ADDRESSES)):
|
||||||
print(' %s' % address)
|
if '<' in address and '>' in address:
|
||||||
|
address = address.split('>', 1)[0] + '>'
|
||||||
|
print(' %s' % address)
|
||||||
|
@@ -1,7 +1,7 @@
|
|||||||
## @file
|
## @file
|
||||||
# Check a patch for various format issues
|
# 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, Red Hat, Inc.<BR>
|
||||||
# Copyright (c) 2020, ARM Ltd. All rights reserved.<BR>
|
# Copyright (c) 2020, ARM Ltd. All rights reserved.<BR>
|
||||||
#
|
#
|
||||||
@@ -89,22 +89,28 @@ class EmailAddressCheck:
|
|||||||
class CommitMessageCheck:
|
class CommitMessageCheck:
|
||||||
"""Checks the contents of a git commit message."""
|
"""Checks the contents of a git commit message."""
|
||||||
|
|
||||||
def __init__(self, subject, message):
|
def __init__(self, subject, message, author_email):
|
||||||
self.ok = True
|
self.ok = True
|
||||||
|
|
||||||
if subject is None and message is None:
|
if subject is None and message is None:
|
||||||
self.error('Commit message is missing!')
|
self.error('Commit message is missing!')
|
||||||
return
|
return
|
||||||
|
|
||||||
|
MergifyMerge = False
|
||||||
|
if "mergify[bot]@users.noreply.github.com" in author_email:
|
||||||
|
if "Merge branch" in subject:
|
||||||
|
MergifyMerge = True
|
||||||
|
|
||||||
self.subject = subject
|
self.subject = subject
|
||||||
self.msg = message
|
self.msg = message
|
||||||
|
|
||||||
print (subject)
|
print (subject)
|
||||||
|
|
||||||
self.check_contributed_under()
|
self.check_contributed_under()
|
||||||
self.check_signed_off_by()
|
if not MergifyMerge:
|
||||||
self.check_misc_signatures()
|
self.check_signed_off_by()
|
||||||
self.check_overall_format()
|
self.check_misc_signatures()
|
||||||
|
self.check_overall_format()
|
||||||
self.report_message_result()
|
self.report_message_result()
|
||||||
|
|
||||||
url = 'https://github.com/tianocore/tianocore.github.io/wiki/Commit-Message-Format'
|
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_check = EmailAddressCheck(self.author_email, 'Author')
|
||||||
email_ok = email_check.ok
|
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
|
msg_ok = msg_check.ok
|
||||||
|
|
||||||
diff_ok = True
|
diff_ok = True
|
||||||
|
@@ -34,9 +34,27 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
|
|||||||
#include "FvLib.h"
|
#include "FvLib.h"
|
||||||
#include "PeCoffLib.h"
|
#include "PeCoffLib.h"
|
||||||
|
|
||||||
#define ARMT_UNCONDITIONAL_JUMP_INSTRUCTION 0xEB000000
|
|
||||||
#define ARM64_UNCONDITIONAL_JUMP_INSTRUCTION 0x14000000
|
#define ARM64_UNCONDITIONAL_JUMP_INSTRUCTION 0x14000000
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Arm instruction to jump to Fv entry instruction in Arm or Thumb mode.
|
||||||
|
* From ARM Arch Ref Manual versions b/c/d, section A8.8.25 BL, BLX (immediate)
|
||||||
|
* BLX (encoding A2) branches to offset in Thumb instruction set mode.
|
||||||
|
* BL (encoding A1) branches to offset in Arm instruction set mode.
|
||||||
|
*/
|
||||||
|
#define ARM_JUMP_OFFSET_MAX 0xffffff
|
||||||
|
#define ARM_JUMP_TO_ARM(Offset) (0xeb000000 | ((Offset - 8) >> 2))
|
||||||
|
|
||||||
|
#define _ARM_JUMP_TO_THUMB(Imm32) (0xfa000000 | \
|
||||||
|
(((Imm32) & (1 << 1)) << (24 - 1)) | \
|
||||||
|
(((Imm32) >> 2) & 0x7fffff))
|
||||||
|
#define ARM_JUMP_TO_THUMB(Offset) _ARM_JUMP_TO_THUMB((Offset) - 8)
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Arm instruction to return from exception (MOVS PC, LR)
|
||||||
|
*/
|
||||||
|
#define ARM_RETURN_FROM_EXCEPTION 0xE1B0F07E
|
||||||
|
|
||||||
BOOLEAN mArm = FALSE;
|
BOOLEAN mArm = FALSE;
|
||||||
BOOLEAN mRiscV = FALSE;
|
BOOLEAN mRiscV = FALSE;
|
||||||
STATIC UINT32 MaxFfsAlignment = 0;
|
STATIC UINT32 MaxFfsAlignment = 0;
|
||||||
@@ -2203,23 +2221,25 @@ Returns:
|
|||||||
// if we found an SEC core entry point then generate a branch instruction
|
// if we found an SEC core entry point then generate a branch instruction
|
||||||
// to it and populate a debugger SWI entry as well
|
// to it and populate a debugger SWI entry as well
|
||||||
if (UpdateVectorSec) {
|
if (UpdateVectorSec) {
|
||||||
|
UINT32 EntryOffset;
|
||||||
|
|
||||||
VerboseMsg("UpdateArmResetVectorIfNeeded updating ARM SEC vector");
|
VerboseMsg("UpdateArmResetVectorIfNeeded updating ARM SEC vector");
|
||||||
|
|
||||||
// B SecEntryPoint - signed_immed_24 part +/-32MB offset
|
EntryOffset = (INT32)(SecCoreEntryAddress - FvInfo->BaseAddress);
|
||||||
// on ARM, the PC is always 8 ahead, so we're not really jumping from the base address, but from base address + 8
|
|
||||||
ResetVector[0] = (INT32)(SecCoreEntryAddress - FvInfo->BaseAddress - 8) >> 2;
|
|
||||||
|
|
||||||
if (ResetVector[0] > 0x00FFFFFF) {
|
if (EntryOffset > ARM_JUMP_OFFSET_MAX) {
|
||||||
Error(NULL, 0, 3000, "Invalid", "SEC Entry point must be within 32MB of the start of the FV");
|
Error(NULL, 0, 3000, "Invalid", "SEC Entry point offset above 1MB of the start of the FV");
|
||||||
return EFI_ABORTED;
|
return EFI_ABORTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add opcode for an unconditional branch with no link. i.e.: " B SecEntryPoint"
|
if ((SecCoreEntryAddress & 1) != 0) {
|
||||||
ResetVector[0] |= ARMT_UNCONDITIONAL_JUMP_INSTRUCTION;
|
ResetVector[0] = ARM_JUMP_TO_THUMB(EntryOffset);
|
||||||
|
} else {
|
||||||
|
ResetVector[0] = ARM_JUMP_TO_ARM(EntryOffset);
|
||||||
|
}
|
||||||
|
|
||||||
// SWI handler movs pc,lr. Just in case a debugger uses SWI
|
// SWI handler movs pc,lr. Just in case a debugger uses SWI
|
||||||
ResetVector[2] = 0xE1B0F07E;
|
ResetVector[2] = ARM_RETURN_FROM_EXCEPTION;
|
||||||
|
|
||||||
// Place holder to support a common interrupt handler from ROM.
|
// Place holder to support a common interrupt handler from ROM.
|
||||||
// Currently not supported. For this to be used the reset vector would not be in this FV
|
// Currently not supported. For this to be used the reset vector would not be in this FV
|
||||||
|
@@ -238,7 +238,8 @@ IsTextShdr (
|
|||||||
Elf_Shdr *Shdr
|
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
|
STATIC
|
||||||
@@ -261,7 +262,7 @@ IsDataShdr (
|
|||||||
if (IsHiiRsrcShdr(Shdr)) {
|
if (IsHiiRsrcShdr(Shdr)) {
|
||||||
return FALSE;
|
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
|
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.");
|
Error (NULL, 0, 3000, "Invalid", "Did not find any '.text' section.");
|
||||||
assert (FALSE);
|
assert (FALSE);
|
||||||
}
|
}
|
||||||
@@ -749,13 +750,7 @@ WriteSections32 (
|
|||||||
if (SymName == NULL) {
|
if (SymName == NULL) {
|
||||||
SymName = (const UINT8 *)"<unknown>";
|
SymName = (const UINT8 *)"<unknown>";
|
||||||
}
|
}
|
||||||
|
continue;
|
||||||
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);
|
|
||||||
}
|
}
|
||||||
SymShdr = GetShdrByIndex(Sym->st_shndx);
|
SymShdr = GetShdrByIndex(Sym->st_shndx);
|
||||||
|
|
||||||
|
@@ -129,6 +129,8 @@ STATIC UINT32 mDebugOffset;
|
|||||||
STATIC UINT8 *mRiscVPass1Targ = NULL;
|
STATIC UINT8 *mRiscVPass1Targ = NULL;
|
||||||
STATIC Elf_Shdr *mRiscVPass1Sym = NULL;
|
STATIC Elf_Shdr *mRiscVPass1Sym = NULL;
|
||||||
STATIC Elf64_Half mRiscVPass1SymSecIndex = 0;
|
STATIC Elf64_Half mRiscVPass1SymSecIndex = 0;
|
||||||
|
STATIC INT32 mRiscVPass1Offset;
|
||||||
|
STATIC INT32 mRiscVPass1GotFixup;
|
||||||
|
|
||||||
//
|
//
|
||||||
// Initialization Function
|
// Initialization Function
|
||||||
@@ -246,7 +248,8 @@ IsTextShdr (
|
|||||||
Elf_Shdr *Shdr
|
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
|
STATIC
|
||||||
@@ -269,7 +272,7 @@ IsDataShdr (
|
|||||||
if (IsHiiRsrcShdr(Shdr)) {
|
if (IsHiiRsrcShdr(Shdr)) {
|
||||||
return FALSE;
|
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
|
STATIC
|
||||||
@@ -473,17 +476,18 @@ WriteSectionRiscV64 (
|
|||||||
{
|
{
|
||||||
UINT32 Value;
|
UINT32 Value;
|
||||||
UINT32 Value2;
|
UINT32 Value2;
|
||||||
|
Elf64_Addr GOTEntryRva;
|
||||||
|
|
||||||
switch (ELF_R_TYPE(Rel->r_info)) {
|
switch (ELF_R_TYPE(Rel->r_info)) {
|
||||||
case R_RISCV_NONE:
|
case R_RISCV_NONE:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case R_RISCV_32:
|
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;
|
break;
|
||||||
|
|
||||||
case R_RISCV_64:
|
case R_RISCV_64:
|
||||||
*(UINT64 *)Targ = *(UINT64 *)Targ - SymShdr->sh_addr + mCoffSectionsOffset[Sym->st_shndx];
|
*(UINT64 *)Targ = Sym->st_value + Rel->r_addend;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case R_RISCV_HI20:
|
case R_RISCV_HI20:
|
||||||
@@ -533,6 +537,18 @@ WriteSectionRiscV64 (
|
|||||||
mRiscVPass1SymSecIndex = 0;
|
mRiscVPass1SymSecIndex = 0;
|
||||||
break;
|
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:
|
case R_RISCV_PCREL_HI20:
|
||||||
mRiscVPass1Targ = Targ;
|
mRiscVPass1Targ = Targ;
|
||||||
mRiscVPass1Sym = SymShdr;
|
mRiscVPass1Sym = SymShdr;
|
||||||
@@ -541,15 +557,19 @@ WriteSectionRiscV64 (
|
|||||||
Value = (UINT32)(RV_X(*(UINT32 *)mRiscVPass1Targ, 12, 20));
|
Value = (UINT32)(RV_X(*(UINT32 *)mRiscVPass1Targ, 12, 20));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case R_RISCV_PCREL_LO12_I:
|
case R_RISCV_PCREL_LO12_S:
|
||||||
if (mRiscVPass1Targ != NULL && mRiscVPass1Sym != NULL && mRiscVPass1SymSecIndex != 0) {
|
if (mRiscVPass1Targ != NULL && mRiscVPass1Sym != NULL && mRiscVPass1SymSecIndex != 0) {
|
||||||
int i;
|
int i;
|
||||||
Value2 = (UINT32)(RV_X(*(UINT32 *)mRiscVPass1Targ, 12, 20));
|
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)) {
|
if(Value & (RISCV_IMM_REACH/2)) {
|
||||||
Value |= ~(RISCV_IMM_REACH-1);
|
Value |= ~(RISCV_IMM_REACH-1);
|
||||||
}
|
}
|
||||||
Value = Value - (UINT32)mRiscVPass1Sym->sh_addr + mCoffSectionsOffset[mRiscVPass1SymSecIndex];
|
Value = Value - (UINT32)mRiscVPass1Sym->sh_addr + mCoffSectionsOffset[mRiscVPass1SymSecIndex];
|
||||||
|
|
||||||
if(-2048 > (INT32)Value) {
|
if(-2048 > (INT32)Value) {
|
||||||
i = (((INT32)Value * -1) / 4096);
|
i = (((INT32)Value * -1) / 4096);
|
||||||
Value2 -= i;
|
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));
|
*(UINT32 *)mRiscVPass1Targ = (RV_X(Value2, 0, 20)<<12) | (RV_X(*(UINT32 *)mRiscVPass1Targ, 0, 12));
|
||||||
}
|
}
|
||||||
mRiscVPass1Sym = NULL;
|
mRiscVPass1Sym = NULL;
|
||||||
@@ -577,6 +611,71 @@ WriteSectionRiscV64 (
|
|||||||
mRiscVPass1SymSecIndex = 0;
|
mRiscVPass1SymSecIndex = 0;
|
||||||
break;
|
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_ADD64:
|
||||||
case R_RISCV_SUB64:
|
case R_RISCV_SUB64:
|
||||||
case R_RISCV_ADD32:
|
case R_RISCV_ADD32:
|
||||||
@@ -586,6 +685,7 @@ WriteSectionRiscV64 (
|
|||||||
case R_RISCV_GPREL_I:
|
case R_RISCV_GPREL_I:
|
||||||
case R_RISCV_GPREL_S:
|
case R_RISCV_GPREL_S:
|
||||||
case R_RISCV_CALL:
|
case R_RISCV_CALL:
|
||||||
|
case R_RISCV_CALL_PLT:
|
||||||
case R_RISCV_RVC_BRANCH:
|
case R_RISCV_RVC_BRANCH:
|
||||||
case R_RISCV_RVC_JUMP:
|
case R_RISCV_RVC_JUMP:
|
||||||
case R_RISCV_RELAX:
|
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.");
|
Error (NULL, 0, 3000, "Invalid", "Did not find any '.text' section.");
|
||||||
assert (FALSE);
|
assert (FALSE);
|
||||||
}
|
}
|
||||||
@@ -1060,6 +1160,7 @@ WriteSections64 (
|
|||||||
|
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
SymShdr = GetShdrByIndex(Sym->st_shndx);
|
SymShdr = GetShdrByIndex(Sym->st_shndx);
|
||||||
|
|
||||||
@@ -1528,6 +1629,7 @@ WriteRelocations64 (
|
|||||||
case R_RISCV_GPREL_I:
|
case R_RISCV_GPREL_I:
|
||||||
case R_RISCV_GPREL_S:
|
case R_RISCV_GPREL_S:
|
||||||
case R_RISCV_CALL:
|
case R_RISCV_CALL:
|
||||||
|
case R_RISCV_CALL_PLT:
|
||||||
case R_RISCV_RVC_BRANCH:
|
case R_RISCV_RVC_BRANCH:
|
||||||
case R_RISCV_RVC_JUMP:
|
case R_RISCV_RVC_JUMP:
|
||||||
case R_RISCV_RELAX:
|
case R_RISCV_RELAX:
|
||||||
@@ -1537,7 +1639,9 @@ WriteRelocations64 (
|
|||||||
case R_RISCV_SET16:
|
case R_RISCV_SET16:
|
||||||
case R_RISCV_SET32:
|
case R_RISCV_SET32:
|
||||||
case R_RISCV_PCREL_HI20:
|
case R_RISCV_PCREL_HI20:
|
||||||
|
case R_RISCV_GOT_HI20:
|
||||||
case R_RISCV_PCREL_LO12_I:
|
case R_RISCV_PCREL_LO12_I:
|
||||||
|
case R_RISCV_PCREL_LO12_S:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
@@ -12,7 +12,7 @@
|
|||||||
#
|
#
|
||||||
from __future__ import print_function
|
from __future__ import print_function
|
||||||
import Common.LongFilePathOs as os, codecs, re
|
import Common.LongFilePathOs as os, codecs, re
|
||||||
import distutils.util
|
import shlex
|
||||||
import Common.EdkLogger as EdkLogger
|
import Common.EdkLogger as EdkLogger
|
||||||
from io import BytesIO
|
from io import BytesIO
|
||||||
from Common.BuildToolError import *
|
from Common.BuildToolError import *
|
||||||
@@ -233,7 +233,7 @@ class UniFileClassObject(object):
|
|||||||
# Get Language definition
|
# Get Language definition
|
||||||
#
|
#
|
||||||
def GetLangDef(self, File, Line):
|
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:
|
if len(Lang) != 3:
|
||||||
try:
|
try:
|
||||||
FileIn = UniFileClassObject.OpenUniFile(LongFilePath(File.Path))
|
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_BUILD_TARGETS = 'BUILD_TARGETS'
|
||||||
TAB_DSC_DEFINES_SKUID_IDENTIFIER = 'SKUID_IDENTIFIER'
|
TAB_DSC_DEFINES_SKUID_IDENTIFIER = 'SKUID_IDENTIFIER'
|
||||||
TAB_DSC_DEFINES_PCD_INFO_GENERATION = 'PCD_INFO_GENERATION'
|
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_PCD_VAR_CHECK_GENERATION = 'PCD_VAR_CHECK_GENERATION'
|
||||||
TAB_DSC_DEFINES_FLASH_DEFINITION = 'FLASH_DEFINITION'
|
TAB_DSC_DEFINES_FLASH_DEFINITION = 'FLASH_DEFINITION'
|
||||||
TAB_DSC_DEFINES_BUILD_NUMBER = 'BUILD_NUMBER'
|
TAB_DSC_DEFINES_BUILD_NUMBER = 'BUILD_NUMBER'
|
||||||
|
@@ -148,14 +148,14 @@ def splitFile(inputfile, position, outputdir=None, outputfile1=None, outputfile2
|
|||||||
|
|
||||||
if position <= 0:
|
if position <= 0:
|
||||||
if outputfile2 != os.path.abspath(inputfile):
|
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:
|
with open(outputfile1, "wb") as fout:
|
||||||
fout.write(b'')
|
fout.write(b'')
|
||||||
else:
|
else:
|
||||||
inputfilesize = getFileSize(inputfile)
|
inputfilesize = getFileSize(inputfile)
|
||||||
if position >= inputfilesize:
|
if position >= inputfilesize:
|
||||||
if outputfile1 != os.path.abspath(inputfile):
|
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:
|
with open(outputfile2, "wb") as fout:
|
||||||
fout.write(b'')
|
fout.write(b'')
|
||||||
else:
|
else:
|
||||||
@@ -171,8 +171,8 @@ def splitFile(inputfile, position, outputdir=None, outputfile1=None, outputfile2
|
|||||||
content2 = fin.read(inputfilesize - position)
|
content2 = fin.read(inputfilesize - position)
|
||||||
with open(tempfile2, "wb") as fout2:
|
with open(tempfile2, "wb") as fout2:
|
||||||
fout2.write(content2)
|
fout2.write(content2)
|
||||||
shutil.copy2(tempfile1, outputfile1)
|
shutil.copyfile(tempfile1, outputfile1)
|
||||||
shutil.copy2(tempfile2, outputfile2)
|
shutil.copyfile(tempfile2, outputfile2)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error("Split file failed")
|
logger.error("Split file failed")
|
||||||
raise(e)
|
raise(e)
|
||||||
|
@@ -14,7 +14,7 @@ from __future__ import print_function
|
|||||||
# Import Modules
|
# Import Modules
|
||||||
#
|
#
|
||||||
import os, codecs, re
|
import os, codecs, re
|
||||||
import distutils.util
|
import shlex
|
||||||
from Logger import ToolError
|
from Logger import ToolError
|
||||||
from Logger import Log as EdkLogger
|
from Logger import Log as EdkLogger
|
||||||
from Logger import StringTable as ST
|
from Logger import StringTable as ST
|
||||||
@@ -320,7 +320,7 @@ class UniFileClassObject(object):
|
|||||||
# Get Language definition
|
# Get Language definition
|
||||||
#
|
#
|
||||||
def GetLangDef(self, File, Line):
|
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:
|
if len(Lang) != 3:
|
||||||
try:
|
try:
|
||||||
FileIn = codecs.open(File.Path, mode='rb', encoding='utf_8').readlines()
|
FileIn = codecs.open(File.Path, mode='rb', encoding='utf_8').readlines()
|
||||||
|
@@ -12,7 +12,9 @@ import re
|
|||||||
from collections import OrderedDict
|
from collections import OrderedDict
|
||||||
from Common.Misc import CopyDict,ArrayIndex
|
from Common.Misc import CopyDict,ArrayIndex
|
||||||
import copy
|
import copy
|
||||||
|
from CommonDataClass.DataClass import *
|
||||||
import Common.EdkLogger as EdkLogger
|
import Common.EdkLogger as EdkLogger
|
||||||
|
import Common.GlobalData as GlobalData
|
||||||
from Common.BuildToolError import OPTION_VALUE_INVALID
|
from Common.BuildToolError import OPTION_VALUE_INVALID
|
||||||
from Common.caching import cached_property
|
from Common.caching import cached_property
|
||||||
StructPattern = re.compile(r'[_a-zA-Z][0-9A-Za-z_\[\]]*$')
|
StructPattern = re.compile(r'[_a-zA-Z][0-9A-Za-z_\[\]]*$')
|
||||||
@@ -398,6 +400,67 @@ class StructurePcd(PcdClassObject):
|
|||||||
|
|
||||||
LibraryClassObject = namedtuple('LibraryClassObject', ['LibraryClass','SupModList'])
|
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
|
## ModuleBuildClassObject
|
||||||
#
|
#
|
||||||
# This Class defines ModuleBuildClass
|
# This Class defines ModuleBuildClass
|
||||||
@@ -442,7 +505,7 @@ LibraryClassObject = namedtuple('LibraryClassObject', ['LibraryClass','SupModLis
|
|||||||
# { [BuildOptionKey] : BuildOptionValue}
|
# { [BuildOptionKey] : BuildOptionValue}
|
||||||
# @var Depex: To store value for Depex
|
# @var Depex: To store value for Depex
|
||||||
#
|
#
|
||||||
class ModuleBuildClassObject(object):
|
class ModuleBuildClassObject(BuildData):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.AutoGenVersion = 0
|
self.AutoGenVersion = 0
|
||||||
self.MetaFile = ''
|
self.MetaFile = ''
|
||||||
@@ -476,34 +539,6 @@ class ModuleBuildClassObject(object):
|
|||||||
self.StrPcdSet = []
|
self.StrPcdSet = []
|
||||||
self.StrPcdOverallValue = {}
|
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
|
## PackageBuildClassObject
|
||||||
#
|
#
|
||||||
# This Class defines PackageBuildClass
|
# This Class defines PackageBuildClass
|
||||||
@@ -527,7 +562,7 @@ class ModuleBuildClassObject(object):
|
|||||||
# @var Pcds: To store value for Pcds, it is a set structure as
|
# @var Pcds: To store value for Pcds, it is a set structure as
|
||||||
# { [(PcdCName, PcdGuidCName)] : PcdClassObject}
|
# { [(PcdCName, PcdGuidCName)] : PcdClassObject}
|
||||||
#
|
#
|
||||||
class PackageBuildClassObject(object):
|
class PackageBuildClassObject(BuildData):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.MetaFile = ''
|
self.MetaFile = ''
|
||||||
self.PackageName = ''
|
self.PackageName = ''
|
||||||
@@ -541,34 +576,6 @@ class PackageBuildClassObject(object):
|
|||||||
self.LibraryClasses = {}
|
self.LibraryClasses = {}
|
||||||
self.Pcds = {}
|
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
|
## PlatformBuildClassObject
|
||||||
#
|
#
|
||||||
# This Class defines PlatformBuildClass
|
# This Class defines PlatformBuildClass
|
||||||
@@ -597,7 +604,7 @@ class PackageBuildClassObject(object):
|
|||||||
# @var BuildOptions: To store value for BuildOptions, it is a set structure as
|
# @var BuildOptions: To store value for BuildOptions, it is a set structure as
|
||||||
# { [BuildOptionKey] : BuildOptionValue }
|
# { [BuildOptionKey] : BuildOptionValue }
|
||||||
#
|
#
|
||||||
class PlatformBuildClassObject(object):
|
class PlatformBuildClassObject(BuildData):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.MetaFile = ''
|
self.MetaFile = ''
|
||||||
self.PlatformName = ''
|
self.PlatformName = ''
|
||||||
@@ -616,31 +623,3 @@ class PlatformBuildClassObject(object):
|
|||||||
self.Libraries = {}
|
self.Libraries = {}
|
||||||
self.Pcds = {}
|
self.Pcds = {}
|
||||||
self.BuildOptions = {}
|
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.
|
# into PackageBuildClassObject form for easier use for AutoGen.
|
||||||
#
|
#
|
||||||
class DecBuildData(PackageBuildClassObject):
|
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
|
# dict used to convert part of [Defines] to members of DecBuildData directly
|
||||||
_PROPERTY_ = {
|
_PROPERTY_ = {
|
||||||
@@ -47,7 +33,6 @@ class DecBuildData(PackageBuildClassObject):
|
|||||||
TAB_DEC_DEFINES_PKG_UNI_FILE : "_PkgUniFile",
|
TAB_DEC_DEFINES_PKG_UNI_FILE : "_PkgUniFile",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
## Constructor of DecBuildData
|
## Constructor of DecBuildData
|
||||||
#
|
#
|
||||||
# Initialize object of DecBuildData
|
# Initialize object of DecBuildData
|
||||||
@@ -68,6 +53,7 @@ class DecBuildData(PackageBuildClassObject):
|
|||||||
self._Target = Target
|
self._Target = Target
|
||||||
self._Toolchain = Toolchain
|
self._Toolchain = Toolchain
|
||||||
self._Clear()
|
self._Clear()
|
||||||
|
self.UpdatePcdTypeDict()
|
||||||
|
|
||||||
## XXX[key] = value
|
## XXX[key] = value
|
||||||
def __setitem__(self, key, value):
|
def __setitem__(self, key, value):
|
||||||
|
@@ -179,20 +179,6 @@ def GetDependencyList(FileStack, SearchPathList):
|
|||||||
return DependencyList
|
return DependencyList
|
||||||
|
|
||||||
class DscBuildData(PlatformBuildClassObject):
|
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
|
# dict used to convert part of [Defines] to members of DscBuildData directly
|
||||||
_PROPERTY_ = {
|
_PROPERTY_ = {
|
||||||
@@ -242,7 +228,7 @@ class DscBuildData(PlatformBuildClassObject):
|
|||||||
self.WorkspaceDir = os.getenv("WORKSPACE") if os.getenv("WORKSPACE") else ""
|
self.WorkspaceDir = os.getenv("WORKSPACE") if os.getenv("WORKSPACE") else ""
|
||||||
self.DefaultStores = None
|
self.DefaultStores = None
|
||||||
self.SkuIdMgr = SkuClass(self.SkuName, self.SkuIds)
|
self.SkuIdMgr = SkuClass(self.SkuName, self.SkuIds)
|
||||||
|
self.UpdatePcdTypeDict()
|
||||||
@property
|
@property
|
||||||
def OutputPath(self):
|
def OutputPath(self):
|
||||||
if os.getenv("WORKSPACE"):
|
if os.getenv("WORKSPACE"):
|
||||||
@@ -411,6 +397,9 @@ class DscBuildData(PlatformBuildClassObject):
|
|||||||
except:
|
except:
|
||||||
EdkLogger.error("build", FORMAT_INVALID, "Invalid GUID format for VPD_TOOL_GUID", File=self.MetaFile)
|
EdkLogger.error("build", FORMAT_INVALID, "Invalid GUID format for VPD_TOOL_GUID", File=self.MetaFile)
|
||||||
self._VpdToolGuid = Record[2]
|
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:
|
elif Name in self:
|
||||||
self[Name] = Record[2]
|
self[Name] = Record[2]
|
||||||
# set _Header to non-None in order to avoid database re-querying
|
# 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.
|
# into ModuleBuildClassObject form for easier use for AutoGen.
|
||||||
#
|
#
|
||||||
class InfBuildData(ModuleBuildClassObject):
|
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
|
# dict used to convert part of [Defines] to members of InfBuildData directly
|
||||||
_PROPERTY_ = {
|
_PROPERTY_ = {
|
||||||
@@ -154,6 +140,7 @@ class InfBuildData(ModuleBuildClassObject):
|
|||||||
self._PcdComments = None
|
self._PcdComments = None
|
||||||
self._BuildOptions = None
|
self._BuildOptions = None
|
||||||
self._DependencyFileList = None
|
self._DependencyFileList = None
|
||||||
|
self.UpdatePcdTypeDict()
|
||||||
self.LibInstances = []
|
self.LibInstances = []
|
||||||
self.ReferenceModules = set()
|
self.ReferenceModules = set()
|
||||||
|
|
||||||
|
@@ -197,7 +197,7 @@ def ReadMessage(From, To, ExitFlag,MemTo=None):
|
|||||||
To(LineStr)
|
To(LineStr)
|
||||||
else:
|
else:
|
||||||
break
|
break
|
||||||
if ExitFlag.isSet():
|
if ExitFlag.is_set():
|
||||||
break
|
break
|
||||||
|
|
||||||
class MakeSubProc(Popen):
|
class MakeSubProc(Popen):
|
||||||
@@ -241,8 +241,8 @@ def LaunchCommand(Command, WorkingDir,ModuleAuto = None):
|
|||||||
EndOfProcedure.clear()
|
EndOfProcedure.clear()
|
||||||
if Proc.stdout:
|
if Proc.stdout:
|
||||||
StdOutThread = Thread(target=ReadMessage, args=(Proc.stdout, EdkLogger.info, EndOfProcedure,Proc.ProcOut))
|
StdOutThread = Thread(target=ReadMessage, args=(Proc.stdout, EdkLogger.info, EndOfProcedure,Proc.ProcOut))
|
||||||
StdOutThread.setName("STDOUT-Redirector")
|
StdOutThread.name = "STDOUT-Redirector"
|
||||||
StdOutThread.setDaemon(False)
|
StdOutThread.daemon = False
|
||||||
StdOutThread.start()
|
StdOutThread.start()
|
||||||
|
|
||||||
|
|
||||||
@@ -433,8 +433,8 @@ class BuildTask:
|
|||||||
@staticmethod
|
@staticmethod
|
||||||
def StartScheduler(MaxThreadNumber, ExitFlag):
|
def StartScheduler(MaxThreadNumber, ExitFlag):
|
||||||
SchedulerThread = Thread(target=BuildTask.Scheduler, args=(MaxThreadNumber, ExitFlag))
|
SchedulerThread = Thread(target=BuildTask.Scheduler, args=(MaxThreadNumber, ExitFlag))
|
||||||
SchedulerThread.setName("Build-Task-Scheduler")
|
SchedulerThread.name = "Build-Task-Scheduler"
|
||||||
SchedulerThread.setDaemon(False)
|
SchedulerThread.daemon = False
|
||||||
SchedulerThread.start()
|
SchedulerThread.start()
|
||||||
# wait for the scheduler to be started, especially useful in Linux
|
# wait for the scheduler to be started, especially useful in Linux
|
||||||
while not BuildTask.IsOnGoing():
|
while not BuildTask.IsOnGoing():
|
||||||
@@ -456,7 +456,7 @@ class BuildTask:
|
|||||||
# indicated to do so, or there's error in running thread
|
# indicated to do so, or there's error in running thread
|
||||||
#
|
#
|
||||||
while (len(BuildTask._PendingQueue) > 0 or len(BuildTask._ReadyQueue) > 0 \
|
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)"
|
EdkLogger.debug(EdkLogger.DEBUG_8, "Pending Queue (%d), Ready Queue (%d)"
|
||||||
% (len(BuildTask._PendingQueue), len(BuildTask._ReadyQueue)))
|
% (len(BuildTask._PendingQueue), len(BuildTask._ReadyQueue)))
|
||||||
|
|
||||||
@@ -474,7 +474,7 @@ class BuildTask:
|
|||||||
BuildTask._PendingQueueLock.release()
|
BuildTask._PendingQueueLock.release()
|
||||||
|
|
||||||
# launch build thread until the maximum number of threads is reached
|
# 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
|
# empty ready queue, do nothing further
|
||||||
if len(BuildTask._ReadyQueue) == 0:
|
if len(BuildTask._ReadyQueue) == 0:
|
||||||
break
|
break
|
||||||
@@ -498,12 +498,12 @@ class BuildTask:
|
|||||||
time.sleep(0.01)
|
time.sleep(0.01)
|
||||||
|
|
||||||
# wait for all running threads exit
|
# wait for all running threads exit
|
||||||
if BuildTask._ErrorFlag.isSet():
|
if BuildTask._ErrorFlag.is_set():
|
||||||
EdkLogger.quiet("\nWaiting for all build threads exit...")
|
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:
|
while len(BuildTask._RunningQueue) > 0:
|
||||||
EdkLogger.verbose("Waiting for thread ending...(%d)" % len(BuildTask._RunningQueue))
|
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
|
# avoid tense loop
|
||||||
time.sleep(0.1)
|
time.sleep(0.1)
|
||||||
except BaseException as X:
|
except BaseException as X:
|
||||||
@@ -531,7 +531,7 @@ class BuildTask:
|
|||||||
#
|
#
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def IsOnGoing():
|
def IsOnGoing():
|
||||||
return not BuildTask._SchedulerStopped.isSet()
|
return not BuildTask._SchedulerStopped.is_set()
|
||||||
|
|
||||||
## Abort the build
|
## Abort the build
|
||||||
@staticmethod
|
@staticmethod
|
||||||
@@ -547,7 +547,7 @@ class BuildTask:
|
|||||||
#
|
#
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def HasError():
|
def HasError():
|
||||||
return BuildTask._ErrorFlag.isSet()
|
return BuildTask._ErrorFlag.is_set()
|
||||||
|
|
||||||
## Get error message in running thread
|
## 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
|
# TRICK: hide the output of threads left running, so that the user can
|
||||||
# catch the error message easily
|
# 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),
|
GlobalData.gBuildingModule = "%s [%s, %s, %s]" % (str(self.BuildItem.BuildObject),
|
||||||
self.BuildItem.BuildObject.Arch,
|
self.BuildItem.BuildObject.Arch,
|
||||||
self.BuildItem.BuildObject.ToolChain,
|
self.BuildItem.BuildObject.ToolChain,
|
||||||
@@ -653,7 +653,7 @@ class BuildTask:
|
|||||||
EdkLogger.SetLevel(EdkLogger.ERROR)
|
EdkLogger.SetLevel(EdkLogger.ERROR)
|
||||||
BuildTask._ErrorFlag.set()
|
BuildTask._ErrorFlag.set()
|
||||||
BuildTask._ErrorMessage = "%s broken\n %s [%s]" % \
|
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
|
# indicate there's a thread is available for another build task
|
||||||
BuildTask._RunningQueueLock.acquire()
|
BuildTask._RunningQueueLock.acquire()
|
||||||
@@ -667,8 +667,8 @@ class BuildTask:
|
|||||||
EdkLogger.quiet("Building ... %s" % repr(self.BuildItem))
|
EdkLogger.quiet("Building ... %s" % repr(self.BuildItem))
|
||||||
Command = self.BuildItem.BuildCommand + [self.BuildItem.Target]
|
Command = self.BuildItem.BuildCommand + [self.BuildItem.Target]
|
||||||
self.BuildTread = Thread(target=self._CommandThread, args=(Command, self.BuildItem.WorkingDir))
|
self.BuildTread = Thread(target=self._CommandThread, args=(Command, self.BuildItem.WorkingDir))
|
||||||
self.BuildTread.setName("build thread")
|
self.BuildTread.name = "build thread"
|
||||||
self.BuildTread.setDaemon(False)
|
self.BuildTread.daemon = False
|
||||||
self.BuildTread.start()
|
self.BuildTread.start()
|
||||||
|
|
||||||
## The class contains the information related to EFI image
|
## The class contains the information related to EFI image
|
||||||
@@ -1177,14 +1177,14 @@ class Build():
|
|||||||
EndOfProcedure.clear()
|
EndOfProcedure.clear()
|
||||||
if Process.stdout:
|
if Process.stdout:
|
||||||
StdOutThread = Thread(target=ReadMessage, args=(Process.stdout, EdkLogger.info, EndOfProcedure))
|
StdOutThread = Thread(target=ReadMessage, args=(Process.stdout, EdkLogger.info, EndOfProcedure))
|
||||||
StdOutThread.setName("STDOUT-Redirector")
|
StdOutThread.name = "STDOUT-Redirector"
|
||||||
StdOutThread.setDaemon(False)
|
StdOutThread.daemon = False
|
||||||
StdOutThread.start()
|
StdOutThread.start()
|
||||||
|
|
||||||
if Process.stderr:
|
if Process.stderr:
|
||||||
StdErrThread = Thread(target=ReadMessage, args=(Process.stderr, EdkLogger.quiet, EndOfProcedure))
|
StdErrThread = Thread(target=ReadMessage, args=(Process.stderr, EdkLogger.quiet, EndOfProcedure))
|
||||||
StdErrThread.setName("STDERR-Redirector")
|
StdErrThread.name = "STDERR-Redirector"
|
||||||
StdErrThread.setDaemon(False)
|
StdErrThread.daemon = False
|
||||||
StdErrThread.start()
|
StdErrThread.start()
|
||||||
# waiting for program exit
|
# waiting for program exit
|
||||||
Process.wait()
|
Process.wait()
|
||||||
@@ -1217,14 +1217,14 @@ class Build():
|
|||||||
EndOfProcedure.clear()
|
EndOfProcedure.clear()
|
||||||
if Process.stdout:
|
if Process.stdout:
|
||||||
StdOutThread = Thread(target=ReadMessage, args=(Process.stdout, EdkLogger.info, EndOfProcedure))
|
StdOutThread = Thread(target=ReadMessage, args=(Process.stdout, EdkLogger.info, EndOfProcedure))
|
||||||
StdOutThread.setName("STDOUT-Redirector")
|
StdOutThread.name = "STDOUT-Redirector"
|
||||||
StdOutThread.setDaemon(False)
|
StdOutThread.daemon = False
|
||||||
StdOutThread.start()
|
StdOutThread.start()
|
||||||
|
|
||||||
if Process.stderr:
|
if Process.stderr:
|
||||||
StdErrThread = Thread(target=ReadMessage, args=(Process.stderr, EdkLogger.quiet, EndOfProcedure))
|
StdErrThread = Thread(target=ReadMessage, args=(Process.stderr, EdkLogger.quiet, EndOfProcedure))
|
||||||
StdErrThread.setName("STDERR-Redirector")
|
StdErrThread.name = "STDERR-Redirector"
|
||||||
StdErrThread.setDaemon(False)
|
StdErrThread.daemon = False
|
||||||
StdErrThread.start()
|
StdErrThread.start()
|
||||||
# waiting for program exit
|
# waiting for program exit
|
||||||
Process.wait()
|
Process.wait()
|
||||||
|
@@ -13,13 +13,6 @@ import os
|
|||||||
import sys
|
import sys
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
try:
|
|
||||||
import distutils.util
|
|
||||||
except ModuleNotFoundError:
|
|
||||||
sys.exit('''
|
|
||||||
Python reported: "No module named 'distutils.util"
|
|
||||||
''')
|
|
||||||
|
|
||||||
import TestTools
|
import TestTools
|
||||||
|
|
||||||
def GetCTestSuite():
|
def GetCTestSuite():
|
||||||
|
@@ -227,7 +227,7 @@ if NOT exist %CONF_PATH% (
|
|||||||
) else (
|
) else (
|
||||||
if defined RECONFIG (
|
if defined RECONFIG (
|
||||||
echo.
|
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 using the default template files
|
||||||
echo.
|
echo.
|
||||||
)
|
)
|
||||||
@@ -240,7 +240,7 @@ if NOT exist %CONF_PATH%\target.txt (
|
|||||||
)
|
)
|
||||||
copy %EDK_TOOLS_PATH%\Conf\target.template %CONF_PATH%\target.txt > nul
|
copy %EDK_TOOLS_PATH%\Conf\target.template %CONF_PATH%\target.txt > nul
|
||||||
) else (
|
) 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
|
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
|
copy %EDK_TOOLS_PATH%\Conf\tools_def.template %CONF_PATH%\tools_def.txt > nul
|
||||||
) else (
|
) 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
|
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%\GenFv.exe" goto check_c_tools
|
||||||
IF NOT EXIST "%EDK_TOOLS_BIN%\GenFw.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%\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%\TianoCompress.exe" goto check_c_tools
|
||||||
IF NOT EXIST "%EDK_TOOLS_BIN%\VfrCompile.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
|
IF NOT EXIST "%EDK_TOOLS_BIN%\VolInfo.exe" goto check_c_tools
|
||||||
@@ -402,6 +401,8 @@ goto end
|
|||||||
if %ERRORLEVEL% EQU 0 (
|
if %ERRORLEVEL% EQU 0 (
|
||||||
goto use_pip_basetools
|
goto use_pip_basetools
|
||||||
) else (
|
) else (
|
||||||
|
REM reset ERRORLEVEL
|
||||||
|
type nul>nul
|
||||||
goto use_builtin_basetools
|
goto use_builtin_basetools
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@@ -7,7 +7,11 @@
|
|||||||
##
|
##
|
||||||
{
|
{
|
||||||
"LicenseCheck": {
|
"LicenseCheck": {
|
||||||
"IgnoreFiles": []
|
"IgnoreFiles": [
|
||||||
|
# These directories contain auto-generated OpenSSL content
|
||||||
|
"Library/OpensslLib/X64",
|
||||||
|
"Library/OpensslLib/X64Gcc"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"EccCheck": {
|
"EccCheck": {
|
||||||
## Exception sample looks like below:
|
## Exception sample looks like below:
|
||||||
@@ -23,8 +27,13 @@
|
|||||||
"Test/UnitTest",
|
"Test/UnitTest",
|
||||||
# This has OpenSSL interfaces that aren't UEFI spec compliant
|
# This has OpenSSL interfaces that aren't UEFI spec compliant
|
||||||
"Library/BaseCryptLib/SysCall/UnitTestHostCrtWrapper.c",
|
"Library/BaseCryptLib/SysCall/UnitTestHostCrtWrapper.c",
|
||||||
# this has OpenSSL interfaces that aren't UEFI spec compliant
|
# This has OpenSSL interfaces that aren't UEFI spec compliant
|
||||||
"Library/OpensslLib/rand_pool.c"
|
"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": {
|
"CompilerPlugin": {
|
||||||
@@ -51,7 +60,11 @@
|
|||||||
},
|
},
|
||||||
"DscCompleteCheck": {
|
"DscCompleteCheck": {
|
||||||
"DscPath": "CryptoPkg.dsc",
|
"DscPath": "CryptoPkg.dsc",
|
||||||
"IgnoreInf": []
|
"IgnoreInf": [
|
||||||
|
# These are alternatives to OpensslLib.inf
|
||||||
|
"CryptoPkg/Library/OpensslLib/OpensslLibX64.inf",
|
||||||
|
"CryptoPkg/Library/OpensslLib/OpensslLibX64Gcc.inf"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"GuidCheck": {
|
"GuidCheck": {
|
||||||
"IgnoreGuidName": [],
|
"IgnoreGuidName": [],
|
||||||
|
@@ -1376,7 +1376,7 @@ RsaPkcs1Verify (
|
|||||||
If Message is NULL, then return FALSE.
|
If Message is NULL, then return FALSE.
|
||||||
If MsgSize is zero or > INT_MAX, then return FALSE.
|
If MsgSize is zero or > INT_MAX, then return FALSE.
|
||||||
If DigestLen is NOT 32, 48 or 64, 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 SigSize is large enough but Signature is NULL, then return FALSE.
|
||||||
If this interface is not supported, 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.
|
Verifies the RSA signature with RSASSA-PSS signature scheme defined in RFC 8017.
|
||||||
Implementation determines salt length automatically from the signature encoding.
|
Implementation determines salt length automatically from the signature encoding.
|
||||||
Mask generation function is the same as the message digest algorithm.
|
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] RsaContext Pointer to RSA context for signature verification.
|
||||||
@param[in] Message Pointer to octet message to be verified.
|
@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.
|
Verifies the RSA signature with RSASSA-PSS signature scheme defined in RFC 8017.
|
||||||
Implementation determines salt length automatically from the signature encoding.
|
Implementation determines salt length automatically from the signature encoding.
|
||||||
Mask generation function is the same as the message digest algorithm.
|
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] RsaContext Pointer to RSA context for signature verification.
|
||||||
@param[in] Message Pointer to octet message to be verified.
|
@param[in] Message Pointer to octet message to be verified.
|
||||||
@@ -97,7 +97,7 @@ RsaPssVerify (
|
|||||||
if (Signature == NULL || SigSize == 0 || SigSize > INT_MAX) {
|
if (Signature == NULL || SigSize == 0 || SigSize > INT_MAX) {
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
if (SaltLen < DigestLen) {
|
if (SaltLen != DigestLen) {
|
||||||
return FALSE;
|
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.
|
Verifies the RSA signature with RSASSA-PSS signature scheme defined in RFC 8017.
|
||||||
Implementation determines salt length automatically from the signature encoding.
|
Implementation determines salt length automatically from the signature encoding.
|
||||||
Mask generation function is the same as the message digest algorithm.
|
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] RsaContext Pointer to RSA context for signature verification.
|
||||||
@param[in] Message Pointer to octet message to be verified.
|
@param[in] Message Pointer to octet message to be verified.
|
||||||
|
@@ -59,7 +59,7 @@ GetEvpMD (
|
|||||||
If Message is NULL, then return FALSE.
|
If Message is NULL, then return FALSE.
|
||||||
If MsgSize is zero or > INT_MAX, then return FALSE.
|
If MsgSize is zero or > INT_MAX, then return FALSE.
|
||||||
If DigestLen is NOT 32, 48 or 64, 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 SigSize is large enough but Signature is NULL, then return FALSE.
|
||||||
If this interface is not supported, then return FALSE.
|
If this interface is not supported, then return FALSE.
|
||||||
|
|
||||||
@@ -120,7 +120,7 @@ RsaPssSign (
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (SaltLen < DigestLen) {
|
if (SaltLen != DigestLen) {
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -24,7 +24,7 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
|
|||||||
If Message is NULL, then return FALSE.
|
If Message is NULL, then return FALSE.
|
||||||
If MsgSize is zero or > INT_MAX, then return FALSE.
|
If MsgSize is zero or > INT_MAX, then return FALSE.
|
||||||
If DigestLen is NOT 32, 48 or 64, 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 SigSize is large enough but Signature is NULL, then return FALSE.
|
||||||
If this interface is not supported, 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
|
# functions, PKCS#7 SignedData sign functions, Diffie-Hellman functions, and
|
||||||
# authenticode signature verification functions are not supported in this instance.
|
# authenticode signature verification functions are not supported in this instance.
|
||||||
#
|
#
|
||||||
# Copyright (c) 2009 - 2020, Intel Corporation. All rights reserved.<BR>
|
# Copyright (c) 2009 - 2021, Intel Corporation. All rights reserved.<BR>
|
||||||
# Copyright (c) 2020, Hewlett Packard Enterprise Development LP. All rights reserved.<BR>
|
# Copyright (c) 2021, Hewlett Packard Enterprise Development LP. All rights reserved.<BR>
|
||||||
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||||
#
|
#
|
||||||
##
|
##
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
Hash/CryptSha1.c
|
Hash/CryptSha1.c
|
||||||
Hash/CryptSha256.c
|
Hash/CryptSha256.c
|
||||||
Hash/CryptSm3.c
|
Hash/CryptSm3.c
|
||||||
Hash/CryptSha512Null.c
|
Hash/CryptSha512.c
|
||||||
Hmac/CryptHmacSha256.c
|
Hmac/CryptHmacSha256.c
|
||||||
Kdf/CryptHkdf.c
|
Kdf/CryptHkdf.c
|
||||||
Cipher/CryptAes.c
|
Cipher/CryptAes.c
|
||||||
|
@@ -10,7 +10,7 @@
|
|||||||
# RSA external functions, PKCS#7 SignedData sign functions, Diffie-Hellman functions, and
|
# RSA external functions, PKCS#7 SignedData sign functions, Diffie-Hellman functions, and
|
||||||
# authenticode signature verification functions are not supported in this instance.
|
# 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
|
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||||
#
|
#
|
||||||
##
|
##
|
||||||
@@ -37,7 +37,7 @@
|
|||||||
Hash/CryptSha1.c
|
Hash/CryptSha1.c
|
||||||
Hash/CryptSha256.c
|
Hash/CryptSha256.c
|
||||||
Hash/CryptSm3.c
|
Hash/CryptSm3.c
|
||||||
Hash/CryptSha512Null.c
|
Hash/CryptSha512.c
|
||||||
Hmac/CryptHmacSha256.c
|
Hmac/CryptHmacSha256.c
|
||||||
Kdf/CryptHkdfNull.c
|
Kdf/CryptHkdfNull.c
|
||||||
Cipher/CryptAes.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.
|
Verifies the RSA signature with RSASSA-PSS signature scheme defined in RFC 8017.
|
||||||
Implementation determines salt length automatically from the signature encoding.
|
Implementation determines salt length automatically from the signature encoding.
|
||||||
Mask generation function is the same as the message digest algorithm.
|
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] RsaContext Pointer to RSA context for signature verification.
|
||||||
@param[in] Message Pointer to octet message to be verified.
|
@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 Message is NULL, then return FALSE.
|
||||||
If MsgSize is zero or > INT_MAX, then return FALSE.
|
If MsgSize is zero or > INT_MAX, then return FALSE.
|
||||||
If DigestLen is NOT 32, 48 or 64, 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 SigSize is large enough but Signature is NULL, then return FALSE.
|
||||||
If this interface is not supported, 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.
|
Verifies the RSA signature with RSASSA-PSS signature scheme defined in RFC 8017.
|
||||||
Implementation determines salt length automatically from the signature encoding.
|
Implementation determines salt length automatically from the signature encoding.
|
||||||
Mask generation function is the same as the message digest algorithm.
|
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] RsaContext Pointer to RSA context for signature verification.
|
||||||
@param[in] Message Pointer to octet message to be verified.
|
@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
|
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.
|
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] RsaContext Pointer to RSA context for signature generation.
|
||||||
@param[in] Message Pointer to octet message to be signed.
|
@param[in] Message Pointer to octet message to be signed.
|
||||||
@param[in] MsgSize Size of the message in bytes.
|
@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 size_t;
|
||||||
typedef UINTN u_int;
|
typedef UINTN u_int;
|
||||||
|
typedef INTN ptrdiff_t;
|
||||||
typedef INTN ssize_t;
|
typedef INTN ssize_t;
|
||||||
typedef INT32 time_t;
|
typedef INT32 time_t;
|
||||||
typedef UINT8 __uint8_t;
|
typedef UINT8 __uint8_t;
|
||||||
@@ -109,6 +110,7 @@ typedef UINT8 sa_family_t;
|
|||||||
typedef UINT8 u_char;
|
typedef UINT8 u_char;
|
||||||
typedef UINT32 uid_t;
|
typedef UINT32 uid_t;
|
||||||
typedef UINT32 gid_t;
|
typedef UINT32 gid_t;
|
||||||
|
typedef CHAR16 wchar_t;
|
||||||
|
|
||||||
//
|
//
|
||||||
// File operations are not required for EFI building,
|
// File operations are not required for EFI building,
|
||||||
|
@@ -112,9 +112,6 @@ extern "C" {
|
|||||||
#ifndef OPENSSL_NO_ASAN
|
#ifndef OPENSSL_NO_ASAN
|
||||||
# define OPENSSL_NO_ASAN
|
# define OPENSSL_NO_ASAN
|
||||||
#endif
|
#endif
|
||||||
#ifndef OPENSSL_NO_ASM
|
|
||||||
# define OPENSSL_NO_ASM
|
|
||||||
#endif
|
|
||||||
#ifndef OPENSSL_NO_ASYNC
|
#ifndef OPENSSL_NO_ASYNC
|
||||||
# define OPENSSL_NO_ASYNC
|
# define OPENSSL_NO_ASYNC
|
||||||
#endif
|
#endif
|
||||||
|
@@ -16,7 +16,7 @@
|
|||||||
VERSION_STRING = 1.0
|
VERSION_STRING = 1.0
|
||||||
LIBRARY_CLASS = OpensslLib
|
LIBRARY_CLASS = OpensslLib
|
||||||
DEFINE OPENSSL_PATH = openssl
|
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
|
# 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
|
VERSION_STRING = 1.0
|
||||||
LIBRARY_CLASS = OpensslLib
|
LIBRARY_CLASS = OpensslLib
|
||||||
DEFINE OPENSSL_PATH = openssl
|
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
|
# 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
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user