Compare commits
275 Commits
edk2-stabl
...
edk2-stabl
Author | SHA1 | Date | |
---|---|---|---|
|
7b4a99be8a | ||
|
8dd4fc5be6 | ||
|
ef56f55d19 | ||
|
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)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -18,7 +18,7 @@ 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*$'),
|
||||||
@@ -178,7 +178,7 @@ if __name__ == '__main__':
|
|||||||
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)
|
||||||
|
|
||||||
@@ -191,4 +191,6 @@ if __name__ == '__main__':
|
|||||||
ADDRESSES += addresslist
|
ADDRESSES += addresslist
|
||||||
|
|
||||||
for address in list(OrderedDict.fromkeys(ADDRESSES)):
|
for address in list(OrderedDict.fromkeys(ADDRESSES)):
|
||||||
|
if '<' in address and '>' in address:
|
||||||
|
address = address.split('>', 1)[0] + '>'
|
||||||
print(' %s' % address)
|
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.
|
||||||
|
|
||||||
|
@@ -155,7 +155,7 @@ ConvertAsn1TimeToEfiTime (
|
|||||||
}
|
}
|
||||||
|
|
||||||
Str = (CONST CHAR8*)Asn1Time->data;
|
Str = (CONST CHAR8*)Asn1Time->data;
|
||||||
SetMem (EfiTime, 0, sizeof (EFI_TIME));
|
SetMem (EfiTime, sizeof (EFI_TIME), 0);
|
||||||
|
|
||||||
Index = 0;
|
Index = 0;
|
||||||
if (Asn1Time->type == V_ASN1_UTCTIME) { /* two digit year */
|
if (Asn1Time->type == V_ASN1_UTCTIME) { /* two digit year */
|
||||||
|
@@ -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
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user