Skip to content

Commit 5bc1658

Browse files
committed
Changes for FF-A v1.1 ACS 0.9[Beta] release
1 parent 2ee933a commit 5bc1658

233 files changed

Lines changed: 9443 additions & 3131 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CMakeLists.txt

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ list(APPEND PLATFORM_FFA_V_1_0_LIST 0 1)
3939
list(APPEND PLATFORM_FFA_V_1_1_LIST 0 1)
4040
list(APPEND PLATFORM_FFA_V_ALL_LIST 0 1)
4141
list(APPEND ENABLE_PIE_LIST ON OFF)
42+
list(APPEND ENABLE_BTI_LIST ON OFF)
4243
list(APPEND CMAKE_BUILD_TYPE_LIST Release Debug)
4344
list(APPEND ARM_ARCH_MAJOR_LIST 8 9)
4445

@@ -198,6 +199,17 @@ else()
198199
message(STATUS "[ACS] : ENABLE_PIE is set to ${ENABLE_PIE}")
199200
endif()
200201

202+
# Check for ENABLE_BTI
203+
if(NOT DEFINED ENABLE_BTI)
204+
set(ENABLE_BTI ${ENABLE_BTI_DFLT} CACHE INTERNAL "Default ENABLE_BTI value" FORCE)
205+
message(STATUS "[ACS] : Defaulting ENABLE_BTI to ${ENABLE_BTI}")
206+
else()
207+
if(NOT ${ENABLE_BTI} IN_LIST ENABLE_BTI_LIST)
208+
message(FATAL_ERROR "[ACS] : Error: Unspported value for -DENABLE_BTI=, supported values are : ${ENABLE_BTI_LIST}")
209+
endif()
210+
message(STATUS "[ACS] : ENABLE_BTI is set to ${ENABLE_BTI}")
211+
endif()
212+
201213
if(DEFINED SUITE_TEST_RANGE)
202214
if(DEFINED SUITE)
203215
#set(SUITE ${SUITE_DFLT} CACHE INTERNAL "Defaulting suite to ${SUITE}" FORCE)
@@ -264,6 +276,7 @@ if(NOT(${PLATFORM_SP_EL} STREQUAL -1))
264276
add_subdirectory(${ROOT_DIR}/tools/cmake/endpoints/sp1)
265277
add_subdirectory(${ROOT_DIR}/tools/cmake/endpoints/sp2)
266278
add_subdirectory(${ROOT_DIR}/tools/cmake/endpoints/sp3)
279+
add_subdirectory(${ROOT_DIR}/tools/cmake/endpoints/sp4)
267280
endif()
268281
add_subdirectory(${ROOT_DIR}/tools/cmake/endpoints/vm1)
269282
if(${PLATFORM_NS_HYPERVISOR_PRESENT} STREQUAL 1)

