shrinkwrap-tool 2026.2.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- shrinkwrap/__init__.py +1 -0
- shrinkwrap/__main__.py +4 -0
- shrinkwrap/commands/__init__.py +0 -0
- shrinkwrap/commands/build.py +91 -0
- shrinkwrap/commands/buildall.py +180 -0
- shrinkwrap/commands/clean.py +161 -0
- shrinkwrap/commands/inspect.py +235 -0
- shrinkwrap/commands/process.py +106 -0
- shrinkwrap/commands/run.py +311 -0
- shrinkwrap/config/FVP_Base_RevC-2xAEMvA-base.yaml +98 -0
- shrinkwrap/config/FVP_Base_RevC-2xAEMvA-rme.yaml +42 -0
- shrinkwrap/config/arch/v8.0.yaml +22 -0
- shrinkwrap/config/arch/v8.1.yaml +26 -0
- shrinkwrap/config/arch/v8.2.yaml +28 -0
- shrinkwrap/config/arch/v8.3.yaml +25 -0
- shrinkwrap/config/arch/v8.4.yaml +26 -0
- shrinkwrap/config/arch/v8.5.yaml +29 -0
- shrinkwrap/config/arch/v8.6.yaml +28 -0
- shrinkwrap/config/arch/v8.7.yaml +24 -0
- shrinkwrap/config/arch/v8.8.yaml +31 -0
- shrinkwrap/config/arch/v8.9.yaml +32 -0
- shrinkwrap/config/arch/v9.0.yaml +29 -0
- shrinkwrap/config/arch/v9.1.yaml +25 -0
- shrinkwrap/config/arch/v9.2.yaml +29 -0
- shrinkwrap/config/arch/v9.3.yaml +23 -0
- shrinkwrap/config/arch/v9.4.yaml +21 -0
- shrinkwrap/config/arch/v9.5.yaml +20 -0
- shrinkwrap/config/bootwrapper.yaml +76 -0
- shrinkwrap/config/buildroot-cca.yaml +113 -0
- shrinkwrap/config/buildroot.yaml +54 -0
- shrinkwrap/config/cca-3world.yaml +215 -0
- shrinkwrap/config/cca-4world.yaml +57 -0
- shrinkwrap/config/cca-edk2.yaml +58 -0
- shrinkwrap/config/debug/rmm.yaml +15 -0
- shrinkwrap/config/debug/tfa.yaml +18 -0
- shrinkwrap/config/debug/tftf.yaml +17 -0
- shrinkwrap/config/dt-base.yaml +115 -0
- shrinkwrap/config/edk2-base.yaml +59 -0
- shrinkwrap/config/ffa-hafnium-optee.yaml +45 -0
- shrinkwrap/config/ffa-optee.yaml +30 -0
- shrinkwrap/config/ffa-tftf.yaml +26 -0
- shrinkwrap/config/hafnium-base.yaml +51 -0
- shrinkwrap/config/kvm-unit-tests.yaml +32 -0
- shrinkwrap/config/kvmtool-base.yaml +33 -0
- shrinkwrap/config/linux-base.yaml +80 -0
- shrinkwrap/config/ns-edk2-base.yaml +83 -0
- shrinkwrap/config/ns-edk2-optee.yaml +41 -0
- shrinkwrap/config/ns-edk2.yaml +49 -0
- shrinkwrap/config/ns-preload.yaml +98 -0
- shrinkwrap/config/optee-base.yaml +37 -0
- shrinkwrap/config/rfa-base.yaml +49 -0
- shrinkwrap/config/rfa.yaml +47 -0
- shrinkwrap/config/rmm-base.yaml +24 -0
- shrinkwrap/config/rust.yaml +31 -0
- shrinkwrap/config/test/cca.yaml +47 -0
- shrinkwrap/config/tfa-base.yaml +45 -0
- shrinkwrap/config/tfa-rme.yaml +36 -0
- shrinkwrap/config/tftf-base.yaml +32 -0
- shrinkwrap/shrinkwrap_main.py +133 -0
- shrinkwrap/utils/__init__.py +0 -0
- shrinkwrap/utils/clivars.py +16 -0
- shrinkwrap/utils/config.py +1166 -0
- shrinkwrap/utils/graph.py +263 -0
- shrinkwrap/utils/label.py +153 -0
- shrinkwrap/utils/logger.py +160 -0
- shrinkwrap/utils/process.py +230 -0
- shrinkwrap/utils/runtime.py +192 -0
- shrinkwrap/utils/ssh_agent.py +98 -0
- shrinkwrap/utils/tty.py +46 -0
- shrinkwrap/utils/vars.py +14 -0
- shrinkwrap/utils/workspace.py +59 -0
- shrinkwrap_tool-2026.2.1.dist-info/METADATA +63 -0
- shrinkwrap_tool-2026.2.1.dist-info/RECORD +77 -0
- shrinkwrap_tool-2026.2.1.dist-info/WHEEL +5 -0
- shrinkwrap_tool-2026.2.1.dist-info/entry_points.txt +2 -0
- shrinkwrap_tool-2026.2.1.dist-info/licenses/license.rst +41 -0
- shrinkwrap_tool-2026.2.1.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Copyright (c) 2022, Arm Limited.
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
|
|
4
|
+
%YAML 1.2
|
|
5
|
+
---
|
|
6
|
+
description: >-
|
|
7
|
+
Implements all mandatory requirements and features as well as a sensible
|
|
8
|
+
selection of optional ones for the Armv8.5 architecture extension within the
|
|
9
|
+
Base_RevC-2xAEMvA FVP. Intended for use as an overlay to
|
|
10
|
+
FVP_Base_RevC-2xAEMvA-base.yaml.
|
|
11
|
+
|
|
12
|
+
layers:
|
|
13
|
+
- arch/v8.4.yaml
|
|
14
|
+
|
|
15
|
+
build:
|
|
16
|
+
tfa:
|
|
17
|
+
params:
|
|
18
|
+
ARM_ARCH_MAJOR: 8
|
|
19
|
+
ARM_ARCH_MINOR: 5
|
|
20
|
+
BRANCH_PROTECTION: 1
|
|
21
|
+
|
|
22
|
+
run:
|
|
23
|
+
params:
|
|
24
|
+
-C cluster0.has_arm_v8-5: 1
|
|
25
|
+
-C cluster1.has_arm_v8-5: 1
|
|
26
|
+
-C cluster0.has_branch_target_exception: 1 # Implement Branch target identification mechanism from ARMv8.5 (FEAT_BTI). 1:feature is implemented if ARMv8.5 is enabled.
|
|
27
|
+
-C cluster1.has_branch_target_exception: 1
|
|
28
|
+
-C cluster0.has_rndr: 1 # Implement random number instructions to read from RNDR and RNDRSS random number registers from ARMv8.5 (FEAT_RNG). 1:feature is implemented if ARMv8.5 is enabled.
|
|
29
|
+
-C cluster1.has_rndr: 1
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Copyright (c) 2022, Arm Limited.
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
|
|
4
|
+
%YAML 1.2
|
|
5
|
+
---
|
|
6
|
+
description: >-
|
|
7
|
+
Implements all mandatory requirements and features as well as a sensible
|
|
8
|
+
selection of optional ones for the Armv8.6 architecture extension within the
|
|
9
|
+
Base_RevC-2xAEMvA FVP. Intended for use as an overlay to
|
|
10
|
+
FVP_Base_RevC-2xAEMvA-base.yaml.
|
|
11
|
+
|
|
12
|
+
layers:
|
|
13
|
+
- arch/v8.5.yaml
|
|
14
|
+
|
|
15
|
+
build:
|
|
16
|
+
tfa:
|
|
17
|
+
params:
|
|
18
|
+
ARM_ARCH_MAJOR: 8
|
|
19
|
+
ARM_ARCH_MINOR: 6
|
|
20
|
+
|
|
21
|
+
run:
|
|
22
|
+
params:
|
|
23
|
+
-C cluster0.has_arm_v8-6: 1
|
|
24
|
+
-C cluster1.has_arm_v8-6: 1
|
|
25
|
+
-C cluster0.ecv_support_level: 2 # Implement Enhanced Counter Virtualization feature from ARMv8.6. 2:fully supported with CNTPOFF (FEAT_ECV).
|
|
26
|
+
-C cluster1.ecv_support_level: 2
|
|
27
|
+
-C cluster0.enhanced_pac2_level: 3 # Implements Enhanced PAC2 from ARMv8.6 (FEAT_PAuth2). This feature is mandatory for ARMv8.6 but can be cherrypicked to a ARMv8.3(or greater) implementation. 3:EnhancedPAC2 with FPACCombined.
|
|
28
|
+
-C cluster1.enhanced_pac2_level: 3
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Copyright (c) 2022, Arm Limited.
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
|
|
4
|
+
%YAML 1.2
|
|
5
|
+
---
|
|
6
|
+
description: >-
|
|
7
|
+
Implements all mandatory requirements and features as well as a sensible
|
|
8
|
+
selection of optional ones for the Armv8.7 architecture extension within the
|
|
9
|
+
Base_RevC-2xAEMvA FVP. Intended for use as an overlay to
|
|
10
|
+
FVP_Base_RevC-2xAEMvA-base.yaml.
|
|
11
|
+
|
|
12
|
+
layers:
|
|
13
|
+
- arch/v8.6.yaml
|
|
14
|
+
|
|
15
|
+
build:
|
|
16
|
+
tfa:
|
|
17
|
+
params:
|
|
18
|
+
ARM_ARCH_MAJOR: 8
|
|
19
|
+
ARM_ARCH_MINOR: 7
|
|
20
|
+
|
|
21
|
+
run:
|
|
22
|
+
params:
|
|
23
|
+
-C cluster0.has_arm_v8-7: 1
|
|
24
|
+
-C cluster1.has_arm_v8-7: 1
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Copyright (c) 2022, Arm Limited.
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
|
|
4
|
+
%YAML 1.2
|
|
5
|
+
---
|
|
6
|
+
description: >-
|
|
7
|
+
Implements all mandatory requirements and features as well as a sensible
|
|
8
|
+
selection of optional ones for the Armv8.8 architecture extension within the
|
|
9
|
+
Base_RevC-2xAEMvA FVP. Intended for use as an overlay to
|
|
10
|
+
FVP_Base_RevC-2xAEMvA-base.yaml.
|
|
11
|
+
|
|
12
|
+
layers:
|
|
13
|
+
- arch/v8.7.yaml
|
|
14
|
+
|
|
15
|
+
build:
|
|
16
|
+
tfa:
|
|
17
|
+
params:
|
|
18
|
+
ARM_ARCH_MAJOR: 8
|
|
19
|
+
ARM_ARCH_MINOR: 8
|
|
20
|
+
|
|
21
|
+
run:
|
|
22
|
+
params:
|
|
23
|
+
-C cluster0.has_arm_v8-8: 1
|
|
24
|
+
-C cluster1.has_arm_v8-8: 1
|
|
25
|
+
-C cluster0.has_const_pac: 1 # Feature for singular selection of PAC field (FEAT_CONSTPACFIELD). 1:feature is implemented if Armv8.8 is enabled.
|
|
26
|
+
-C cluster1.has_const_pac: 1
|
|
27
|
+
-C cluster0.has_hpmn0: 1 # Allow hypervisor to set MDCR_EL2.HPMN to 0 (FEAT_HPMN0). 1:feature is implemented if Armv8.8 is enabled.
|
|
28
|
+
-C cluster1.has_hpmn0: 1
|
|
29
|
+
-C cluster0.pmb_idr_external_abort: 1 # Describes how the PE manages External aborts on writes made by the Statistical Profiling Extension to the Profiling Buffer. (From Armv8.8 and Armv9.3, the value 0 is not permitted) 1: External abort is ignored.
|
|
30
|
+
-C cluster1.pmb_idr_external_abort: 1
|
|
31
|
+
-C gic_distributor.has_nmi: 1
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Copyright (c) 2023, Arm Limited.
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
|
|
4
|
+
%YAML 1.2
|
|
5
|
+
---
|
|
6
|
+
description: >-
|
|
7
|
+
Implements all mandatory requirements and features as well as a sensible
|
|
8
|
+
selection of optional ones for the Armv8.9 architecture extension within the
|
|
9
|
+
Base_RevC-2xAEMvA FVP. Intended for use as an overlay to
|
|
10
|
+
FVP_Base_RevC-2xAEMvA-base.yaml.
|
|
11
|
+
|
|
12
|
+
layers:
|
|
13
|
+
- arch/v8.8.yaml
|
|
14
|
+
|
|
15
|
+
build:
|
|
16
|
+
tfa:
|
|
17
|
+
params:
|
|
18
|
+
ARM_ARCH_MAJOR: 8
|
|
19
|
+
ARM_ARCH_MINOR: 9
|
|
20
|
+
|
|
21
|
+
run:
|
|
22
|
+
params:
|
|
23
|
+
-C cluster0.has_arm_v8-9: 1
|
|
24
|
+
-C cluster1.has_arm_v8-9: 1
|
|
25
|
+
-C cluster0.has_permission_indirection_s1: 1
|
|
26
|
+
-C cluster1.has_permission_indirection_s1: 1
|
|
27
|
+
-C cluster0.has_permission_indirection_s2: 1
|
|
28
|
+
-C cluster1.has_permission_indirection_s2: 1
|
|
29
|
+
-C cluster0.has_permission_overlay_s1: 1
|
|
30
|
+
-C cluster1.has_permission_overlay_s1: 1
|
|
31
|
+
-C cluster0.has_permission_overlay_s2: 1
|
|
32
|
+
-C cluster1.has_permission_overlay_s2: 1
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Copyright (c) 2022, Arm Limited.
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
|
|
4
|
+
%YAML 1.2
|
|
5
|
+
---
|
|
6
|
+
description: >-
|
|
7
|
+
Implements all mandatory requirements and features as well as a sensible
|
|
8
|
+
selection of optional ones for the Armv9.0 architecture extension within the
|
|
9
|
+
Base_RevC-2xAEMvA FVP. Intended for use as an overlay to
|
|
10
|
+
FVP_Base_RevC-2xAEMvA-base.yaml.
|
|
11
|
+
|
|
12
|
+
layers:
|
|
13
|
+
- arch/v8.5.yaml
|
|
14
|
+
|
|
15
|
+
build:
|
|
16
|
+
tfa:
|
|
17
|
+
params:
|
|
18
|
+
ARM_ARCH_MAJOR: 9
|
|
19
|
+
ARM_ARCH_MINOR: 0
|
|
20
|
+
CTX_INCLUDE_AARCH32_REGS: 0
|
|
21
|
+
|
|
22
|
+
run:
|
|
23
|
+
params:
|
|
24
|
+
-C cluster0.has_arm_v9-0: 1
|
|
25
|
+
-C cluster1.has_arm_v9-0: 1
|
|
26
|
+
-C cluster0.max_32bit_el: 0 # Maximum exception level supporting AArch32 modes. -1: No Support for A32 at any EL, x:[0:3] - All the levels below supplied ELx supports A32
|
|
27
|
+
-C cluster1.max_32bit_el: 0
|
|
28
|
+
-C cluster0.sve.has_sve2: 1 # Whether SVE2 is implemented (FEAT_SVE2).
|
|
29
|
+
-C cluster1.sve.has_sve2: 1
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Copyright (c) 2022, Arm Limited.
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
|
|
4
|
+
%YAML 1.2
|
|
5
|
+
---
|
|
6
|
+
description: >-
|
|
7
|
+
Implements all mandatory requirements and features as well as a sensible
|
|
8
|
+
selection of optional ones for the Armv9.1 architecture extension within the
|
|
9
|
+
Base_RevC-2xAEMvA FVP. Intended for use as an overlay to
|
|
10
|
+
FVP_Base_RevC-2xAEMvA-base.yaml.
|
|
11
|
+
|
|
12
|
+
layers:
|
|
13
|
+
- arch/v8.6.yaml
|
|
14
|
+
- arch/v9.0.yaml
|
|
15
|
+
|
|
16
|
+
build:
|
|
17
|
+
tfa:
|
|
18
|
+
params:
|
|
19
|
+
ARM_ARCH_MAJOR: 9
|
|
20
|
+
ARM_ARCH_MINOR: 1
|
|
21
|
+
|
|
22
|
+
run:
|
|
23
|
+
params:
|
|
24
|
+
-C cluster0.has_arm_v9-1: 1
|
|
25
|
+
-C cluster1.has_arm_v9-1: 1
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Copyright (c) 2022, Arm Limited.
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
|
|
4
|
+
%YAML 1.2
|
|
5
|
+
---
|
|
6
|
+
description: >-
|
|
7
|
+
Implements all mandatory requirements and features as well as a sensible
|
|
8
|
+
selection of optional ones for the Armv9.2 architecture extension within the
|
|
9
|
+
Base_RevC-2xAEMvA FVP. Intended for use as an overlay to
|
|
10
|
+
FVP_Base_RevC-2xAEMvA-base.yaml.
|
|
11
|
+
|
|
12
|
+
layers:
|
|
13
|
+
- arch/v8.7.yaml
|
|
14
|
+
- arch/v9.1.yaml
|
|
15
|
+
|
|
16
|
+
build:
|
|
17
|
+
tfa:
|
|
18
|
+
params:
|
|
19
|
+
ARM_ARCH_MAJOR: 9
|
|
20
|
+
ARM_ARCH_MINOR: 2
|
|
21
|
+
|
|
22
|
+
run:
|
|
23
|
+
params:
|
|
24
|
+
-C cluster0.has_arm_v9-2: 1
|
|
25
|
+
-C cluster1.has_arm_v9-2: 1
|
|
26
|
+
-C cluster0.has_brbe: 1 # If true, implements branch record buffer extension (FEAT_BRBE).
|
|
27
|
+
-C cluster1.has_brbe: 1
|
|
28
|
+
-C cluster0.sve.has_sme: 1 # Whether SME is implemented
|
|
29
|
+
-C cluster1.sve.has_sme: 1
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Copyright (c) 2022, Arm Limited.
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
|
|
4
|
+
%YAML 1.2
|
|
5
|
+
---
|
|
6
|
+
description: >-
|
|
7
|
+
Implements all mandatory requirements and features as well as a sensible
|
|
8
|
+
selection of optional ones for the Armv9.3 architecture extension within the
|
|
9
|
+
Base_RevC-2xAEMvA FVP. Intended for use as an overlay to
|
|
10
|
+
FVP_Base_RevC-2xAEMvA-base.yaml.
|
|
11
|
+
|
|
12
|
+
layers:
|
|
13
|
+
- arch/v8.8.yaml
|
|
14
|
+
- arch/v9.2.yaml
|
|
15
|
+
|
|
16
|
+
run:
|
|
17
|
+
params:
|
|
18
|
+
-C cluster0.has_arm_v9-3: 1
|
|
19
|
+
-C cluster1.has_arm_v9-3: 1
|
|
20
|
+
-C cluster0.has_brbe_v1p1: 1 # If true, implements FEAT_BRBEv1p1.
|
|
21
|
+
-C cluster1.has_brbe_v1p1: 1
|
|
22
|
+
-C cluster0.sve.has_sme2: 1 # Whether SME2 is implemented (FEAT_SME2)
|
|
23
|
+
-C cluster1.sve.has_sme2: 1
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Copyright (c) 2023, Arm Limited.
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
|
|
4
|
+
%YAML 1.2
|
|
5
|
+
---
|
|
6
|
+
description: >-
|
|
7
|
+
Implements all mandatory requirements and features as well as a sensible
|
|
8
|
+
selection of optional ones for the Armv9.4 architecture extension within the
|
|
9
|
+
Base_RevC-2xAEMvA FVP. Intended for use as an overlay to
|
|
10
|
+
FVP_Base_RevC-2xAEMvA-base.yaml.
|
|
11
|
+
|
|
12
|
+
layers:
|
|
13
|
+
- arch/v8.9.yaml
|
|
14
|
+
- arch/v9.3.yaml
|
|
15
|
+
|
|
16
|
+
run:
|
|
17
|
+
params:
|
|
18
|
+
-C cluster0.has_arm_v9-4: 1
|
|
19
|
+
-C cluster1.has_arm_v9-4: 1
|
|
20
|
+
-C cluster0.has_gcs: 1
|
|
21
|
+
-C cluster1.has_gcs: 1
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Copyright (c) 2023, Arm Limited.
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
|
|
4
|
+
%YAML 1.2
|
|
5
|
+
---
|
|
6
|
+
description: >-
|
|
7
|
+
Implements all mandatory requirements and features as well as a sensible
|
|
8
|
+
selection of optional ones for the Armv9.5 architecture extension within the
|
|
9
|
+
Base_RevC-2xAEMvA FVP. Intended for use as an overlay to
|
|
10
|
+
FVP_Base_RevC-2xAEMvA-base.yaml.
|
|
11
|
+
|
|
12
|
+
layers:
|
|
13
|
+
- arch/v9.4.yaml
|
|
14
|
+
|
|
15
|
+
run:
|
|
16
|
+
params:
|
|
17
|
+
-C cluster0.has_arm_v9-5: 1
|
|
18
|
+
-C cluster1.has_arm_v9-5: 1
|
|
19
|
+
-C cluster0.has_lsfe: 1
|
|
20
|
+
-C cluster1.has_lsfe: 1
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# Copyright (c) 2022, Arm Limited.
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
|
|
4
|
+
%YAML 1.2
|
|
5
|
+
---
|
|
6
|
+
description: >-
|
|
7
|
+
Best choice for: I have a linux-system.axf boot-wrapper and want to run it.
|
|
8
|
+
|
|
9
|
+
Build to wrap a provided kernel with boot-wrapper EL3 FW into
|
|
10
|
+
linux-system.axf. Provide the kernel image via the KERNEL btvar, and
|
|
11
|
+
optionally override the kernel command line by providing the CMDLINE btvar.
|
|
12
|
+
|
|
13
|
+
Then run the boot-wrapper (or pass a separately created one as the BOOTWRAPPER
|
|
14
|
+
rtvar) in the FVP. A ROOTFS can be optionally provided. If present it is
|
|
15
|
+
loaded into the virtio block device (/dev/vda).
|
|
16
|
+
|
|
17
|
+
concrete: true
|
|
18
|
+
|
|
19
|
+
layers:
|
|
20
|
+
- FVP_Base_RevC-2xAEMvA-base.yaml
|
|
21
|
+
- dt-base.yaml
|
|
22
|
+
|
|
23
|
+
build:
|
|
24
|
+
bootwrapper:
|
|
25
|
+
repo:
|
|
26
|
+
remote: https://git.kernel.org/pub/scm/linux/kernel/git/mark/boot-wrapper-aarch64.git
|
|
27
|
+
revision: master
|
|
28
|
+
|
|
29
|
+
toolchain: aarch64-linux-gnu-
|
|
30
|
+
|
|
31
|
+
prebuild:
|
|
32
|
+
- autoreconf -i
|
|
33
|
+
- ./configure --host=aarch64-linux-gnu --enable-gicv3 --with-dtb="${btvar:DTB}" --with-kernel-image="${btvar:KERNEL}" --with-cmdline="${btvar:CMDLINE}"
|
|
34
|
+
|
|
35
|
+
build:
|
|
36
|
+
- make -j${param:jobs}
|
|
37
|
+
|
|
38
|
+
artifacts:
|
|
39
|
+
BOOTWRAPPER: ${param:sourcedir}/linux-system.axf
|
|
40
|
+
|
|
41
|
+
buildex:
|
|
42
|
+
btvars:
|
|
43
|
+
DTB:
|
|
44
|
+
type: path
|
|
45
|
+
value: ${artifact:DTB}
|
|
46
|
+
|
|
47
|
+
KERNEL:
|
|
48
|
+
type: path
|
|
49
|
+
value: null
|
|
50
|
+
|
|
51
|
+
CMDLINE:
|
|
52
|
+
type: string
|
|
53
|
+
value: console=ttyAMA0 earlycon=pl011,0x1c090000 root=/dev/vda ip=dhcp
|
|
54
|
+
|
|
55
|
+
run:
|
|
56
|
+
rtvars:
|
|
57
|
+
BOOTWRAPPER:
|
|
58
|
+
type: path
|
|
59
|
+
value: ${artifact:BOOTWRAPPER}
|
|
60
|
+
|
|
61
|
+
ROOTFS:
|
|
62
|
+
type: path
|
|
63
|
+
value: ''
|
|
64
|
+
|
|
65
|
+
params:
|
|
66
|
+
-C pctl.startup: '*.*.*.*'
|
|
67
|
+
-C bp.secure_memory: 0
|
|
68
|
+
-a cluster*.cpu*: ${rtvar:BOOTWRAPPER}
|
|
69
|
+
-C bp.virtioblockdevice.image_path: ${rtvar:ROOTFS}
|
|
70
|
+
-C bp.pl011_uart0.shutdown_tag: '"System halted"'
|
|
71
|
+
|
|
72
|
+
terminals:
|
|
73
|
+
bp.terminal_0:
|
|
74
|
+
friendly: ''
|
|
75
|
+
type: stdinout
|
|
76
|
+
no_color: true
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
# Copyright (c) 2024, Linaro Limited.
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
|
|
4
|
+
%YAML 1.2
|
|
5
|
+
---
|
|
6
|
+
description: >-
|
|
7
|
+
Integrate tools for CCA into the buildroot image:
|
|
8
|
+
- cca-workload-attestation to display an attestation token or send it to a
|
|
9
|
+
verifier.
|
|
10
|
+
https://git.codelinaro.org/linaro/dcap/cca-demos/cca-workload-attestation-poc
|
|
11
|
+
- keybroker-demo to demonstrate remote attestation for downloading secrets.
|
|
12
|
+
https://github.com/veraison/keybroker-demo/
|
|
13
|
+
- cca-realm-measurements to generate a DTB and run a VMM.
|
|
14
|
+
https://github.com/veraison/cca-realm-measurements
|
|
15
|
+
- kvmtool and QEMU to run Realm VMs.
|
|
16
|
+
- Automatically mount the shared 9p folder to /mnt, mount configfs for
|
|
17
|
+
attestation, and create a tap interface.
|
|
18
|
+
|
|
19
|
+
Use it with:
|
|
20
|
+
|
|
21
|
+
.. code-block:: shell
|
|
22
|
+
$ shrinkwrap build cca-3world.yaml --overlay buildroot-cca.yaml
|
|
23
|
+
$ shrinkwrap run cca-3world.yaml
|
|
24
|
+
|
|
25
|
+
In the host, launch a VM with:
|
|
26
|
+
|
|
27
|
+
.. code-block:: shell
|
|
28
|
+
$ gen-run-vmm.sh [--kvmtool]
|
|
29
|
+
|
|
30
|
+
In the guest, you can obtain an attestation token, and send it to a verifier:
|
|
31
|
+
|
|
32
|
+
.. code-block:: shell
|
|
33
|
+
$ cca-workload-attestation report
|
|
34
|
+
{
|
|
35
|
+
"cca-platform-token": {
|
|
36
|
+
...
|
|
37
|
+
$ cca-workload-attestation passport
|
|
38
|
+
{
|
|
39
|
+
"ear.verifier-id": {
|
|
40
|
+
"build": "N/A",
|
|
41
|
+
"developer": "Veraison Project"
|
|
42
|
+
},
|
|
43
|
+
...
|
|
44
|
+
|
|
45
|
+
You can also obtain a key from a keybroker running locally that performs
|
|
46
|
+
attestation. Run the keybroker-server on the build machine, using the
|
|
47
|
+
external IP of the build machine to be accessible from the keybroker-app (in
|
|
48
|
+
this case 192.168.0.10 on a local network):
|
|
49
|
+
|
|
50
|
+
.. code-block:: shell
|
|
51
|
+
$ keybroker-server -e http://192.168.0.10 -v -a 0.0.0.0
|
|
52
|
+
|
|
53
|
+
In the guest, connect to the server
|
|
54
|
+
|
|
55
|
+
.. code-block:: shell
|
|
56
|
+
$ keybroker-app -v -e http://192.168.0.10:8088 skywalker
|
|
57
|
+
|
|
58
|
+
layers:
|
|
59
|
+
- buildroot.yaml
|
|
60
|
+
|
|
61
|
+
build:
|
|
62
|
+
linux:
|
|
63
|
+
prebuild:
|
|
64
|
+
# We extend buildroot with an initscript that creates a macvtap interface,
|
|
65
|
+
# so enable it in the kernel
|
|
66
|
+
- ./scripts/config --file ${param:builddir}/.config --enable CONFIG_MACVLAN --enable CONFIG_MACVTAP
|
|
67
|
+
|
|
68
|
+
buildroot-external-cca:
|
|
69
|
+
repo:
|
|
70
|
+
remote: https://git.codelinaro.org/linaro/dcap/buildroot-external-cca.git
|
|
71
|
+
revision: cca/v8
|
|
72
|
+
|
|
73
|
+
artifacts:
|
|
74
|
+
BUILDROOT_EXTERNAL_CCA:
|
|
75
|
+
path: ${param:sourcedir}
|
|
76
|
+
export: false
|
|
77
|
+
|
|
78
|
+
buildroot:
|
|
79
|
+
repo:
|
|
80
|
+
remote: https://github.com/buildroot/buildroot.git
|
|
81
|
+
revision: 2024.08.2
|
|
82
|
+
|
|
83
|
+
prebuild:
|
|
84
|
+
- make BR2_JLEVEL=${param:jobs} O=${param:builddir} BR2_EXTERNAL=${artifact:BUILDROOT_EXTERNAL_CCA} cca_defconfig
|
|
85
|
+
|
|
86
|
+
# gen-vmm-run.sh configuration for the shrinkwrap package/ layout
|
|
87
|
+
- cat <<EOF> ${param:builddir}/gen-run-vmm.cfg
|
|
88
|
+
- KERNEL=/mnt/Image
|
|
89
|
+
- INITRD=/mnt/rootfs.cpio
|
|
90
|
+
- EDK2_DIR=/mnt/
|
|
91
|
+
- RUN_DISK=/mnt/guest-disk.img
|
|
92
|
+
- EOF
|
|
93
|
+
|
|
94
|
+
- sed -i '\@BR2_PACKAGE_CCA_REALM_MEASUREMENTS_CFG@s@=.*@="\${param:builddir}/gen-run-vmm.cfg"@' ${param:builddir}/.config
|
|
95
|
+
|
|
96
|
+
artifacts:
|
|
97
|
+
GUEST_INITRD: ${param:builddir}/images/rootfs.cpio
|
|
98
|
+
|
|
99
|
+
buildex:
|
|
100
|
+
btvars:
|
|
101
|
+
GUEST_ROOTFS:
|
|
102
|
+
type: path
|
|
103
|
+
value: ${artifact:BUILDROOT}
|
|
104
|
+
|
|
105
|
+
run:
|
|
106
|
+
rtvars:
|
|
107
|
+
ROOTFS:
|
|
108
|
+
type: path
|
|
109
|
+
value: ${artifact:BUILDROOT}
|
|
110
|
+
|
|
111
|
+
SHARE:
|
|
112
|
+
type: path
|
|
113
|
+
value: ${param:packagedir}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Copyright (c) 2022, Arm Limited.
|
|
2
|
+
# SPDX-License-Identifier: MIT
|
|
3
|
+
|
|
4
|
+
%YAML 1.2
|
|
5
|
+
---
|
|
6
|
+
description: >-
|
|
7
|
+
Generates a very simple rootfs as an ext2/4 image. Higher layers can modify
|
|
8
|
+
the buildroot config by adding commands to prebuild.
|
|
9
|
+
|
|
10
|
+
concrete: true
|
|
11
|
+
|
|
12
|
+
build:
|
|
13
|
+
buildroot:
|
|
14
|
+
repo:
|
|
15
|
+
remote: https://github.com/buildroot/buildroot.git
|
|
16
|
+
revision: 2025.08.1
|
|
17
|
+
|
|
18
|
+
toolchain: aarch64-linux-gnu-
|
|
19
|
+
|
|
20
|
+
stderrfilt: true
|
|
21
|
+
|
|
22
|
+
prebuild:
|
|
23
|
+
# Building with the Docker runtime on macOS will fail while configuring
|
|
24
|
+
# host-tar unless this variable is set.
|
|
25
|
+
- export FORCE_UNSAFE_CONFIGURE=1
|
|
26
|
+
|
|
27
|
+
# Start from default config, but allow higher level layers to modify it.
|
|
28
|
+
- make BR2_JLEVEL=${param:jobs} O=${param:builddir} BR2_DEFCONFIG=${param:configdir}/buildroot.config defconfig
|
|
29
|
+
# Uncomment the below line if you want to regenerate the defconfig and
|
|
30
|
+
# save it to ${param:configdir}/buildroot.config
|
|
31
|
+
# - make BR2_JLEVEL=${param:jobs} O=${param:builddir} BR2_DEFCONFIG=${param:configdir}/buildroot.config savedefconfig
|
|
32
|
+
|
|
33
|
+
build:
|
|
34
|
+
# Fakeroot takes a while to start when the file descriptor limit is high.
|
|
35
|
+
# Reduce it to significantly accelerate the build.
|
|
36
|
+
# - https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=920913
|
|
37
|
+
# - https://github.com/moby/moby/issues/45436
|
|
38
|
+
- saved_limit=$$(ulimit -S -n)
|
|
39
|
+
- new_limit=4096
|
|
40
|
+
- if [ "$$new_limit" -lt "$$saved_limit" ]; then
|
|
41
|
+
- ulimit -S -n "$$new_limit"
|
|
42
|
+
- fi
|
|
43
|
+
|
|
44
|
+
# Build.
|
|
45
|
+
- make BR2_JLEVEL=${param:jobs} O=${param:builddir}
|
|
46
|
+
|
|
47
|
+
# Restore the previous file limit
|
|
48
|
+
- ulimit -S -n "$$saved_limit"
|
|
49
|
+
|
|
50
|
+
artifacts:
|
|
51
|
+
BUILDROOT: ${param:builddir}/images/rootfs.ext2
|
|
52
|
+
# Some scripts including test.py in shrinkwrap might depend on the
|
|
53
|
+
# rootfs.ext4 which is just symlink to rootfs.ext2, copy that too
|
|
54
|
+
BUILDROOT_EXT4: ${param:builddir}/images/rootfs.ext4
|