- Personal Computing Base System Architecture
- PC BSA - Architecture Compliance Suite
- Release details
- Documentation & Guides
- PC BSA coverage overview
- PC BSA build steps
- PC BSA run steps
- RDV3CFG1 reference flow
- Application arguments
- Coverage guidance
- Limitations
- Feedback, contributions, and support
- License
Personal Computing Base System Architecture (PC BSA) defines hardware and debug requirements for Arm-based personal computing platforms. It builds on the Arm BSA ruleset and adds PC-specific constraints so that operating systems and firmware interoperate consistently across implementations. Refer to the PC BSA specification for the authoritative rule set.
The PC BSA Architecture Compliance Suite provides self-checking tests that
exercise the PC BSA rules across UEFI and Linux execution environments. Most
rules run inside the UEFI shell via PC_bsa.efi; OS-visible behavior is
validated by the Linux application and its kernel module companion.
- Code quality: EAC
- Latest release version: v1.0.0
- Release tag:
v25.12_PCBSA_1.0.0 - Specification coverage: PC BSA v1.0
- Execution levels: Pre-Silicon and Silicon
- Scope: ACS is not a substitute for full design verification.
- Prebuilt binaries:
prebuilt_images/PCBSA/v25.12_PCBSA_1.0.0
- PC BSA specification
- Arm PC BSA Testcase Checklist
- Arm PC BSA Test Scenario Document
- Common UEFI build guide
- Common Linux application guide
- Common CLI arguments
PC BSA rules are implemented across multiple ACS components. Run every path below to claim complete coverage.
- UEFI-based tests — execute
PC_bsa.efi(or the RDV3CFG1 reference flow) with the required modules, filters, and logging flags. - Linux-based tests — load
pcbsa_acs.koand runpcbsa_appto exercise OS-visible functionality. - SCT-based tests — run the Variable Services suite and any other SCT content referenced by the checklist.
- BSA ACS dependencies — execute
Bsa.efiplus the BSA Linux artifacts mandated by the PC BSA ruleset for shared requirements. - Manual evidence — document DUT-owner verification items called out in the PC BSA testcase checklist.
- Configure edk2, the toolchain, and the workspace using the Common UEFI build guide.
- Build the PC BSA binary:
source ShellPkg/Application/sysarch-acs/tools/scripts/acsbuild.sh pcbsa - Retrieve
PC_bsa.efifromBuild/Shell/<TOOL_CHAIN_TAG>/AARCH64/.
- Download the shared Linux ACS build script:
wget https://gitlab.arm.com/linux-arm/linux-acs/-/raw/master/acs-drv/files/build.sh
chmod +x build.sh - Build the drivers and applications:
source build.sh - The build artifacts appear under
build/:
pcbsa_acs.ko
pcbsa_app
bsa_acs.ko,bsa_app,sbsa_acs.ko,sbsa_app(also produced) - For build-script arguments and limitations, see the Common Linux application guide.
- Copy
PC_bsa.efito a FAT-formatted USB drive. - Boot the DUT to the UEFI shell, refresh mappings, and locate the filesystem:
Shell> map -r
Shell> fs0: - Run
PC_bsa.efiwith the required parameters (see Common CLI arguments). - Capture UART console output for reporting.
Example
Shell> PC_bsa.efi -v 1 -skip P_L1PE_01,P_L1GI_01 -f pcbsa_uefi.log
Runs PCBSA ACS with verbosity INFO, skips rules P_L1PE_01/P_L1GI_01and stores the UART output in pcbsa_uefi.log.
Use PC BSA rule IDs that follow the
P_L<level><module>_<nn>pattern defined in PC BSA checklist (for example,P_L1PE_01,P_L1GI_01) when filtering, and record any resulting coverage gap.
- Create a FAT image containing
PC_bsa.efi:
mkfs.vfat -C -n HD0 hda.img 2097152
sudo mount -o rw,loop=/dev/loop0,uid=$(whoami),gid=$(whoami) hda.img /mnt/pcbsa
sudo cp "<path to>/PC_bsa.efi" /mnt/pcbsa/
sudo umount /mnt/pcbsa
(Pick a free loop device if/dev/loop0is busy.) - Attach the image to the virtual platform per the model documentation.
- Boot to the UEFI shell.
- Refresh mappings and locate the filesystem:
map -r - Switch to the ACS filesystem, launch
PC_bsa.efiwith the required parameters, and capture UART logs for evidence.
Some emulation platforms embed binaries directly into the firmware image instead of exposing a virtual disk. In that case:
- Add the path of
PC_bsa.efito the UEFI FD image used by the model. - Rebuild the UEFI image so the binary is packaged alongside the UEFI shell.
- Boot the platform to the UEFI shell.
- Launch
PC_bsa.efiwith the desired arguments (see Common CLI arguments) - Capture the UART console output for analysis.
- Copy
pcbsa_acs.koandpcbsa_appto the system. - Load the kernel module:
sudo insmod pcbsa_acs.ko - Run the user-space application (see Common CLI arguments).
./pcbsa_app - Inspect kernel logs as needed:
sudo dmesg | tail -500 - Remove the module when testing completes:
sudo rmmod pcbsa_acs(Unloadbsa_acsandsbsa_acsif they are no longer required.)
Use this sequence to run the PC BSA UEFI application on the RDV3CFG1 Arm FVP.
- Build the software stack and download the FVP for the RDV3CFG1 model by following the RDV3CFG1 Setup Guide.
- Export the model path:
export MODEL=<path of FVP_RDV3CFG1> - Prepare the ACS disk image as described above FAT image with
PC_bsa.efi - Launch the model:
cd <RDV3CFG1_WORKSPACE>/model-scripts/rdinfra/platforms/rdv3cfg1
./run_model.sh –v <path of hda.img> - In UEFI Shell, press Esc, choose Built-in EFI Shell, refresh
mappings, switch to the ACS filesystem, and run
PC_bsa.efi.
Refer to Common CLI arguments for detailed flag descriptions, logging options, and sample invocations.\
- Execute UEFI, Linux, and required SCT content to claim full PC BSA coverage.
- Run the BSA ACS content (
Bsa.efiplus any required Linux modules) in addition to PC BSA to satisfy the cross-specification dependencies documented in the PC BSA checklist. - Rules
P_L1NV_01andP_L1SE_01require the VariableServicesTest from the SCT suite. - Refer to the BBR ACS User Guide and the SCT User Guide for guidance on building and selecting SCT test cases.
- Coverage spans UEFI tests, Linux tests, SCT content, and manual verification. Some rules require DUT-owner evidence; document those explicitly in reports.
- Exerciser-dependent PCIe features (P2P, PASID, ATC, and similar) require appropriate hardware stimulus; without it the respective rules must be marked partial or skipped.
- Email: support-systemready-acs@arm.com
- GitHub Issues: sysarch-acs issue tracker
- Contributions: GitHub Pull Requests
PC BSA ACS is distributed under the Apache v2.0 License
Copyright (c) 2025-2026, Arm Limited and Contributors. All rights reserved.