README.md

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ For more information, download the [Arm FF-A Specification](https://developer.ar
2424

2525
### Architecture Compliance Suite
2626

27-
The Architecture Compliance Suite (ACS) contains a set of functional tests, demonstrating the invariant behaviors that are specified in the architecture specification. It is used to ensure architecture compliance of the implementations to Arm FF-A specification. The example implementations are SPMD(SPM Dispatcher) and SPMC(SPM Core) components in Secure world and hyperviosr in Normal World.
27+
The Architecture Compliance Suite (ACS) contains a set of functional tests, demonstrating the invariant behaviors that are specified in the architecture specification. It is used to ensure architecture compliance of the implementations to Arm FF-A specification. The example implementations are SPMD(SPM Dispatcher) and SPMC(SPM Core) components in Secure world and hypervisor in Normal World.
2828

2929
This suite contains self-checking, and portable C and assembly based tests with directed stimulus. These tests are available as open source. The tests and the corresponding abstraction layers are available with a BSD-3-Clause License allowing for external contribution.
3030

@@ -33,9 +33,9 @@ This suite is not a substitute for design verification. To review the test logs,
3333
For more information on Architecture Compliance Suite see [Validation Methodology](./docs/Arm_FF_A_ACS_Validation_Methodology.pdf) document.
3434

3535
## This release
36-
- Release Version - v0.8
36+
- Release Version - v0.9
3737
- Code Quality: Beta - ACS is being developed, please use this opportunity to ameliorate.
38-
- The tests are written for Arm FF-A 1.1 specification version.
38+
- The tests are written for Arm FF-A v1.1 specification version.
3939
- For information about the test coverage scenarios that are implemented in the current release of ACS and the scenarios that are planned for the future releases, see [Docs](./docs/).
4040

4141
## GitHub branch
@@ -75,7 +75,7 @@ make
7575
```
7676
<br />Options information:<br />
7777
- -G"<generator_name>" : "Unix Makefiles" to generate Makefiles for Linux and Cygwin. "MinGW Makefiles" to generate Makefiles for cmd.exe on Windows <br />
78-
- -DTARGET=<platform_name> is the same as the name of the target-specific directory created in the **platform/pal_baremetal/** directory. The default vaule is -DTARGET=tgt_tfa_fvp.<br />
78+
- -DTARGET=<platform_name> is the same as the name of the target-specific directory created in the **platform/pal_baremetal/** directory. The default value is -DTARGET=tgt_tfa_fvp.<br />
7979
- -DCROSS_COMPILE=<path_to_aarch64_gcc> Set the cross-compiler toolchain supporting AArch64 target. For example, -DCROSS_COMPILE=<path-to-aarch64-gcc>/bin/aarch64-none-elf- <br />
8080
- -DCC=<path_to_armclang_or_clang_binary> To compile ACS using clang or armclang cross compiler toolchain. The default compilation is with aarch64-gcc.<br />
8181
- -DSUITE=<suite_name> is the sub test suite name specified in **test/** directory. The default value is -DSUITE=all
@@ -86,16 +86,17 @@ make
8686
- -DSUITE_TEST_RANGE="<test_start_name>;<test_end_name>" is to select range of tests for build. All tests under -DSUITE are considered by default if not specified.
8787
- -DPLATFORM_SPMC_EL=<el_num>: EL number where the target SPMC component runs. Supported values are 1 and 2. The default value is 2.
8888
- -DPLATFORM_SP_EL=<el_num>: EL number where the test secure endpoints are expected to run. Supported values are 0(EL0), 1(EL1), and -1(Platform doesn't support deploying FFA based SPs). The default value is 1.
89-
- -DPLATFORM_NS_HYPERVISOR_PRESENT=<0|1>: Does the system support the non-secure hypervisor implementing FF-A features? 1 for yes, 0 for no. The default vaule is 1. System is expected to intergrate and load all the three of nonsecure test endpoints(vm1, vm2 and vm3) if the value is set to 1. Otherwise needs to use single non-secure test endpoint(vm1) which would act as NS OS kernel.
89+
- -DPLATFORM_NS_HYPERVISOR_PRESENT=<0|1>: Does the system support the non-secure hypervisor implementing FF-A features? 1 for yes, 0 for no. The default value is 1. System is expected to intergrate and load all the three of nonsecure test endpoints(vm1, vm2 and vm3) if the value is set to 1. Otherwise needs to use single non-secure test endpoint(vm1) which would act as NS OS kernel.
9090
- -DPLATFORM_FFA_V_1_0=<0|1>: It runs only tests that are supported by the Arm FF-A v1.0 specification. The default value is 0.
9191
- -DPLATFORM_FFA_V_1_1=<0|1>: It only tests the Arm FF-A v1.1 specifications as updates to Arm FF-A v1.0. The default value is 0.
9292
- -DPLATFORM_FFA_V_ALL=<0|1>: It runs all tests that are supported by the Arm FF-A v1.1 specification. The default value is 1.
93+
- -DENABLE_BTI=<ON|OFF>: It enables BTIs. The default value is OFF.
9394

9495
*To compile tests for tgt_tfa_fvp platform*:<br />
9596
```
9697
cd ff-a-acs ;
9798
mkdir build ; cd build
98-
cmake ../ -G"Unix Makefiles" -DCROSS_COMPILE=<path-to-aarch64-gcc>/bin/aarch64-none-elf- -DTARGET=tgt_tfa_fvp -DPLATFORM_NS_HYPERVISOR_PRESENT=0 -DSUITE=all -DPLATFORM_FFA_V_1_1=1 -DPLATFORM_SP_EL=<0|1>
99+
cmake ../ -G"Unix Makefiles" -DCROSS_COMPILE=<path-to-aarch64-gcc>/bin/aarch64-none-elf- -DTARGET=tgt_tfa_fvp -DPLATFORM_NS_HYPERVISOR_PRESENT=0 -DSUITE=all -DPLATFORM_FFA_V_1_1=1 -DPLATFORM_SP_EL=<0|1> -DENABLE_BTI=<ON|OFF>
99100
make
100101
```
101102
**NOTE**
@@ -106,6 +107,7 @@ The ACS build generates the binaries for the following test endpoints:<br />
106107
- build/output/sp1.bin
107108
- build/output/sp2.bin
108109
- build/output/sp3.bin
110+
- build/output/sp4.bin
109111
- build/output/vm1.bin
110112
- build/output/vm2.bin (Generated when PLATFORM_NS_HYPERVISOR_PRESENT set to 1)
111113
- build/output/vm3.bin (Generated when PLATFORM_NS_HYPERVISOR_PRESENT set to 1)
30 KB
Binary file not shown.

0 commit comments

Comments
 (0)