- xBSA UEFI application
- Release Details
- Documentation & Guides
- xBSA build steps
- xBSA run steps
- Feedback, contributions and support
- License
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 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.
- Coverage: Aggregates validation for BSA 1.2 and SBSA 8.0.
- 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 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.
- Rule-Based Guide — rule filters and reporting flow shared across ACS variants.
- Common UEFI build guide
- Common Linux application guide
- Common CLI arguments
- BSA ACS README, SBSA ACS README, and PC BSA ACS README for component-specific notes referenced by xBSA.
Follow the steps below to build the combined UEFI shell application (xbsa_acpi.efi) inside an edk2 workspace.
- A mainstream Linux distribution on x86 or AArch64.
- Bash shell for building.
- edk2 build dependencies (compiler toolchains, required packages). Note: Package specifics vary by distribution and are out of scope for this guide.
Use the Common UEFI build guide to set up the edk2
workspace, clone edk2-libc, and install the Arm GNU AArch64 toolchain. After
the environment is configured, build the xBSA binary:
rm -rf Build/(optional clean build)source ShellPkg/Application/sysarch-acs/tools/scripts/acsbuild.sh xbsa_acpi
The xBSA EFI binary is generated at:
workspace/edk2/Build/Shell/DEBUG_GCC/AARCH64/xbsa_acpi.efi
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.
Follow the Common Linux application guide to build the
shared ACS kernel modules and user applications. xBSA reuses bsa_acs.ko,
bsa_app, sbsa_acs.ko, sbsa_app, pcbsa_acs.ko and pcbsa_app; deploy the binaries that match the spec revisions you plan to validate alongside the xBSA UEFI binary.
On platforms with USB access:
- Copy
xbsa_acpi.efito a FAT-formatted USB device.
For U-Boot firmware systems, additional steps- Copy
Shell.efito the USB device (available underprebuilt_images/IR). - Boot to the U-Boot shell.
- Discover the USB device:
usb start - Load
Shell.efiinto memory:fatload usb <dev_num> ${kernel_addr_r} Shell.efi - Start the UEFI shell:
fatload usb 0 ${kernel_addr_r} Shell.efi
- Copy
- In the UEFI shell refresh the filesystem mappings:
map -r - Switch to the USB filesystem (for example,
fs0:). - Run
xbsa_acpi.efiwith the required parameters (see Common CLI arguments). - Capture the UART console output for log retention.
Example
Shell> xbsa_acpi.efi -v 1 -m PE,GIC -skip B_PE_01 -f xbsa.log
Runs the combined PE and GIC modules, skips B_PE_01, and writes logs to
xbsa.log.
xBSA aggregates BSA (
B_*), SBSA (S_*), and PC BSA (P_*) rule IDs.
- Create an image containing
xbsa_acpi.efiandShell.efi(for U-Boot systems):mkfs.vfat -C -n HD0 hda.img 2097152sudo mount -o rw,loop=/dev/loop0,uid=$(whoami),gid=$(whoami) hda.img /mnt/acssudo cp "<path to application>/xbsa_acpi.efi" /mnt/acs/sudo umount /mnt/acs(Select an available loop device if/dev/loop0is busy.)
- Load the image into the emulated secondary storage using the platform-specific mechanism.
- Boot to the UEFI shell.
- Identify the filesystem with
map -r. - Switch to the filesystem (
fs<x>:). - Execute
xbsa_acpi.efiwith the appropriate parameters (see Common CLI arguments). - Preserve the UART console output for debug or certification review.
The xBSA UEFI application reuses the BSA and SBSA Linux applications to exercise OS-reliant tests:
- Transfer the built binaries (
bsa_acs.ko,bsa_app,sbsa_acs.ko,sbsa_app) to the target system (for example, on a USB drive). - Boot into Linux and locate the removable storage device.
- Load each kernel module before running the corresponding user-space application:
sudo insmod bsa_acs.kosudo insmod sbsa_acs.ko - Execute the user-space applications to run the Linux portions of the suite (see Common CLI arguments).
./bsa_app./sbsa_app - Remove the kernel modules once testing is complete:
sudo rmmod sbsa_acssudo rmmod bsa_acs
Refer to Common CLI arguments for the
canonical flag list, module selectors, xBSA-specific options such as options such as -a, -cache,
-skip-dp-nic-ms and log-file options shared across ACS binaries.
- Use the appropriate namespace with
-skip,-r, or any rule-based filters when narrowing coverage, and capture sample command lines in test evidence.
- Email: support-systemready-acs@arm.com
- GitHub Issues: sysarch-acs issue tracker
- Contributions: GitHub Pull Requests
xBSA ACS is distributed under the Apache v2.0 License.
Copyright (c) 2025-2026, Arm Limited and Contributors. All rights reserved.