blob: 49bd2432650ba330084bc73555e67f19373d0cb7 [file] [log] [blame]
Paul Beesley24a6bd62019-10-24 11:57:00 +00001Change Log & Release Notes
2==========================
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +02003
4Please note that the Trusted Firmware-A Tests version follows the Trusted
5Firmware-A version for simplicity. At any point in time, TF-A Tests version
6`x.y` aims at testing TF-A version `x.y`. Different versions of TF-A and TF-A
7Tests are not guaranteed to be compatible. This also means that a version
8upgrade on the TF-A-Tests side might not necessarily introduce any new feature.
9
Jayanth Dodderi Chidanand8736e4b2022-05-03 15:05:11 +010010Version 2.7
11-----------
12
13New features
14^^^^^^^^^^^^
15- More tests are made available in this release to help validate the
16 functionalities in the following areas:
17
18 - FF-A Features
19 - New Architecture Specific features related to v8.7
20 - New platform port
21
22TFTF
23~~~~
24
25- FF-A testing:
26
27 - FF-A partition information structure is updated to include UUIDs.
28 - Memory Management helper functions are refactored to fetch the details
29 of smc call failures in tftf and cactus.
30 - Added test to validate memory sharing operations from SP to NS-endpoint
31 are denied by SPMC.
32 - Added test to ensure an endpoint that sets its version to v1.0 receives
33 v1.0 partition information descriptors as defined in v1.0 FF-A
34 specification.
35 - Added test to validate that memory is cleared on memory sharing operations
36 between normal world and secure world.
37
38 - FF-A v1.1 Secure interrupts
39
40 - Added support to enhance the secure interrupt handling test.
41 - Support for registering and unregistering custom handler that is
42 invoked by SP at the tail end of the virtual interrupt processing.
43 - Added support for querying the ID of the last serviced virtual interrupt.
44
45- New tests:
46
47 - Added test to validate that realm region access is being prevented from
48 normal world.
49 - Added test to validate that secure region access is being prevented from
50 normal world.
51 - Added test to validate that secure region access is being prevented from
52 realm world.
53 - Added test to validate that root region access is being prevented from
54 realm world.
55 - Added a test for v8.7 Advanced floating-point behavior (FEAT_AFP).
56 - Added a SPE test that reads static profiling system registers
57 of available SPE version i.e. FEAT_SPE/FEAT_SPEv1p1/FEAT_SPEv1p2.
58 - Added a test to validate functionality of WFET and WFIT instructions
59 introduced by v8.7 FEAT_WFxT.
60 - Added basic SME tests to ensure feature enablement by EL3 is proper for
61 its usage at lower non-secure ELs.
62 - Added test to check Data Independent timing (DIT) field of PSTATE is
63 retained on exception.
64 - Added test to ensure that EL3 has properly enabled access to FEAT_BRBE
65 from non-secure ELs.
66
67- Platforms:
68
69 - Add initial platform support for corstone1000.
70
71 - TC:
72
73 - Support for notification in tertiary SP manifest.
74
75 - FVP:
76
77 - Support to provide test memory addresses to validate the invalid
78 memory access test from tftf(ns-el2).
79
80- Miscellaneous:
81
82 - Added support to configure the physical/virtual address space for FVP.
83 - Added common header file for defining macros with size to support all the
84 platforms.
85 - Introduced handler for synchronous exceptions (AArch64).
86 - Added macros to extract the ISS portion of an ELx ESR exception syndrome
87 register.
88 - Support to dynamically map/unmap test region to validate invalid memory
89 access tests.
90 - Added support to receive boot information through secure partitions,
91 according to the FF-A v1.1 EAC0 specification.
92 - Added an helper API function from SPM test suite to initialize FFA-mailbox
93 and enable FF-A based message with SP.
94 - Updated the build string to display the rc-tagged version.
95
96Cactus (Secure-EL1 test partition)
97~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
98
99 - Added test for nonsecure memory sharing between Secure Partitions(SPs).
100 - Added test to validate that a realm region cannot be accessed from secure
101 world.
102 - Added test to permit checking a root region cannot be accessed from secure
103 world.
104 - Extended the test command CACTUS_MEM_SEND_CMD to add support for memory
105 sharing flags.
106 - Added support to save the state of general purpose registers x0-x4 at the
107 entry to cold boot and restore them before jumping to entrypoint of cactus.
108
109Issues resolved since last release
110^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
111
112 - Fixed a bug to align RMI FIDs with SMCCC.
113 - Fixed encoding of vCPU and receiver IDs in the FFA_NOTIFICATION_GET
114 interface to comply with the FF-A v1.1 beta0 specification.
115 - Fixed memory retrieve request attributes by enforcing them to be inner
116 shareable rather than outer.
117 - Fixed static memory mapping of EL3 in EL2.
118 - Fixed a spurious error log message with memory share test.
119 - Aligning RMI FIDs with SMCCC.
120 - Fixed PSCI system suspend test suite execution in a four world system.
121 - Configured the build system to use DWARF 4 standard for debug builds with
122 ArmDS.
123 - Introduced macro IRQ_TWDOG_INTID for the Tegra210, Tegra186 and Tegra194
124 platforms to fix the compilation failures.
125
Madhukar Pappireddy833099c2021-11-09 16:05:54 -0600126Version 2.6
127-----------
128
129New features
130^^^^^^^^^^^^
131- More tests are made available in this release to help validate the
132 functionalities in the following areas:
133
134 - Firmware Framework for Arm A-profile(FF-A)
135 - Realm Management Extensions(RME)
136 - Embedded Trace Extension and Trace Buffer Extension (ETE and TRBE)
137
138TFTF
139~~~~
140
141- FF-A testing:
142
143 - Update FF-A version to v1.1
144 - Added helpers for SPM tests to check partition info of SPs from normal
145 world.
146 - Added tests to check for ffa_features supported.
147 - Added test for FFA_RXTX_UNMAP ABI.
148 - Added test for FFA_SPM_ID_GET.
149 - FF-A v1.1 Notifications
150
151 - Added test for notifications bitmap create and destroy ABIs.
152 - Added test for notifications set and get ABIs.
153 - Added test for notification INFO_GET ABI.
154 - Added test to check notifications pending interrupt is injected into
155 and handled by the expected vCPU in a MP setup.
156 - Added test for signaling from MP SP to UP SP.
157 - Added test to check notifications interrupt IDs retrieved with
158 FFA_FEATURES ABI.
159 - Added test to check functionality of notifications scheduled receiver
160 interrupt.
161
162 - FF-A v1.1 Secure interrupts
163
164 - Added support for handling secure interrupts in Cactus SP.
165 - Added several tests to exercise secure interrupt handling while SP
166 is in WAITING/RUNNING/BLOCKED state.
167
168- New tests:
169
170 - Enabled SVE tests
171 - Added test for trace system registers access.
172 - Added test for trace filter control registers access.
173 - Added test for trace buffer control registers access.
174 - Added test to check PSTATE in SDEI handler.
175 - Added test to check if HCRX_EL2 is accessible.
176
177- Platforms:
178
179 - TC0:
180
181 - Support for direct messaging with managed exit.
182 - Support for building S-EL0 Ivy partition.
183
184 - FVP:
185
186 - Update Cactus secure partitions to indicate Managed exit support.
187
188- Miscellaneous
189
190 - Added random seed generation capability and ability to specify build
191 parameters for SMC Fuzzer tool.
192
193Cactus (Secure-EL1 test partition)
194~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
195
196 - Added helper for Cactus SP sleep.
197 - Added test commands to request use of notifications interfaces.
198 - Added several commands that generate direct message requests to assist in
199 testing secure interrupt handling and notifications features in FF-A v1.1
200 - Added support for SP805 Trusted Watchdog module.
201
202Ivy (Secure-EL1 test partition)
203~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
204
205 - Add shim layer to Ivy partition and enable PIE.
206 - Define Ivy partition manifest and use FF-A for message handling.
207 - Prepare S-EL1/0 enviroment for enabling S-EL0 application.
208
209Realm Management Extension(RME)
210~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
211
212 - Added tests to run RMI and SPM on multiple CPUs concurrently.
213 - Added tests for multi CPU delegation and fail conditions.
214 - Added tests to query RMI version on multiple CPUs.
215
216Issues resolved since last release
217^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
218
219 - Fixed Ivy partition start address for TC0.
220 - Fixed SP manifests to use little endian format UUID.
221 - Fixed a bug in memory sharing test for Cactus SP.
222 - Invalidate data cache for NS_BL1U and NS_BL2U images.
223 - Fixed attributes to Read-Write only for memory regions described in partition
224 manifests.
225
Bipin Ravi5a312972021-05-06 14:32:52 -0500226Version 2.5
227-----------
228
229New features
230^^^^^^^^^^^^
231- More tests are made available in this release to help validate the
232 functionalities in the following areas:
233 - True Random Number Generator (TRNG) test scenarios.
234 - Multicore / Power State Controller Interface (PSCI) tests.
235 - v8.6 Activity Monitors Unit (AMU) enhancements test scenarios.
236 - Secure Partition Manager (SPM) / Firmware Framework (FF-A) v1.0 testing.
237 - Interrupt Handling between Non-secure and Secure world.
238 - Direct messages and memory sharing between Secure Partitions(SP).
239 - Many tests to exercise FF-A v1.0 ABIs.
240 - SPM saving/restoring the NS SIMD context enabling a normal world FF-A
241 endpoint (TFTF) and a secure partition to use SIMD vectors and
242 instructions independently.
243
244TFTF
245~~~~
246
247- SPM / FF-A v1.0 testing.
248 - Refactor FF-A memory sharing tests
249 - Created helper functions to initialize ffa_memory_region and to send
250 the respective memory region to the SP, making it possible to reuse
251 the logic in SP-to-SP memory share tests.
252 - Added comments to document relevant aspects about memory sharing.
253
254 - Trigger direct messaging between SPs.
255 - Use cactus command 'CACTUS_REQ_ECHO_SEND_CMD' to make cactus SPs
256 communicate with each other using direct message interfaces.
257
258 - Added helpers for SPM tests.
259 - Checking SPMC has expected FFA_VERSION.
260 - Checking that expected FF-A endpoints are deployed in the system.
261 - Getting global TFTF mailbox.
262
263- Replace '.inst' AArch64 machine directives with CPU Memory Tagging Extension
264 instructions in 'test_mte_instructions' function.
265
266- Add build option for Arm Feature Modifiers.
267 - This patch adds a new ARM_ARCH_FEATURE build option to add support
268 for compiler's feature modifiers.
269
270- Enable 8 cores support for Theodul DSU(DynamIQ Shared Unit) for the
271 Total Compute (TC0) platform.
272
273- New tests:
274
275 - Remove redundant code and add better tests for TRNG SMCs.
276 - Tests that the Version, Features, and RND calls conform to the spec.
277
278 - New tests for v8.6 AMU enhancements (FEAT_AMUv1p1)
279 - Make sure AMU offsets are being saved and restored properly.
280
281 - Tests to request SP-to-SP memory share.
282
283 - SP-to-SP direct messaging deadlock test.
284 - TFTF sends CACTUS_REQ_DEADLOCK_CMD to cactus SP.
285
286Cactus(Secure-EL1 test partition)
287~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
288
289- Enable managed exit for primary cactus secure partition.
290
291- Helper commands needed for interrupt testing.
292
293- Add handler from managed exit FIQ interrupt.
294
295- Make ffa_id global.
296
297- Implement HF_INTERRUPT_ENABLE Hafnium hypervisor call wrapper. With this
298 service, a secure partition calls into the SPMC to enable/disable a
299 particular virtual interrupt.
300
301- Invalidate the data cache for the cactus image.
302
303- Helper commands needed for interrupt testing.
304 - CACTUS_SLEEP_CMD & CACTUS_INTERRUPT_CMD added.
305
306- Decouple exception handling from tftf framework.
307 - With new interrupt related tests coming up in Cactus, added separate
308 exception handler code for irq/fiq in Cactus.
309
310- Hypervisor calls moved to a separate module.
311
312- Add secondary entry point register function.
313
314- Declare third SP instance as UP SP.
315
316- Provision a cold boot path for secondary cores (or secondary pinned
317 execution contexts).
318
319- Tidy message loop, commands definitions, direct messaging API definitions.
320
321- Helpers for error logging after FF-A calls.
322
323- Properly placing Cactus test files.
324
325- Tidying FF-A Memory Sharing tests.
326
327- Use CACTUS_ECHO_CMD in direct message tests.
328
329- Refactor handling of commands.
330 - Added helper macros to define a command handler, build a command table
331 in which each element is a pair of the handler and respective command
332 ID. Available tests have been moved to their own command handler.
333
334- Extend arguments in commands responses.
335 - In the test commands framework, added template to extend number of
336 values to include in a command response.
337
338- Check FF-A return is a valid direct response.
339 - Added a helper function to check if return of FFA_MSG_SEND_DIRECT_REQ
340 is FFA_MSG_SEND_DIRECT_RESP.
341
342- FFA_MSG_DIRECT_RESP call extended to use 5 registers.
343
344- Added accessors for arguments from FF-A calls.
345 - Some accessors for arguments from FF-A calls, namely for func id, error
346 code, and direct message destination/source.
347
348- Use virtual counter for sp_sleep.
349 - Changes sp_sleep() to use virtual counter instead of physical counter.
350
351- Checks if SIMD vectors are preserved in the normal world while transitioning
352 from normal world to secure world and back to normal world.
353
354- Tidying common code to tftf and cactus.
355
356- Refactor cactus_test_cmds.h to incorporate static inline functions instead
357 of macros to enforce type checking.
358
359- Removed reference to Hafnium in name from helper function and macro to
360 make them generic.
361
362- For consistency added the cmd id 'CACTUS_MEM_SEND_CMD'.
363
364- Add command to request memory sharing between SPs.
365
366- Add & handle commands 'CACTUS_REQ_ECHO_CMD' and 'CACTUS_ECHO_CMD'.
367
368- Update README with list of sample partitions.
369
370- Remove reference to PSA from xml test file.
371
372- Reduce tests verbosity in release mode.
373 - Update few NOTICE messages to VERBOSE/INFO.
374
375- Fix conversion issues on cactus responses.
376
377- Create RXTX map/configure helper macros and use them.
378
379- Update OP-TEE version used for testing to 3.10.
380 - SPMC as S-EL1 tests using OP-TEE depend on a static binary stored as
381 a CI file. This binary corresponds to a build of OP-TEE v3.10.
382
383- Add uart2 to device-regions node.
384 - First SP no longer has an open access to the full system peripheral
385 range and devices must be explicitly declared in the SP manifest.
386
387- New tests:
388
389 - Test for exercising SMMUv3 driver to perform stage2 translation.
390
391 - Test handling of non-secure interrupt while running SP.
392
393 - Add secondary cores direct messaging test for SPM.
394
395 - Testing deadlock by FF-A direct message.
396 - Added command CACTUS_DEADLOCK_CMD to file cactus_test_cmds.h to create
397 a deadlock scenario using FF-A direct message interfaces.
398
399 - Test SP-to-SP memory share operations
400 - Handle 'CACTUS_REQ_MEM_SEND_CMD' by sending memory to the receiver SP.
401
402 - Implemented test to validate FFA_RXTX_MAP ABI.
403
Manish V Badarkheab787a52020-10-04 18:33:44 +0100404Version 2.4
405-----------
406
407New features
408^^^^^^^^^^^^
409- More tests are made available in this release to help validate the
410 functionalities in the following areas:
411 - SMCCC.
412 - New architecture specific features.
413 - FF-A features.
414 - New platform ports.
415
416- Various improvements to test framework and test suite such as documentation,
417 removing un-necessary dependencies, etc.
418
419TFTF
420~~~~
421
422- Remove dependencies from FVP to generic code by converting some FVP platform
423 specific macros to the common macros.
424
425- Remove make as a package dependency to compile TF-A test code.
426
427- Move defaults values and macro defs in a separate folder from Makefile.
428
429- Allow alternate stdout to be used apart from pl011 UART.
430
431- Get FVP platform's topology from build options to make FVP platform
432 configuration more flexible and eliminate test errors when the platform
433 is configured with number of CPUs less than default values in the makefile.
434
435- Update the FIP corrupt address which is used to corrupt BL2 image that helps
436 to trigger firmware update process.
437
438- Add explicit barrier before sev() in tftf_send_event_common API to avoid
439 core hang.
440
441- Align output properly on issuing make help_tests by removing dashes
442 and sort tests.
443
444- Moved a few FVP and Juno specific defined from common header files to platform
445 specific header files.
446
447- Replace SPCI with PSA FF-A in code as SPCI is now called as FF-A.
448
449- Add owner field to sp_layout generation to differentiate owner of SP which
450 could either be Silicon Provider or Platform provider.
451
452- Add v8.5 Branch Target Identifier(BTI) support in TFTF.
453
454- Remove dependency on SYS_CNT_BASE1 to read the memory mapped timers.
455
456- Enables SError aborts for all CPUs, during their power on sequence.
457
458- Documentation:
459
460 - Use conditional assignment on sphinx variables so that they can be
461 overwritten by environment and/or command line.
462
463 - Add support for documentation build as a target in Makefile.
464
465 - Update list of maintainers.
466
467 - Update documentation to explain how to locally build the documentation.
468
469 - Add .editorconfig from TF-A to define the coding style.
470
471 - Fix documentation to include 'path/to' prefix when specifying tftf.bin on
472 make fip cmd.
473
474 - Use docker to build documentation.
475
476 - Replace SPCI with PSA FF-A in documentation as SPCI is now called
477 as FF-A.
478
479- NVIDIA Tegra194:
480
481 - Skip CPU suspend tests requiring SGI as wake source as Tegra194 platforms
482 do not support CPU suspend power down and cannot be woken up with an SGI.
483
484 - Disable some system suspend test cases.
485
486 - Create dummy SMMU context for system resume to allow the System Resume
487 Firmware to complete without any errors or warnings.
488
489 - Increase RTC step value to 5ms as RTC consumes 250us for each register
490 read/write. Increase the step value to 5ms to cover all the register
491 read/write in program_timer().
492
493 - Skip some timer framework validation tests as CPUs on Tegra194 platforms
494 cannot be woken up with the RTC timer interrupt after power off.
495
496 - Introduce per-CPU Hypervisor Timer Interrupt ID.
497
498 - Skip PSCI STAT tests requiring PSTATE_TYPE_POWERDOWN as Tegra194 platforms
499 do not support CPU suspend with state type as PSTATE_TYPE_POWERDOWN.
500
501 - Disable boot requirement tests as Tegra194 platforms do not support memory
502 mapped timers.
503
504 - Skips the test "Create all power states and validate EL3 power state parsing"
505 from the "EL3 power state parser validation" test suite as it is not in
506 sync with this expectation.
507
508 - Moved reset, timers. wake, watchdog drivers from Tegra194 specific folder to
509 common driver folder so that these drivers can be used for other NVIDIA platforms.
510
511- New tests:
512
513 - Add test for SDEI RM_ANY routing mode.
514
515 - Add initial platform support for TC0.
516
517 - Add SMC fuzzing module test.
518
519 - Add test case for SMCCC_ARCH_SOC_ID feature.
520
521 - Add test that supports ARMv8.6-FGT in TF-A.
522
523 - Add test that supports ARMv8.6-ECV in TF-A.
524
525 - Add test for FFA_VERSION interface.
526
527 - Add test for FFA_FEATURES interface.
528
529 - Add console driver for the TI UART 16550.
530
531 - Add tests for FF-A memory sharing interfaces between tftf
532 and cactus secure partitions.
533
534 - NVIDIA Tegra194:
535
536 - Introduce platform port for Tegra194 to to initialize the tftf
537 framework and execute tests on the CPUs.
538
539 - Introduce power management support.
540
541 - Introduce support for RTC as wake source.
542
543 - Introduce system reset functionality test.
544
545 - Introduce watchdog timer test.
546
547 - Introduce support for NVIDIA Denver CPUs.
548
549 - Introduce RAS uncorrectable error injection test.
550
551 - Introduce tests to verify the Video Memory resize interface.
552
553 - Introduce test to inject RAS corrected errors for all supported
554 nodes from all CPUs.
555
556 - Introduce a test to get return value from SMC SiP function
557 TEGRA_SIP_GET_SMMU_PER.
558
559 - NVIDIA Tegra196:
560
561 - Introduce initial support for Tegra186 platforms.
562
563 - NVIDIA Tegra210:
564
565 - Introduce initial support for Tegra210 platforms.
566
567Secure partition - Cactus
568~~~~~~~~~~~~~~~~~~~~~~~~~
569
570- TFTF doesn't need to boot Secondary Cactus as Hafnium now boots all
571 partitions according to "boot-order" field value in the partition
572 manifests.
573
574- Remove test files related to deprecated SPCI Alpha specification and
575 SPRT interface.
576
577- Select different stdout device at runtime as primary VM can access
578 to UART while secondary VM's use hypervisor call to SPM for debug
579 logging.
580
581- An SP maps its RX/TX buffers in its EL1&0 Stage-1 translation regime.
582 The same RX/TX buffers are mapped by the SPMC in the SP's EL1&0
583 Stage-2 translation regime during boot time.
584
585- Update memory/device region nodes in manifest. Memory region has 3
586 entries such as RX buffer, TX buffer and dummy. These memory region
587 entries are mapped with attributes as "RX buffer: read-only",
588 "TX buffer: read-write" and "dummy: read-write-execute".
589 Device region mapped with read-write attribute.
590
591- Create tertiary partition without RX_TX region specified to test the
592 RXTX_MAP API.
593
594- Add third partition to ffa_partition_info_get test to test that a
595 partition can successfully get information about the third cactus
596 partition.
597
598- Map RXTX region to third partition to point the mailbox to this RXTX
599 region.
600
601- Adjust the number of EC context to max number of PEs as per the FF-A
602 specification mandating that a SP must either "Implement as many ECs
603 as the number of PEs (in case of a "multi-processor" SP with pinned
604 contexts)" or "Implement a single EC (in case of a migratable
605 "uni-processor" SP).
606
607- Updated cactus test payload and TFTF ids as it is decided to have
608 secure partition FF-A ids in the range from 0x8001 to 0xfffe, 0x8000
609 and 0xffff FF-A ids are reserved for the SPMC and the SPMD respectively
610 and in the non-secure worlds, FF-A id 0 is reserved for the hypervisor
611 and 1 to 0x7fff FF-A ids are reserved for VMs.
612
613- Break the message loop on bad message request instead of replying
614 with the FF-A error ABI to the SPMC.
615
616- Remove deprecated hypervisor calls spm_vm_get_count and spm_vcpu_get_count.
617 Instead use FFA_PARTITION_INFO_GET discovery ABI.
618
619- Implement hvc call 'SPM_INTERRUPT_GET' to get interrupt id.
620
621- Re-structure platform dependent files by moving platform dependent files
622 and macros to platform specific folder.
623
624- Adjust partition info get properties to support receipt of direct
625 message request.
626
627- New tests:
628
629 - Add FFA Version Test.
630
631 - Add FFA_FEATURES test.
632
633 - Add FFA_MEM_SHARE test
634
635 - Add FFA_MEM_LEND test.
636
637 - Add FFA_MEM_DONATE test.
638
639 - Add FFA_PARTITION_INFO_GET test.
640
641 - Add exception/interrupt framework.
642
643 - Add cactus support for TC0 platform.
644
645Issues resolved since last release
646^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
647
648- Update link to SMCCC specification.
649
650- Trim down the top-level readme file to give brief overview of the project
651 and also fix/update a number of broken/out-dated links in it.
652
653- Bug fix in Multicore IRQ spurious test.
654
655- Fix memory regions mapping with no NS bit set.
656
657- Reenable PSCI NODE_HW_STATE test which was disabled earlier due to
658 outdated SCP firmware.
659
660- Fix Aarch32 zeromem() function by avoiding infinite loop in 'zeromem'
661 function and optimizing 'memcpy4' function.
662
663- Add missing help_tests info on help target in the top-level Makefile.
664
665- Trim down the readme file as it does not need to provide detailed
666 information, instead it can simply be a landing page providing a brief
667 overview of the project and redirecting the reader to RTD for further
668 information.
669
670- Fix maximum number of CPUs in DSU cluster by setting maximum number of CPUs
671 in DSU cluster to 8.
672
Madhukar Pappireddyfbac3db2020-04-08 15:44:38 -0500673Version 2.3
674-----------
675
676New features
677^^^^^^^^^^^^
678
679- More tests are made available in this release to help validate
680 the functionality of TF-A.
681
682- CI upgraded to use GCC 9.2-2019.12 toolchain for tf-a-tests.
683
684- Various improvements to test framework and test suite.
685
686TFTF
687~~~~
688
689- Support for extended register usage as per SMCCC v1.2 specification.
690
691- Support for FVP platforms with SMT capabilities.
692
693- Improved support for documentation through addition of basic Sphinx
694 configuration and Makefile similar to TF-A repository.
695
696- Enhancement to libc library synchronous to TF-A code base.
697
698- ARMv8.3-PAuth enabled for all FWU tests in TFTF.
699
700- TFTF made RFC 4122 compliant by converting UUIDs to network order format.
701
702- Build improvement by deprecating custom AARCH64/AARCH32 macros in favor of
703 __arch64__ macro provided by compiler.
704
705- Support for HVC as a SMCCC conduit in TFTF.
706
707- New tests:
708
709 - AArch32 tests for checking if PMU counters leak in secure world.
710
711 - Add new debug filesystem (debugfs) test.
712
713 - Add a SPCI direct messaging test targeting bare-metal cactus SP.
714
715
716Secure partitions
717~~~~~~~~~~~~~~~~~
718
719Cactus
720~~~~~~
721
722- Several build improvements and symbol relocation fixup to make it position
723 independent executable.
724
725- Update of sample manifest to SPCI Beta1 format.
726
727- Support for generating JSON file as required by TF-A.
728
729Issues resolved since last release
730^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
731
732- Makefile bug fix for performing parallel builds.
733
734- Add missing D-cache invalidation of RW memory in tftf_entrypoint to safeguard
735 against possible corruption.
736
737- Fixes in GIC drivers to support base addresses beyond 4G range.
738
739- Fix build with XML::LibXML 2.0202 Perl module
740
741Known issues and limitations
742^^^^^^^^^^^^^^^^^^^^^^^^^^^^
743
744The sections below list the known issues and limitations of each test image
745provided in this repository. Unless and otherwise stated, issues and limitations
746stated in previous release continue to exist in this release.
747
748TFTF
749~~~~
750- NODE_HW_STATE test has been temporarily disabled for sgi575 platform due to a
751 dependency on SCP binaries version 2.5
752
Paul Beesley24a6bd62019-10-24 11:57:00 +0000753Version 2.2
754-----------
Madhukar Pappireddy482079d2019-10-10 02:30:40 -0500755
756New features
Paul Beesley24a6bd62019-10-24 11:57:00 +0000757^^^^^^^^^^^^
Madhukar Pappireddy482079d2019-10-10 02:30:40 -0500758
759- A wide range of tests are made available in this release to help validate
760 the functionality of TF-A.
761
762- Various improvements to test framework and test suite.
763
764TFTF
Paul Beesley24a6bd62019-10-24 11:57:00 +0000765~~~~
Madhukar Pappireddy482079d2019-10-10 02:30:40 -0500766
767- Enhancement to xlat table library synchronous to TF-A code base.
768
769- Enabled strict alignment checks (SCTLR.A & SCTLR.SA) in all images.
770
771- Support for a simple console driver. Currently it serves as a placeholder
772 with empty functions.
773
774- A topology helper API is added in the framework to get parent node info.
775
776- Support for FVP with clusters having upto 8 CPUs.
777
778- Enhanced linker script to separate code and RO data sections.
779
780- Relax SMC calls tests. The SMCCC specification recommends Trusted OSes to
781 mitigate the risk of leaking information by either preserving the register
782 state over the call, or returning a constant value, such as zero, in each
783 register. Tests only allowed the former behaviour and have been extended to
784 allow the latter as well.
785
786- Pointer Authentication enabled on warm boot path with individual APIAKey
787 generation for each CPU.
788
789- New tests:
790
791 - Basic unit tests for xlat table library v2.
792
793 - Tests for validating SVE support in TF-A.
794
795 - Stress tests for dynamic xlat table library.
796
797 - PSCI test to measure latencies when turning ON a cluster.
798
799 - Series of AArch64 tests that stress the secure world to leak sensitive
800 counter values.
801
802 - Test to validate PSCI SYSTEM_RESET call.
803
804 - Basic tests to validate Memory Tagging Extensions are being enabled and
805 ensuring no undesired leak of sensitive data occurs.
806
807- Enhanced tests:
808
809 - Improved tests for Pointer Authentication support. Checks are performed
810 to see if pointer authentication keys are accessible as well as validate
811 if secure keys are being leaked after a PSCI version call or TSP call.
812
813 - Improved AMU test to remove unexecuted code iterating over Group1 counters
814 and fix the conditional check of AMU Group0 counter value.
815
816Secure partitions
Paul Beesley24a6bd62019-10-24 11:57:00 +0000817~~~~~~~~~~~~~~~~~
Madhukar Pappireddy482079d2019-10-10 02:30:40 -0500818
819A new Secure Partition Quark is introduced in this release.
820
821Quark
Paul Beesley24a6bd62019-10-24 11:57:00 +0000822~~~~~
Madhukar Pappireddy482079d2019-10-10 02:30:40 -0500823
824The Quark test secure partition provided is a simple service which returns a
825magic number. Further, a simple test is added to test if Quark is functional.
826
827Issues resolved since last release
Paul Beesley24a6bd62019-10-24 11:57:00 +0000828^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Madhukar Pappireddy482079d2019-10-10 02:30:40 -0500829
830- Bug fix in libc memchr implementation.
831
832- Bug fix in calculation of number of CPUs.
833
834- Streamlined SMC WORKAROUND_2 test and fixed a false fail on Cortex-A76 CPU.
835
836- Pointer Authentication support is now available for secondary CPUs and the
837 corresponding tests are stable in this release.
838
839Known issues and limitations
Paul Beesley24a6bd62019-10-24 11:57:00 +0000840^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Madhukar Pappireddy482079d2019-10-10 02:30:40 -0500841
842The sections below list the known issues and limitations of each test image
843provided in this repository. Unless and otherwise stated, issues and limitations
844stated in previous release continue to exist in this release.
845
846TFTF
Paul Beesley24a6bd62019-10-24 11:57:00 +0000847~~~~
Madhukar Pappireddy482079d2019-10-10 02:30:40 -0500848- Multicore spurious interrupt test is observed to have unstable behavior. As a
849 temporary solution, this test is skipped for AArch64 Juno configurations.
850
851- Generating SVE instructions requires `O3` compilation optimization. Since the
852 current build structure does not allow compilation flag modification for
853 specific files, the function which tests support for SVE has been pre-compiled
854 and added as an assembly file.
855
856
Sandrine Bailleux8cd3cb82019-03-28 09:34:55 +0100857
Paul Beesley24a6bd62019-10-24 11:57:00 +0000858Version 2.1
859-----------
Sandrine Bailleux8cd3cb82019-03-28 09:34:55 +0100860
861New features
Paul Beesley24a6bd62019-10-24 11:57:00 +0000862^^^^^^^^^^^^
Sandrine Bailleux8cd3cb82019-03-28 09:34:55 +0100863
864- Add initial support for testing Secure Partition Client Interface (SPCI)
865 and Secure Partition Run-Time (SPRT) standards.
866
867 Exercise the full communication flow throughout the software stack, involving:
868
869 - A Secure-EL0 test partition as the Trusted World agent.
870
871 - TFTF as the Normal World agent.
872
873 - The Secure Partition Manager (SPM) in TF-A.
874
875- Various stability improvements, code refactoring and clean ups.
876
877TFTF
Paul Beesley24a6bd62019-10-24 11:57:00 +0000878~~~~
Sandrine Bailleux8cd3cb82019-03-28 09:34:55 +0100879
880- Reorganize tests build infrastructure to allow the selection of a subset of
881 tests.
882
883- Reorganize the platform layer for improved clarity and simplicity.
884
885- Sanitise inclusion of drivers header files.
886
887- Enhance the test report format for improved clarity and conciseness.
888
889- Dump CPU registers when hitting an unexpected exception. Previously, this
890 would silently loop forever.
891
892- Import libc from TF-A to better align the two code bases.
893
894- New tests:
895
896 - SPM tests for exercising communication through either the MM or SPCI/SPRT
897 interfaces.
898
899 - SMC calling convention tests.
900
901 - Initial tests for Armv8.3 Pointer Authentication support (experimental).
902
903- New platform ports:
904
905 - `Arm SGI-575`_ FVP.
906
907 - Hikey960 board (experimental).
908
909 - `Arm Neoverse Reference Design N1 Edge (RD-N1-Edge)`_ FVP (experimental).
910
911Secure partitions
Paul Beesley24a6bd62019-10-24 11:57:00 +0000912~~~~~~~~~~~~~~~~~
Sandrine Bailleux8cd3cb82019-03-28 09:34:55 +0100913
914We now have 3 Secure Partitions to test the SPM implementation in TF-A.
915
916Cactus-MM
917'''''''''
918
919The Cactus test secure partition provided in version 2.0 has been renamed into
920"*Cactus-MM*". It is still responsible for testing the SPM implementation based
921on the Arm Management Mode Interface.
922
923Cactus
924''''''
925
926This is a new test secure partition (as the former "*Cactus*" has been renamed
927into "*Cactus-MM*", see above).
928
929Unlike *Cactus-MM*, this image tests the SPM implementation based on the SPCI
930and SPRT draft specifications.
931
932It runs in Secure-EL0 and performs the following tasks:
933
934- Test that TF-A has correctly setup the secure partition environment (access
935 to cache maintenance operations, to floating point registers, etc.)
936
937- Test that TF-A accepts to change data access permissions and instruction
938 permissions on behalf of Cactus for memory regions the latter owns.
939
940- Test communication with SPM through SPCI/SPRT interfaces.
941
942Ivy
943'''
944
945This is also a new test secure partition. It is provided in order to test
946multiple partitions support in TF-A. It is derived from Cactus and essentially
947provides the same services but with different identifiers at the moment.
948
949EL3 payload
Paul Beesley24a6bd62019-10-24 11:57:00 +0000950~~~~~~~~~~~
Sandrine Bailleux8cd3cb82019-03-28 09:34:55 +0100951
952- New platform ports:
953
954 - `Arm SGI-575`_ FVP.
955
956 - `Arm Neoverse Reference Design N1 Edge (RD-N1-Edge)`_ FVP (experimental).
957
958Issues resolved since last release
Paul Beesley24a6bd62019-10-24 11:57:00 +0000959^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Sandrine Bailleux8cd3cb82019-03-28 09:34:55 +0100960
961- The GICv2 spurious IRQ test is no longer Juno-specific. It is now only
962 GICv2-specific.
963
964- The manual tests in AArch32 state now work properly. After investigation,
965 we identified that this issue was not AArch32 specific but concerned any
966 test relying on state information persisting across reboots. It was due to
967 an incorrect build configuration.
968
969- Cactus-MM now successfully links with GNU toolchain 7.3.1.
970
971Known issues and limitations
Paul Beesley24a6bd62019-10-24 11:57:00 +0000972^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Sandrine Bailleux8cd3cb82019-03-28 09:34:55 +0100973
974The sections below lists the known issues and limitations of each test image
975provided in this repository.
976
977TFTF
Paul Beesley24a6bd62019-10-24 11:57:00 +0000978~~~~
Sandrine Bailleux8cd3cb82019-03-28 09:34:55 +0100979
980The TFTF test image might be conceptually sub-divided further in 2 parts: the
981tests themselves, and the test framework they are based upon.
982
983Test framework
Paul Beesley24a6bd62019-10-24 11:57:00 +0000984~~~~~~~~~~~~~~
Sandrine Bailleux8cd3cb82019-03-28 09:34:55 +0100985
986- Some stability issues.
987
988- No mechanism to abort tests when they time out (e.g. this could be
989 implemented using a watchdog).
990
991- No convenient way to include or exclude tests on a per-platform basis.
992
993- Power domains and affinity levels are considered equivalent but they may
994 not necessarily be.
995
996- Need to provide better support to alleviate duplication of test code. There
997 are some recurrent test patterns for which helper functions should be
998 provided. For example, bringing up all CPUs on the platform and executing the
999 same function on all of them, or programming an interrupt and waiting for it
1000 to trigger.
1001
1002- Every CPU that participates in a test must return from the test function. If
1003 it does not - e.g. because it powered itself off for testing purposes - then
1004 the test framework will wait forever for this CPU. This limitation is too
1005 restrictive for some tests.
1006
1007- No protection against interrupted flash operations. If the target is reset
1008 while some data is written to flash, the test framework might behave
1009 incorrectly on reset.
1010
1011- When compiling the code, if the generation of the ``tests_list.c`` and/or
1012 ``tests_list.h`` files fails, the build process is not aborted immediately
1013 and will only fail later on.
1014
1015- The directory layout requires further improvements. Most of the test
1016 framework code has been moved under the ``tftf/`` directory to better isolate
1017 it but this effort is not complete. As a result, there are still some TFTF
1018 files scattered around.
1019
1020- Pointer Authentication testing is experimental and incomplete at this stage.
1021 It is only enabled on the primary CPU on the cold boot.
1022
1023Tests
Paul Beesley24a6bd62019-10-24 11:57:00 +00001024~~~~~
Sandrine Bailleux8cd3cb82019-03-28 09:34:55 +01001025
1026- Some tests are implemented for AArch64 only and are skipped on AArch32.
1027
1028- Some tests are not robust enough:
1029
1030 - Some tests might hang in some circumstances. For example, they might wait
1031 forever for a condition to become true.
1032
1033 - Some tests rely on arbitrary time delays instead of proper synchronization
1034 when executing order-sensitive steps.
1035
1036 - Some tests have been implemented in a practical manner: they seem to work
1037 on actual hardware but they make assumptions that are not guaranteed by
1038 the Arm architecture. Therefore, they might fail on some other platforms.
1039
1040- PSCI stress tests are very unreliable and will often hang. The root cause is
1041 not known for sure but this might be due to bad synchronization between CPUs.
1042
1043- The GICv2 spurious IRQ test sometimes fails with the following error message:
1044
1045 ``SMC @ lead CPU returned 0xFFFFFFFF 0x8 0xC``
1046
1047 The root cause is unknown.
1048
1049- The FWU tests take a long time to complete. This is because they wait for the
1050 watchdog to reset the system. On FVP, TF-A configures the watchdog period to
1051 about 4 min. This limit is excessive for an automated testing context and
1052 leaves the user without feedback and unable to determine if the tests are
1053 proceeding properly.
1054
1055- The test "Target timer to a power down cpu" sometimes fails with the
1056 following error message:
1057
1058 ``Expected timer switch: 4 Actual: 3``
1059
1060 The root cause is unknown.
1061
1062FWU images
Paul Beesley24a6bd62019-10-24 11:57:00 +00001063~~~~~~~~~~
Sandrine Bailleux8cd3cb82019-03-28 09:34:55 +01001064
1065- The FWU tests do not work on the revC of the Base AEM FVP. They only work on
1066 the revB.
1067
1068- NS-BL1U and NS-BL2U images reuse TFTF-specific code for legacy reasons. This
1069 is not a clean design and may cause confusion.
1070
1071Test secure partitions (Cactus, Cactus-MM, Ivy)
Paul Beesley24a6bd62019-10-24 11:57:00 +00001072~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sandrine Bailleux8cd3cb82019-03-28 09:34:55 +01001073
1074- This is experimental code. It's likely to change a lot as the secure
1075 partition software architecture evolves.
1076
1077- Supported on AArch64 FVP platform only.
1078
1079All test images
Paul Beesley24a6bd62019-10-24 11:57:00 +00001080~~~~~~~~~~~~~~~
Sandrine Bailleux8cd3cb82019-03-28 09:34:55 +01001081
1082- TF-A Tests are derived from a fork of TF-A so:
1083
1084 - they've got some code in common but lag behind on some features.
1085
1086 - there might still be some irrelevant references to TF-A.
1087
1088- Some design issues.
1089 E.g. TF-A Tests inherited from the I/O layer of TF-A, which still needs a
1090 major rework.
1091
1092- Cannot build TF-A Tests with Clang. Only GCC is supported.
1093
1094- The build system does not cope well with parallel building. The user should
1095 not attempt to run multiple jobs in parallel with the ``-j`` option of `GNU
1096 make`.
1097
1098- The build system does not properly track build options. A clean build must be
1099 performed every time a build option changes.
1100
1101- UUIDs are not compliant to RFC 4122.
1102
1103- No floating point support. The code is compiled with GCC flag
1104 ``-mgeneral-regs-only``, which prevents the compiler from generating code
1105 that accesses floating point registers. This might limit some test scenarios.
1106
1107- The documentation is too lightweight.
1108
1109- Missing instruction barriers in some places before reading the system counter
1110 value. As a result, the CPU could speculatively read it and any delay loop
1111 calculations might be off (because based on stale values). We need to examine
1112 all such direct reads of the ``CNTPCT_EL0`` register and replace them with a
1113 call to ``syscounter_read()`` where appropriate.
1114
Paul Beesley24a6bd62019-10-24 11:57:00 +00001115Version 2.0
1116-----------
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +02001117
1118New features
Paul Beesley24a6bd62019-10-24 11:57:00 +00001119^^^^^^^^^^^^
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +02001120
1121This is the first public release of the Trusted Firmware-A Tests source code.
1122
1123TFTF
Paul Beesley24a6bd62019-10-24 11:57:00 +00001124~~~~
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +02001125
1126- Provides a baremetal test framework to exercise TF-A features through its
1127 ``SMC`` interface.
1128
1129- Integrates easily with TF-A: the TFTF binary is packaged in the FIP image
1130 as a ``BL33`` component.
1131
1132- Standalone binary that runs on the target without human intervention (except
1133 for some specific tests that require a manual target reset).
1134
1135- Designed for multi-core testing. The various sub-frameworks allow maximum
1136 parallelism in order to stress the firmware.
1137
1138- Displays test results on the UART output. This may then be parsed by an
1139 external tool and integrated in a continuous integration system.
1140
1141- Supports running in AArch64 (NS-EL2 or NS-EL1) and AArch32 states.
1142
1143- Supports parsing a tests manifest (XML file) listing the tests to include in
1144 the binary.
1145
1146- Detects most platform features at run time (e.g. topology, GIC version, ...).
1147
1148- Provides a topology enumeration framework. Allows tests to easily go through
1149 affinity levels and power domain nodes.
1150
1151- Provides an event framework to synchronize CPU operations in a multi-core
1152 context.
1153
1154- Provides a timer framework. Relies on a single global timer to generate
1155 interrupts for all CPUs in the system. This allows tests to easily program
1156 interrupts on demand to use as a wake-up event source to come out of CPU
1157 suspend state for example.
1158
1159- Provides a power-state enumeration framework. Abstracts the valid power
1160 states supported on the platform.
1161
1162- Provides helper functions for power management operations (CPU hotplug,
1163 CPU suspend, system suspend, ...) with proper saving of the hardware state.
1164
1165- Supports rebooting the platform at the end of each test for greater
1166 independence between tests.
1167
1168- Supports interrupting and resuming a test session. This relies on storing
1169 test results in non-volatile memory (e.g. flash).
1170
1171FWU images
Paul Beesley24a6bd62019-10-24 11:57:00 +00001172~~~~~~~~~~
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +02001173
1174- Provides example code to exercise the Firmware Update feature of TF-A.
1175
1176- Tests the robustness of the FWU state machine implemented in the TF-A by
1177 sending valid and invalid authentication, copy and image execution requests
1178 to the TF-A BL1 image.
1179
1180EL3 test payload
Paul Beesley24a6bd62019-10-24 11:57:00 +00001181~~~~~~~~~~~~~~~~
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +02001182
1183- Tests the ability of TF-A to load an EL3 payload.
1184
1185Cactus test secure partition
Paul Beesley24a6bd62019-10-24 11:57:00 +00001186~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +02001187
1188- Tests that TF-A has correctly setup the secure partition environment: it
1189 should be allowed to perform cache maintenance operations, access floating
1190 point registers, etc.
1191
1192- Tests the ability of a secure partition to request changing data access
1193 permissions and instruction permissions of memory regions it owns.
1194
1195- Tests the ability of a secure partition to handle StandaloneMM requests.
1196
1197Known issues and limitations
Paul Beesley24a6bd62019-10-24 11:57:00 +00001198^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +02001199
1200The sections below lists the known issues and limitations of each test image
1201provided in this repository.
1202
1203TFTF
Paul Beesley24a6bd62019-10-24 11:57:00 +00001204~~~~
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +02001205
1206The TFTF test image might be conceptually sub-divided further in 2 parts: the
1207tests themselves, and the test framework they are based upon.
1208
1209Test framework
Paul Beesley24a6bd62019-10-24 11:57:00 +00001210~~~~~~~~~~~~~~
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +02001211
1212- Some stability issues.
1213
1214- No mechanism to abort tests when they time out (e.g. this could be
1215 implemented using a watchdog).
1216
1217- No convenient way to include or exclude tests on a per-platform basis.
1218
1219- Power domains and affinity levels are considered equivalent but they may
1220 not necessarily be.
1221
1222- Need to provide better support to alleviate duplication of test code. There
1223 are some recurrent test patterns for which helper functions should be
1224 provided. For example, bringing up all CPUs on the platform and executing the
1225 same function on all of them, or programming an interrupt and waiting for it
1226 to trigger.
1227
1228- Every CPU that participates in a test must return from the test function. If
1229 it does not - e.g. because it powered itself off for testing purposes - then
1230 the test framework will wait forever for this CPU. This limitation is too
1231 restrictive for some tests.
1232
1233- No protection against interrupted flash operations. If the target is reset
1234 while some data is written to flash, the test framework might behave
1235 incorrectly on reset.
1236
1237- When compiling the code, if the generation of the tests_list.c and/or
1238 tests_list.h files fails, the build process is not aborted immediately and
1239 will only fail later on.
1240
1241- The directory layout is confusing. Most of the test framework code has been
1242 moved under the ``tftf/`` directory to better isolate it but this effort is
1243 not complete. As a result, there are still some TFTF files scattered around.
1244
1245Tests
Paul Beesley24a6bd62019-10-24 11:57:00 +00001246~~~~~
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +02001247
1248- Some tests are implemented for AArch64 only and are skipped on AArch32.
1249
1250- Some tests are not robust enough:
1251
1252 - Some tests might hang in some circumstances. For example, they might wait
1253 forever for a condition to become true.
1254
1255 - Some tests rely on arbitrary time delays instead of proper synchronization
1256 when executing order-sensitive steps.
1257
1258 - Some tests have been implemented in a practical manner: they seem to work
1259 on actual hardware but they make assumptions that are not guaranteed by
1260 the Arm architecture. Therefore, they might fail on some other platforms.
1261
1262- PSCI stress tests are very unreliable and will often hang. The root cause is
1263 not known for sure but this might be due to bad synchronization between CPUs.
1264
1265- The GICv2 spurious IRQ test is Juno-specific. In reality, it should only be
1266 GICv2-specific. It should be reworked to remove any platform-specific
1267 assumption.
1268
1269- The GICv2 spurious IRQ test sometimes fails with the following error message:
1270
1271 ``SMC @ lead CPU returned 0xFFFFFFFF 0x8 0xC``
1272
1273 The root cause is unknown.
1274
1275- The manual tests in AArch32 mode do not work properly. They save some state
1276 information into non-volatile memory in order to detect the reset reason but
1277 this state does not appear to be retained. As a result, these tests keep
1278 resetting infinitely.
1279
1280- The FWU tests take a long time to complete. This is because they wait for the
1281 watchdog to reset the system. On FVP, TF-A configures the watchdog period to
1282 about 4 min. This is way too long in an automated testing context. Besides,
1283 the user gets not feedback, which may let them think that the tests are not
1284 working properly.
1285
1286- The test "Target timer to a power down cpu" sometimes fails with the
1287 following error message:
1288
1289 ``Expected timer switch: 4 Actual: 3``
1290
1291 The root cause is unknown.
1292
1293FWU images
Paul Beesley24a6bd62019-10-24 11:57:00 +00001294~~~~~~~~~~
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +02001295
Sandrine Bailleux7af6c6d2018-10-22 17:09:07 +02001296- The FWU tests do not work on the revC of the Base AEM FVP. They only work on
1297 the revB.
1298
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +02001299- NS-BL1U and NS-BL2U images reuse TFTF-specific code for legacy reasons. This
1300 is not a clean design and may cause confusion.
1301
1302Cactus test secure partition
Paul Beesley24a6bd62019-10-24 11:57:00 +00001303~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +02001304
1305- Cactus is experimental code. It's likely to change a lot as the secure
1306 partition software architecture evolves.
1307
1308- Fails to link with GNU toolchain 7.3.1.
1309
1310- Cactus is supported on AArch64 FVP platform only.
1311
1312All test images
Paul Beesley24a6bd62019-10-24 11:57:00 +00001313~~~~~~~~~~~~~~~
Sandrine Bailleux3cd87d72018-10-09 11:12:55 +02001314
1315- TF-A Tests are derived from a fork of TF-A so:
1316
1317 - they've got some code in common but lag behind on some features.
1318
1319 - there might still be some irrelevant references to TF-A.
1320
1321- Some design issues.
1322 E.g. TF-A Tests inherited from the I/O layer of TF-A, which still needs a
1323 major rework.
1324
1325- Cannot build TF-A Tests with Clang. Only GCC is supported.
1326
1327- The build system does not cope well with parallel building. The user should
1328 not attempt to run multiple jobs in parallel with the ``-j`` option of `GNU
1329 make`.
1330
1331- The build system does not properly track build options. A clean build must be
1332 performed every time a build option changes.
1333
1334- SMCCC v2 is not properly supported.
1335
1336- UUIDs are not compliant to RFC 4122.
1337
1338- No floating point support. The code is compiled with GCC flag
1339 ``-mgeneral-regs-only``, which prevents the compiler from generating code
1340 that accesses floating point registers. This might limit some test scenarios.
1341
1342- The documentation is too lightweight.
1343
1344--------------
1345
Jayanth Dodderi Chidanand8736e4b2022-05-03 15:05:11 +01001346*Copyright (c) 2018-2022, Arm Limited. All rights reserved.*
Sandrine Bailleux8cd3cb82019-03-28 09:34:55 +01001347
1348.. _Arm Neoverse Reference Design N1 Edge (RD-N1-Edge): https://developer.arm.com/products/system-design/reference-design/neoverse-reference-design
1349.. _Arm SGI-575: https://developer.arm.com/products/system-design/fixed-virtual-platforms