Skip to content

Commit a2d8bae

Browse files
Merge pull request #20 from edhay/main
SystemReady SR v1.0 ACS
2 parents cab2595 + dfbdf5d commit a2d8bae

24 files changed

+845
-68
lines changed

ES/README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ This section contains the build scripts and the live-images for the SystemReady
3434
- The prebuilt images are archived after compression to the .xz format. On Linux, use the xz utility to uncompress the image `xz -d es_acs_live_image.img.xz`. On Windows, use the 7zip or a similar utility.
3535
- If you choose to use the prebuilt image, skip the build steps, and navigate to the "Verification" section below.
3636

37+
Note: The latest pre-built image contains Linux kernel version 5.13. To build a image with a different Linux kernel version, update the `LINUX_KERNEL_VERSION` in the configuration file `<path to arm-systemready>/common/config/common_config.cfg` before the build (after step 3 below). To see the list of kernel versions for which Linux BSA patches are available, see the [folder](https://gitlab.arm.com/linux-arm/linux-acs/-/tree/master/kernel/src)
38+
3739
### Prerequisites
3840
Before starting the ACS build, ensure that the following requirements are met:
3941
- Ubuntu 18.04 or 20.04 LTS with at least 32GB of free disk space.
@@ -153,5 +155,5 @@ System Ready ACS is distributed under Apache v2.0 License.
153155

154156
--------------
155157

156-
*Copyright (c) 2021, Arm Limited and Contributors. All rights reserved.*
158+
*Copyright (c) 2021-2022, Arm Limited and Contributors. All rights reserved.*
157159

ES/patches/es_bsa.patch

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,18 @@
1-
--- ShellPkg/ShellPkg.dsc 2021-01-13 14:46:03.875244238 +0530
2-
+++ ShellPkg/ShellPkg_bsa.dsc 2021-01-13 14:44:19.407220595 +0530
3-
@@ -59,6 +59,8 @@
1+
From d06c0865e5c5fcf4d28d9e2f220e7e985dabb3ad Mon Sep 17 00:00:00 2001
2+
From: Amrathesh <[email protected]>
3+
Date: Wed, 22 Dec 2021 17:06:51 +0530
4+
Subject: [PATCH] EDK2 ES BSA Patch
5+
6+
Signed-off-by: Amrathesh <[email protected]>
7+
---
8+
ShellPkg/ShellPkg.dsc | 3 +++
9+
1 file changed, 3 insertions(+)
10+
11+
diff --git a/ShellPkg/ShellPkg.dsc b/ShellPkg/ShellPkg.dsc
12+
index a8b6de3..85dc2c0 100644
13+
--- a/ShellPkg/ShellPkg.dsc
14+
+++ b/ShellPkg/ShellPkg.dsc
15+
@@ -60,6 +60,8 @@
416
DxeServicesTableLib|MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf
517
DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
618
ReportStatusCodeLib|MdePkg/Library/BaseReportStatusCodeLibNull/BaseReportStatusCodeLibNull.inf
@@ -9,12 +21,14 @@
921

1022
[LibraryClasses.ARM,LibraryClasses.AARCH64]
1123
#
12-
@@ -97,7 +99,7 @@
24+
@@ -98,6 +100,7 @@
1325
ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf
1426
ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf
1527
ShellPkg/Library/UefiShellNetwork2CommandsLib/UefiShellNetwork2CommandsLib.inf
16-
-
1728
+ ShellPkg/Application/bsa-acs/uefi_app/BsaAcs.inf
29+
1830
ShellPkg/Application/Shell/Shell.inf {
1931
<PcdsFixedAtBuild>
20-
gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE
32+
--
33+
2.17.1
34+

IR/README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ This section of the repository contains the build scripts and the live-images fo
3434
- The prebuilt images are archived after compression to the .xz format. On Linux, use the xz utility to uncompress the image `xz -d es_acs_live_image.img.xz`. On Windows, use the 7zip or a similar utility.
3535
- If you choose to use the prebuilt image, skip the build steps, and navigate to the "Verification" section below.
3636

37+
Note: The latest pre-built image contains Linux kernel version 5.13. To build a image with a different Linux kernel version, update the `LINUX_KERNEL_VERSION` in the configuration file `<path to arm-systemready>/common/config/common_config.cfg` before the build (after step 3 below). To see the list of kernel versions for which Linux BSA patches are available, see the [folder](https://gitlab.arm.com/linux-arm/linux-acs/-/tree/master/kernel/src)
38+
3739
### Prerequisites
3840
Before starting the ACS build, ensure that the following requirements are met:
3941
- Ubuntu 18.04 or 20.04 LTS with at least 32GB of free disk space.
@@ -138,5 +140,5 @@ System Ready ACS is distributed under Apache v2.0 License.
138140

139141
--------------
140142

141-
*Copyright (c) 2021, Arm Limited and Contributors. All rights reserved.*
143+
*Copyright (c) 2021-2022, Arm Limited and Contributors. All rights reserved.*
142144

IR/patches/ir_bsa.patch

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,35 @@
1-
--- ShellPkg/ShellPkg.dsc 2021-01-13 14:46:03.875244238 +0530
2-
+++ ShellPkg/ShellPkg_bsa.dsc 2021-01-13 14:44:19.407220595 +0530
3-
@@ -59,6 +59,9 @@
1+
From 4099a09e9dcc759c3703d759c6b7840a33386b1a Mon Sep 17 00:00:00 2001
2+
From: Amrathesh <[email protected]>
3+
Date: Wed, 22 Dec 2021 17:01:59 +0530
4+
Subject: [PATCH] EDK2 IR BSA Patch
5+
6+
Signed-off-by: Amrathesh <[email protected]>
7+
---
8+
ShellPkg/ShellPkg.dsc | 4 ++++
9+
1 file changed, 4 insertions(+)
10+
11+
diff --git a/ShellPkg/ShellPkg.dsc b/ShellPkg/ShellPkg.dsc
12+
index a8b6de3..e717591 100644
13+
--- a/ShellPkg/ShellPkg.dsc
14+
+++ b/ShellPkg/ShellPkg.dsc
15+
@@ -60,6 +60,9 @@
416
DxeServicesTableLib|MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf
517
DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
618
ReportStatusCodeLib|MdePkg/Library/BaseReportStatusCodeLibNull/BaseReportStatusCodeLibNull.inf
719
+ BsaValLib|ShellPkg/Application/bsa-acs/val/BsaValLib.inf
8-
+ BsaPalLib|ShellPkg/Application/bsa-acs/platform/pal_uefi_dt/BsaPalLib.inf
20+
+ BsaPalLib|ShellPkg/Application/bsa-acs/platform/pal_uefi_dt/BsaPalLib.inf
921
+ FdtLib|EmbeddedPkg/Library/FdtLib/FdtLib.inf
1022

1123
[LibraryClasses.ARM,LibraryClasses.AARCH64]
1224
#
13-
@@ -97,7 +99,7 @@
25+
@@ -98,6 +101,7 @@
1426
ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf
1527
ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf
1628
ShellPkg/Library/UefiShellNetwork2CommandsLib/UefiShellNetwork2CommandsLib.inf
17-
-
1829
+ ShellPkg/Application/bsa-acs/uefi_app/BsaAcs.inf
30+
1931
ShellPkg/Application/Shell/Shell.inf {
2032
<PcdsFixedAtBuild>
21-
gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE
33+
--
34+
2.17.1
35+

README.md

Lines changed: 30 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
## Introduction to Arm SystemReady
44
Systems that are designed to just work for the end user with the ability to install and run generic, off-the-shelf operating systems out of the box, must follow a set of minimum hardware and firmware requirements.
55

6-
For the Arm ecosystem, this requirement first surfaced in the server segment. The Arm ServerReady compliance certification program provides this just works solution for servers, allowing you to deploy Arm servers with confidence. The program is based on industry standards and is accompanied by a compliance test suite, and a process for certification.
6+
For the Arm ecosystem, this requirement first surfaced in the server segment. The Arm ServerReady compliance certification program provides this 'just works' solution for servers, allowing you to deploy Arm servers with confidence. The program is based on industry standards and is accompanied by a compliance test suite, and a process for certification.
77

88
The Arm SystemReady program is a natural extension of the Arm ServerReady program. Different market segments may target different sets of operating systems and hypervisors with different hardware and firmware requirements. We use the term band to identify these differences, with a shorthand notation for each band. The bands are:
99
* [SystemReady SR](https://developer.arm.com/architectures/system-architectures/arm-systemready/sr)
@@ -13,15 +13,16 @@ The Arm SystemReady program is a natural extension of the Arm ServerReady progra
1313

1414
For more information, visit: [Arm SystemReady](https://developer.arm.com/architectures/system-architectures/arm-systemready)
1515

16-
This repository contains the infrastructure to build the Architecture Compliance Suite and the bootable prebuilt images to be used for the certifications of various bands of SystemReady.
17-
Note: Currently SystemReady ES and IR bands are supported in this repository
16+
This repository contains the infrastructure to build the Architecture Compliance Suite (ACS) and the bootable prebuilt images to be used for the certifications of various bands of SystemReady.<br />
17+
Note: Currently SystemReady ES, IR and SR bands are supported in this repository
1818

19-
For SystemReady SR, refer to the [Arm Enterprise ACS repository](https://github.com/ARM-software/arm-enterprise-acs)
19+
For the legacy SystemReady SR ACS, refer to the [Arm Enterprise ACS repository](https://github.com/ARM-software/arm-enterprise-acs)
2020

21-
## System Ready bands:
22-
Navigate to the ES or IR band for further details on specific scripts and prebuilt images, through the directories below:
21+
## SystemReady bands:
22+
Navigate to the ES, IR, or SR band for further details on specific scripts and prebuilt images through the directories below:
2323
* [ES](./ES)
2424
* [IR](./IR)
25+
* [SR](./SR)
2526

2627
## SystemReady Security Interface Extension:
2728
The SystemReady Security Interface Extension certifies that firmware meets the requirements specified by the Arm [Base Boot Security Requirements specification](https://developer.arm.com/documentation/den0107/latest) (BBSR). The Security Interface Extension is optionally applicable to SystemReady SR, ES and IR bands, but not the LS band.
@@ -30,11 +31,33 @@ Further details on Security Interface Extension, including pre-built images, are
3031

3132
## Limitations
3233

34+
### BSA
3335
Validating the compliance of certain PCIe rules defined in the BSA specification require the PCIe end-point generate specific stimulus during the runtime of the test. Examples of such stimulus are P2P, PASID, ATC, etc. The tests that requires these stimuli are grouped together in the exerciser module. The exerciser layer is an abstraction layer that enables the integration of hardware capable of generating such stimuli to the test framework.
3436
The details of the hardware or Verification IP which enable these exerciser tests platform specific and are beyond the scope of this document.
3537

3638
The Live image does not allow customizations, hence, the exerciser module is not included in the Live image. To enable exerciser tests for greater coverage of PCIe rules, please refer to [BSA](https://github.com/ARM-software/bsa-acs) Or contact your Arm representative for details.
3739

40+
### SBSA
41+
Validating the compliance of certain PCIe rules defined in the SBSA specification requires the PCIe end-point to generate specific stimulus during the runtime of the test. Examples of such stimulus are P2P, PASID, ATC, etc. The tests that requires these stimuli are grouped together in the exerciser module. The exerciser layer is an abstraction layer that enables the integration of hardware capable of generating such stimuli to the test framework.
42+
The details of the hardware or Verification IP which enable these exerciser tests are platform specific and are beyond the scope of this document.
43+
44+
- Some PCIe and Exerciser test are dependent on PCIe features supported by the test system.
45+
Please fill the required API's with test system information.
46+
47+
|APIs |Description |Affected tests |
48+
|-----------------------------|------------------------------------------------------------------------------|------------------------|
49+
|pal_pcie_p2p_support |Return 0 if the test system PCIe supports peer to peer transaction, else 1 |453, 454, 456, 812, 813 |
50+
|pal_pcie_is_cache_present |Return 1 if the test system supports PCIe address translation cache, else 0 |452 |
51+
|pal_pcie_get_legacy_irq_map |Return 0 if system legacy irq map is filled, else 1 |412, 450, 806 |
52+
53+
Below exerciser capabilities are required by exerciser test.
54+
- MSI-X interrupt generation.
55+
- Incoming Transaction Monitoring(order, type).
56+
- Initiating transacions from and to the exerciser.
57+
- Ability to check on BDF and register address seen for each configuration address along with access type.
58+
59+
- SBSA Test 403 (Check ECAM Memory accessibility) execution time depends on the system PCIe hierarchy. For systems with multiple ECAMs the time taken to complete can be long which is normal. Please wait until the test completes.
60+
3861
## License
3962

4063
Arm SystemReady ACS is distributed under Apache v2.0 License.
@@ -48,5 +71,5 @@ Arm SystemReady ACS is distributed under Apache v2.0 License.
4871

4972
--------------
5073

51-
*Copyright (c) 2021, Arm Limited and Contributors. All rights reserved.*
74+
*Copyright (c) 2021-2022, Arm Limited and Contributors. All rights reserved.*
5275

0 commit comments

Comments
 (0)