Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/sysarch_ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -99,10 +99,10 @@ jobs:
arg: vbsa
outfile: Vbsa.efi
artifact: Vbsa_acpi_target.efi
- name: Unified ACPI
arg: unified
outfile: UnifiedAcs.efi
artifact: unified.efi
- name: xBSA ACPI
arg: xbsa_acpi
outfile: xbsa_acpi.efi
artifact: xbsa_acpi.efi
- name: PFDI DT
arg: pfdi
outfile: pfdi.efi
Expand Down
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
* [MemTest ACS](#memtest-architecture-compliance-suite)
* [PFDI ACS](#pfdi-architecture-compliance-suite)
* [VBSA ACS](#vbsa-architecture-compliance-suite)
* [Unified UEFI Application](#unified-uefi-application)
* [xBSA UEFI application](#xbsa-uefi-application)
* [Security Implications](#-security-implications)
* [Feedback and Support](#-feedback-and-support)
* [License](#-license)
Expand Down Expand Up @@ -52,7 +52,7 @@ sysarch-acs/
│ ├── uefi/
│ | └── <acs_name>_main.c
├── docs/
│ ├── unified/
│ ├── xbsa/
│ ├── bsa/
│ ├── sbsa/
│ ├── drtm/
Expand Down Expand Up @@ -205,11 +205,11 @@ Refer to the [VBSA ACS README](docs/vbsa/README.md) for detailed build steps, ex

---

## Unified UEFI Application
Provides a unified entry point for running BSA, SBSA, PC-BSA validation from a single UEFI application.
## xBSA UEFI application
Provides a unified entry point for running BSA, SBSA, and PC-BSA validation from a single UEFI application.

#### Reference for Build, Execution, and More
Refer to the [Unified ACS README](docs/unified/README.md) for build steps, execution procedures, additional information, and known limitations.
Refer to the [xBSA README](docs/xbsa/README.md) for build steps, execution procedures, additional information, and known limitations.

---

Expand Down
4 changes: 2 additions & 2 deletions apps/uefi/Bsa.inf
Original file line number Diff line number Diff line change
Expand Up @@ -315,8 +315,8 @@
ShellPkg/ShellPkg.dec

[LibraryClasses]
UnifiedValLib
UnifiedPalLib
ValLib
PalLib
UefiLib
ShellLib
DebugLib
Expand Down
4 changes: 2 additions & 2 deletions apps/uefi/Drtm.inf
Original file line number Diff line number Diff line change
Expand Up @@ -69,8 +69,8 @@
ShellPkg/ShellPkg.dec

[LibraryClasses]
UnifiedValLib
UnifiedPalLib
ValLib
PalLib
UefiLib
ShellLib
DebugLib
Expand Down
4 changes: 2 additions & 2 deletions apps/uefi/Mem.inf
Original file line number Diff line number Diff line change
Expand Up @@ -185,8 +185,8 @@
ShellPkg/ShellPkg.dec

[LibraryClasses]
UnifiedValLib
UnifiedPalLib
ValLib
PalLib
LibCFlat
UefiLib
ShellLib
Expand Down
4 changes: 2 additions & 2 deletions apps/uefi/Mpam.inf
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,8 @@
ShellPkg/ShellPkg.dec

[LibraryClasses]
UnifiedValLib
UnifiedPalLib
ValLib
PalLib
UefiLib
ShellLib
DebugLib
Expand Down
4 changes: 2 additions & 2 deletions apps/uefi/Pfdi.inf
Original file line number Diff line number Diff line change
Expand Up @@ -58,8 +58,8 @@
ShellPkg/ShellPkg.dec

[LibraryClasses]
UnifiedValLib
UnifiedPalLib
ValLib
PalLib
UefiLib
ShellLib
DebugLib
Expand Down
4 changes: 2 additions & 2 deletions apps/uefi/Sbsa.inf
Original file line number Diff line number Diff line change
Expand Up @@ -320,8 +320,8 @@
ShellPkg/ShellPkg.dec

[LibraryClasses]
UnifiedValLib
UnifiedPalLib
ValLib
PalLib
UefiLib
ShellLib
DebugLib
Expand Down
4 changes: 2 additions & 2 deletions apps/uefi/Vbsa.inf
Original file line number Diff line number Diff line change
Expand Up @@ -318,8 +318,8 @@
ShellPkg/ShellPkg.dec

[LibraryClasses]
UnifiedValLib
UnifiedPalLib
ValLib
PalLib
UefiLib
ShellLib
DebugLib
Expand Down
8 changes: 4 additions & 4 deletions apps/uefi/acs.h
Original file line number Diff line number Diff line change
Expand Up @@ -42,10 +42,10 @@
#define VBSA_ACS_MINOR_VER 7
#define VBSA_ACS_SUBMINOR_VER 0

/* Unified ACS Release versions */
#define UNI_ACS_MAJOR_VER 1
#define UNI_ACS_MINOR_VER 0
#define UNI_ACS_SUBMINOR_VER 0
/* xBSA ACS Release versions */
#define XBSA_ACS_MAJOR_VER 1
#define XBSA_ACS_MINOR_VER 0
#define XBSA_ACS_SUBMINOR_VER 0

/* DRTM Release versions */
#define DRTM_ACS_MAJOR_VER 0
Expand Down
4 changes: 2 additions & 2 deletions apps/uefi/pc_bsa.inf
Original file line number Diff line number Diff line change
Expand Up @@ -318,8 +318,8 @@
ShellPkg/ShellPkg.dec

[LibraryClasses]
UnifiedValLib
UnifiedPalLib
ValLib
PalLib
UefiLib
ShellLib
DebugLib
Expand Down
8 changes: 4 additions & 4 deletions apps/uefi/Unified.inf → apps/uefi/xbsa_acpi.inf
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@

[Defines]
INF_VERSION = 0x00010006
BASE_NAME = UnifiedAcs
BASE_NAME = xbsa_acpi
FILE_GUID = a912f198-7f0e-4803-b908-b757b806ec83
MODULE_TYPE = UEFI_APPLICATION
VERSION_STRING = 0.1
Expand All @@ -34,7 +34,7 @@
app.c
acs_globals.c
acs_helpers.c
unified_main.c
xbsa_main.c
../../test_pool/pe/pe001.c
../../test_pool/pe/pe002.c
../../test_pool/pe/pe003.c
Expand Down Expand Up @@ -316,8 +316,8 @@
ShellPkg/ShellPkg.dec

[LibraryClasses]
UnifiedValLib
UnifiedPalLib
ValLib
PalLib
UefiLib
ShellLib
DebugLib
Expand Down
12 changes: 6 additions & 6 deletions apps/uefi/unified_main.c → apps/uefi/xbsa_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
#include "val/include/rule_based_execution.h"
#include "acs.h"

/* CLI parameter table for Unified ACS, for description refer HelpMsg */
/* CLI parameter table for xBSA UEFI application, for description refer HelpMsg */
CONST SHELL_PARAM_ITEM ParamList[] = {
{L"-a", TypeValue},
{L"-cache", TypeFlag},
Expand Down Expand Up @@ -63,7 +63,7 @@ CONST SHELL_PARAM_ITEM ParamList[] = {
VOID
HelpMsg (VOID)
{
Print (L"\nUsage: Unified.efi [options]\n"
Print (L"\nUsage: xbsa_acpi.efi [options]\n"
"Options:\n"
"-a Architecture selection: 'bsa', 'sbsa', or 'pcbsa'\n"
" -a bsa Use full BSA rule checklist \n"
Expand Down Expand Up @@ -194,10 +194,10 @@ execute_tests()
}

/* Print ACS header */
val_print(ACS_PRINT_TEST, "\n\nUnified Architecture Compliance Suite", 0);
val_print(ACS_PRINT_TEST, "\n Version %d.", UNI_ACS_MAJOR_VER);
val_print(ACS_PRINT_TEST, "%d.", UNI_ACS_MINOR_VER);
val_print(ACS_PRINT_TEST, "%d\n", UNI_ACS_SUBMINOR_VER);
val_print(ACS_PRINT_TEST, "\n\nxBSA Architecture Compliance Suite", 0);
val_print(ACS_PRINT_TEST, "\n Version %d.", XBSA_ACS_MAJOR_VER);
val_print(ACS_PRINT_TEST, "%d.", XBSA_ACS_MINOR_VER);
val_print(ACS_PRINT_TEST, "%d\n", XBSA_ACS_SUBMINOR_VER);
val_print(ACS_PRINT_TEST, "(Print level is %2d)\n\n", g_print_level);
val_print(ACS_PRINT_TEST, "\n Creating Platform Information Tables\n", 0);

Expand Down
56 changes: 28 additions & 28 deletions docs/unified/README.md → docs/xbsa/README.md
Original file line number Diff line number Diff line change
@@ -1,27 +1,27 @@
## Table of Contents

- [Unified UEFI Application](#unified-uefi-application)
- [xBSA UEFI application](#xbsa-uefi-application)
- [Release Details](#release-details)
- [Unified build steps](#unified-build-steps)
- [xBSA build steps](#xbsa-build-steps)
- [UEFI Shell application](#uefi-shell-application)
- [Prerequisites](#prerequisites)
- [Setup the workspace and clone required repositories](#setup-the-workspace-and-clone-required-repositories)
- [Build edk2 prerequisites](#build-edk2-prerequisites)
- [Start the Unified ACS build](#start-the-unified-acs-build)
- [Start the xBSA application build](#start-the-xbsa-application-build)
- [Build output](#build-output)
- [Linux application](#linux-application)
- [Unified run steps](#unified-run-steps)
- [xBSA run steps](#xbsa-run-steps)
- [For UEFI application](#for-uefi-application)
- [For Linux application](#for-linux-application)
- [Related Documentation](#related-documentation)
- [Support](#support)

## Unified UEFI Application
## xBSA UEFI application

The **Unified UEFI Application** packages the BSA, SBSA and PC-BSA test suites into a single, self-checking UEFI binary.
The **xBSA UEFI application** packages the BSA, SBSA and PC-BSA test suites into a single, self-checking UEFI binary.
It is intended for platform teams that want to validate a design once and cover the combined requirements of the Base System Architecture (BSA), Server Base System Architecture (SBSA) and PCBase System Architecture (PC-BSA) specifications.

Most tests run from the **UEFI Shell** by invoking the Unified ACS UEFI application.
Most tests run from the **UEFI Shell** by invoking the xBSA UEFI application.
Selected PCIe and peripheral tests require the Exerciser VIP to achieve complete coverage.
The test suite can also be executed in bare-metal environments; initialization of those environments remains platform-specific.

Expand All @@ -30,11 +30,11 @@ The test suite can also be executed in bare-metal environments; initialization o
- **Coverage:** Aggregates validation for [BSA 1.2](https://developer.arm.com/documentation/den0094/e/?lang=en) and [SBSA 8.0](https://developer.arm.com/documentation/den0029/j/?lang=en).
- **Execution levels:** Suitable for both Pre-Silicon and Silicon validation.
- **Complementary requirements:** Running with the Exerciser VIP is recommended for complete PCIe compliance coverage.
- **Linux dependencies:** The Unified ACS relies on the BSA and SBSA Linux applications for tests that require an OS environment. Refer to the dedicated BSA and SBSA documentation for details.
- **Linux dependencies:** The xBSA UEFI application relies on the BSA and SBSA Linux applications for tests that require an OS environment. Refer to the dedicated BSA and SBSA documentation for details.

## Unified build steps
## xBSA build steps

Follow the steps below to build the combined UEFI shell application (`UnifiedAcs.efi`) inside an edk2 workspace.
Follow the steps below to build the combined UEFI shell application (`xbsa_acpi.efi`) inside an edk2 workspace.

### UEFI Shell application

Expand Down Expand Up @@ -73,28 +73,28 @@ source edksetup.sh
make -C BaseTools/Source/C
```

#### Start the Unified Application build
#### Start the xBSA application build
```
rm -rf Build/
source ShellPkg/Application/sysarch-acs/tools/scripts/acsbuild.sh unified
source ShellPkg/Application/sysarch-acs/tools/scripts/acsbuild.sh xbsa_acpi
```

#### Build output
The Unified EFI binary is generated at:
`workspace/edk2/Build/Shell/DEBUG_GCC/AARCH64/UnifiedAcs.efi`
The xBSA EFI binary is generated at:
`workspace/edk2/Build/Shell/DEBUG_GCC/AARCH64/xbsa_acpi.efi`

> **Note:** Unified ACS currently supports ACPI-based builds. Platform-specific device tree enablement is not available for the unified target. Ensure Exerciser PAL APIs are implemented when the Exerciser VIP is present.
> **Note:** The xBSA UEFI application currently supports ACPI-based builds. Platform-specific device tree enablement is not available for the xBSA target. Ensure Exerciser PAL APIs are implemented when the Exerciser VIP is present.

### Linux application
Unified ACS relies on the existing BSA and SBSA Linux applications when OS-based tests are required. Build these components using the instructions in `docs/bsa/README.md` and `docs/sbsa/README.md`, then deploy them alongside the Unified ACS UEFI binary.
The xBSA UEFI application relies on the existing BSA and SBSA Linux applications when OS-based tests are required. Build these components using the instructions in `docs/bsa/README.md` and `docs/sbsa/README.md`, then deploy them alongside the xBSA UEFI binary.

## Unified run steps
## xBSA run steps

### For UEFI application

#### Silicon system
On platforms with USB access:
1. Copy `UnifiedAcs.efi` to a FAT-formatted USB device.
1. Copy `xbsa_acpi.efi` to a FAT-formatted USB device.

- **For U-Boot firmware systems, additional steps**
1. Copy `Shell.efi` to the USB device (available under `prebuilt_images/IR`).
Expand All @@ -113,32 +113,32 @@ On platforms with USB access:
map -r
```
3. Switch to the USB filesystem (for example, `fs0:`).
4. Run `UnifiedAcs.efi` with the required parameters.
4. Run `xbsa_acpi.efi` with the required parameters.
5. Capture the UART console output for log retention.

- For application parameters, see the [Unified User Guide](user_guide.rst).
- For application parameters, see the [xBSA User Guide](user_guide.rst).

#### Emulation environment with secondary storage
1. Create an image containing `UnifiedAcs.efi` and `Shell.efi` (for U-Boot systems):
1. Create an image containing `xbsa_acpi.efi` and `Shell.efi` (for U-Boot systems):
```
mkfs.vfat -C -n HD0 hda.img 2097152
sudo mount -o rw,loop=/dev/loop0,uid=$(whoami),gid=$(whoami) hda.img /mnt/unified
sudo cp "<path to application>/UnifiedAcs.efi" /mnt/unified/
sudo umount /mnt/unified
sudo mount -o rw,loop=/dev/loop0,uid=$(whoami),gid=$(whoami) hda.img /mnt/acs
sudo cp "<path to application>/xbsa_acpi.efi" /mnt/acs/
sudo umount /mnt/acs
```
*(Select an available loop device if `/dev/loop0` is busy.)*
2. Load the image into the emulated secondary storage using the platform-specific mechanism.
3. Boot to the UEFI shell.
4. Identify the filesystem with `map -r`.
5. Switch to the filesystem (`fs<x>:`).
6. Execute `UnifiedAcs.efi` with the appropriate parameters.
6. Execute `xbsa_acpi.efi` with the appropriate parameters.
7. Preserve the UART console output for debug or certification review.

- For application parameters, see the [Unified User Guide](user_guide.rst).
- For application parameters, see the [xBSA User Guide](user_guide.rst).

### For Linux application

Unified ACS reuses the BSA and SBSA Linux applications to exercise OS-reliant tests:
The xBSA UEFI application reuses the BSA and SBSA Linux applications to exercise OS-reliant tests:
1. Transfer the built binaries (`bsa_acs.ko`, `bsa_app`, `sbsa_acs.ko`, `sbsa_app`) to the target system (for example, on a USB drive).
2. Boot into Linux and locate the removable storage device.
3. Load each kernel module before running the corresponding user-space application:
Expand All @@ -157,7 +157,7 @@ Unified ACS reuses the BSA and SBSA Linux applications to exercise OS-reliant te
sudo rmmod bsa_acs
```

- For application parameters, see the [Unified User Guide](user_guide.rst).
- For application parameters, see the [xBSA User Guide](user_guide.rst).

## Related Documentation

Expand Down
6 changes: 3 additions & 3 deletions docs/unified/user_guide.rst → docs/xbsa/user_guide.rst
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
Unified Command Line Options
============================
xBSA Command Line Options
=========================

Usage::

Unified.efi [options]
xbsa_acpi.efi [options]

Options
-------
Expand Down
Loading