Code Monkey home page Code Monkey logo

arm-enterprise-acs's Introduction

Arm Enterprise ACS - Architecture Compliance Suite

Architecture Compliance Suite

Architecture Compliance Suite (ACS) is used to ensure architectural compliance across different implementations of the architecture. Arm Enterprise ACS includes a set of examples of the invariant behaviours that are provided by a set of specifications for enterprise systems (e.g. SBSA, SBBR, etc.), so that implementers can verify if these behaviours have been interpreted correctly. ACS is delivered with tests in source form along with a build script, the output of the build being a bootable Linux UEFI Validation (LUV) OS image that can run all tests required by these specifications.

Arm Enterprise ACS tests are available open source. The tests and the corresponding abstraction layers are available with an Apache v2 license allowing for external contribution.

In summary, the Arm Enterprise ACS product contains the following:

    1. Scripts to build, construct, and run the test images.
    2. A bootable LUV OS image capable of running all tests.
    3. Documentation on running the tests.

These tests are split between UEFI and Linux (supported by corresponding kernel driver) applications that together determine whether an architectural implementation is compliant with the enterprise specifications. These tests are further described in detail.

Release details

  • Code Quality: REL v2.0
  • The SBSA tests are written for version 5.0 of the SBSA specification.
  • The SBBR tests are written for version 1.1 of the SBBR specification.
  • The compliance suite is not a substitute for design verification.
  • To review the ACS logs, Arm licensees can contact Arm directly through their partner managers.

GitHub branch

  • To pick up the release version of the code, checkout the release branch with the appropriate tag.
  • To get the latest version of the code with bug fixes and new features, use the master branch.

ACS build steps

Prebuilt images

  • Prebuilt images for each release are available in the prebuilt_images folder of the release branch. You can choose to use these images or build your own image by following the steps below.
  • If you choose to use the prebuilt image, skip the build steps and jump to the test suite execution section below.

Prerequisites

Before starting the ACS build, ensure that the following requirements are met:

  • Ubuntu 16.04 LTS with at least 64GB of free disk space.
  • Must use Bash shell.
  • UEFI SCT based tests are not built by default. To build UEFI SCT, membership of https://github.com/UEFI/UEFI-SCT is necessary. If you are not a member, you must request access by sending an e-mail to [email protected] by providing your GitHub account ID.

Note : Windows build steps will be provided in the future releases.

Perform the following steps to start the ACS build:

  1. Create a directory that is your workspace and `cd' into it.
    $ mkdir <work_dir> && cd <work_dir>
  2. Clone the Arm Enterprise ACS source code.
    $ git clone https://github.com/ARM-software/arm-enterprise-acs.git
    $ cd arm-enterprise-acs
  3. Download and patch LUV OS source code.
    $ ./acs_sync.sh
  4. Build LUV OS and test binaries.
    $ ./luvos/scripts/build.sh

Note:

  • These build steps only target AArch64.
  • By default, the build script excludes UEFI SCT in the built images.
    If SCT must be included, enter "no" when prompted "To continue without building UEFI-SCT. Enter [yes(default)/no]: ", and then enter GitHub details for the UEFI-SCT member account.
  • The build script provides the option to append kernel command-line parameters, if necessary. Press enter to continue with default parameters.

Build output

The luv-live-image-gpt.img bootable image can be found in: <work_dir>/arm-enterprise-acs/luv/build/tmp/deploy/images/qemuarm64/luv-live-image-gpt.img

This image comprises of two FAT file system partitions recognized by UEFI:

  • 'luv-results'
    Stores logs and is used to install UEFI-SCT. (Approximate size: 120 MB)
  • 'boot'
    Contains bootable applications and test suites. (Approximate size: 60 MB)

For more information, see Yocto Project and LuvOS.

Test Suite Execution

Juno Reference Platform

Follow the instructions here to install an EDK2 (UEFI) prebuilt configuration on your Juno board. For additional information, see the FAQs and tutorials here or contact [email protected].

After installing the EDK2 prebuilt configuration on your Juno board, follow these steps:

  1. Burn the LUV OS bootable image to a USB stick:
    $ lsblk
    $ sudo dd if=/path/to/luv-live-image-gpt.img of=/dev/sdX
    $ sync
    Note: Replace '/dev/sdX' with the handle corresponding to your USB stick as identified by the `lsblk' command.
  2. Insert the USB stick into one of the Juno's rear USB ports.
  3. Power cycle the Juno.

Fixed Virtual Platform (FVP) environment

The steps for running the Arm Enterprise ACS on an FVP are the same as those for running on Juno but with a few exceptions:

  • Follow the different instructions here to install an EDK2 (UEFI) prebuilt configuration on your FVP.

  • Modify 'run_model.sh' to add a model command argument that loads 'luv-live-image-gpt.img' as a virtual disk image. For example, if running on the AEMv8-A Base Platform FVP, add

    `bp.virtioblockdevice.image path=<work_dir>/arm-enterprise- acs/luv/build/tmp/deploy/images/qemuarm64/luv-live-image-gpt.img'

    to your model options.
    Or,
    To launch the FVP model with script ‘run_model.sh’ that supports -v option for virtual disk image, use the following command:

    $ ./run_model.sh -v <work_dir>/arm-enterprise-acs/luv/build/tmp/deploy/images/qemuarm64/luv-live-image-gpt.img

Automation

The test suite execution can be automated or manual. Automated execution is the default execution method when no key is pressed during boot.
Note: SBBR SCT tests are not included as part of automation. For information about running these tests, see section ‘SBBR SCT tests’ in this document.
The execution varies depending on the test environment. The next set of commands are an example of our typical run of the test suites. Note that the File System Partition in your platform can vary.

The live image boots to UEFI Shell. The different test applications can be run in following order:

  1. UEFI Shell application for SBSA compliance.
  2. SCT tests (if included in the build), for SBBR compliance.
  3. FWTS tests for SBBR compliance.
  4. OS tests for SBSA compliance.

Baselines for Open Source Software in this release:

Note:
You must be a member of UEFI-SCT. If you are not a member, you must request access by sending an e-mail to [email protected] by specifying your GitHub ID.

License

Arm Enterprise ACS is distributed under Apache v2.0 License.

Feedback, contributions, and support

  • For feedback, use the GitHub Issue Tracker that is associated with this repository.
  • For support, please send an email to "[email protected]" with details.
  • Arm licensees can contact Arm directly through their partner managers.
  • Arm welcomes code contributions through GitHub pull requests. For details, see "docs/Contributions.txt".

arm-enterprise-acs's People

Contributors

bhaskarabudiredla avatar ccx-stingray avatar mahesh-bireddy avatar prasanth-pulla avatar sakar-arora avatar swapnamanohar24 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.