summaryrefslogtreecommitdiff
path: root/docs
AgeCommit message (Collapse)Author
2018-02-14Disable NVM support by defaultSandrine Bailleux
Change the default value of the USE_NVM build flag to 0. The idea behind storing test results in NVM was that it makes it possible to retrieve them post-mortem if some TFTF test crashes badly or hangs the board and you have to power it off. But we never got to develop the tooling that enables this use case. Also, when NVM support is enabled, it allows to resume an interrupted test session wherever you left it. At least that's the theory but in practice it seems to have cause more issues than it has helped. Until we make it easy to use the features enabled by USE_NVM=1, we might as well disable NVM support, as this significantly slows tests down. Change-Id: Ib1021cb18a19538e1b004ae6c34d1b6460f0b673 Signed-off-by: Sandrine Bailleux <sandrine.bailleux@arm.com>
2016-11-11Share platform setup codeAntonio Nino Diaz
Added `plat_arm_gic_init` and documented it. The functions tftf_platform_setup, tftf_plat_arch_setup and tftf_early_platform_setup have been made common and placed in arm_setup.c. Moved PL011 baudrate definition to its header file. Porting Guide updated. Change-Id: I42af9218160bc3bbc7a5acb267bba8d9cdc3c985
2016-11-10Isolate fwu-specific IO codeAntonio Nino Diaz
Added `plat_fwu_io_setup`, which is defined for arm platforms. Added it to the documentation. Renamed `arm_io_setup()` to `arm_fwu_io_setup()` and made it a weak function. Removed the `plat_arm_io_setup()` associated to it because this is not platform code and it's problematic for the actual `plat_arm_io_setup()` that will be implemented in a following patch. `plat_fwu_io_setup` calls `arm_fwu_io_storage` in ARM platforms. Change-Id: Ibfb63139a6c0b0991ab70e935a3723d454d8d70c
2016-11-02user-guide.md: Fix default value of TESTS_FILE parameterDouglas Raillard
TESTS_FILE parameter was documented as containing "tests/tests.xml" by default, but in fact "tests/tests-common.xml" is used if "plat/<platform>/tests.xml" does not exists. Change-Id: Ia2ba0c76cb5dd926ea509bd6379e35499060363e Signed-off-by: Douglas Raillard <douglas.raillard@arm.com>
2016-07-14Introduce `PLAT_MAX_PWR_STATES_PER_LVL` platform macroSoby Mathew
This patch adds a new mandatory platform porting macro `PLAT_MAX_PWR_STATES_PER_LVL` to the platform_def.h files of all the platforms. This macro enables PSCI STAT test cases to size the array which will be used to store statistics queried from the firmware. As the name suggests, the value of this macro is the maximum number of power states at each power domain level of the platform. Change-Id: I7038d5e62401e81157a6816567cbea35aa8db819
2016-06-27Build Firmware Update images by default when supportedSandrine Bailleux
This patch enables the compilation of the Firmware Update non-secure images by default on platforms that support it. The FIRMWARE_UPDATE build flag is no longer expected on the build command line ; instead it is a platform makefile setting. Platforms that support Firmware Update should explicitly set this variable to 1. This is now the case for FVP and Juno. In other words, * On platforms that support Firmware Update, 'make all' will now build the TFTF, NS_BL1U and NS_BL2U binaries. * On platforms that do not support Firmware Update, 'make all' will build just the TFTF binary. Change-Id: Ib12c1cb06fee2b4b9933da0af1bc74350564f29d
2016-02-04Introduce the TFTF GICv3 supportSoby Mathew
This patch adds GICv3 driver support to TFTF and also enables dynamic selection of the GIC driver within ARM GIC layer according to the GIC mode detected. The GICv3 driver is defined in `gic_v3.c` and prototypes are present in `gic_v3.h`. Appropriate architecture helpers are also added for accessing GICv3 system registers. A ARM GIC layer for dynamically selecting the appropriate GIC driver is added in `arm_gic_v2v3.c`. The fvp, armstrong, buzz and collins platform ports now use this dynamic ARM GIC layer which selects the GIC driver according to the way GIC has been configured. Change-Id: I78ef780a85b2edeb99851e44720e9c445e86dc37
2015-12-09FWU: Add FWU Normal image(NS_BL1U) support to TFTF.Yatharth Kochar
The Firmware Update(FWU) feature provides the capability to upgrade a SoC firmware image from an external interface, such as NOR Flash, to SoC NVM memories. In order to carry on the above tasks both Normal and Secure world FWU images co-operate with each other and complete the Firmware Update process. This patch adds support for FWU Normal image(NS_BL1U) to the TFTF code base. The tasks carried out by NS_BL1U are as following: * Load FWU images from external NVM memory to NS RAM. * Call SMC's to copy and authenticate images. * Jump to NS_BL2U which carries out next FWU steps. Change-Id: I59bc85e285cac523acd82706acf96a8f5f4360d6
2015-10-14Remove old timer framework and move to new oneVikram Kanigiri
This patch removes the support of old timer framework and its tests. It moves the existing tests to use the newer timer framework. It reduces `PLAT_SUSPEND_ENTRY_EXIT_TIME` and `PLAT_SUSPEND_ENTRY_TIME` to a meaningful value. It also increases the stack size as the current stack is not sufficient while running the new tests. Change-Id: If4f17dcd6ac8985a0dc55a66eb9d1e9a1c05e082
2015-07-23Add TFTF framework and platform support for extended State-idSoby Mathew
This patch adds the necessary platform and framework support for extended state-id power state format. Also the existing suspend tests have been reworked to use the new framework. The framework detects the correct power state format during cold boot and implements helper functions to create the power state function in the detected format. Change-Id: Ie729d947a0f2693aa7e943544a2c4c006e526c63
2015-07-23Introduce power domain topology framework in TFTFSoby Mathew
This patch introduces the power domain based topology description framework in TFTF. As a result, platforms need to implement new platform API's tftf_plat_get_pwr_domain_tree_desc() and tftf_plat_get_mpidr() to support the new framework. Also the topology helper functions defined in plat_topology.h have undergone change with some APIs retaining their signature while others have changes to their parameters and return values. Some new topology helper functions have been introduced to help navigate the topology like: tftf_get_next_peer_domain(), tftf_get_next_cpu_in_pwr_domain() and tftf_get_mpidr_from_node(). Change-Id: Ic20fa25b98052ebe75c2b60dab1af4b46a27d032
2015-07-09Remove unused define "PLATFORM_CACHE_LINE_SIZE"amobal01
This patch removes the unused define "PLATFORM_CACHE_LINE_SIZE" Change-Id: I1186bce5727b1441a50fd7a98d2c26f8c6a2fe02
2015-06-25Use PLATFORM_MAX_AFFLVL macro instead of plat_get_max_afflvl()Soby Mathew
This patch removes the platform API plat_get_max_afflvl and introduces a new mandatory platform macro PLATFORM_MAX_AFFLVL instead. This is done because the maximum affinity level for a platform is static and a macro to export this information is more optimal. Change-Id: I59d9d0c210d5910e06d9df3a419fe78b4948fbc2
2015-06-18Rename TEST_RESULT into test_result_tSandrine Bailleux
Change-Id: I6f44768a7e60ec8d8e0e67988f7506a4af12082a
2015-06-18Clean up the code keeping track of the tests progressSandrine Bailleux
* Introduce test_to_run & test_progress fields in TEST_NVM They replace current_testcase and next_testcase. They provide the same functionality but in a more intuitive way. * Get rid of cur_testsuite & cur_testcase variables They were variables stored in RAM, therefore they were volatile and their values were lost through platform reset. They used to be needed because the TEST_NVM structure kept function pointers to keep track of the progress of the test session. Now we store the testsuite and testcase index directly into NVM. * Remove some functions that are no longer needed: - tftf_get_testcase_index() Was used to get the index of a testcase from its function pointer. No longer needed because we no longer identify tests by their function pointers, instead we use indexes directly. - test_set_passed_and_next() Was used for tests that intended to reset the board. It set the current test case's result as "passed" and set up the next_testcase pointer so that the test session would resume in the 2nd part of the test. This has all changed. Tests that reset the board no longer need to be implemented in 2 functions, instead the same function will be re-entered upon resume from reset. - tftf_testcase_set_result_as_crashed() Now simplified because we use indexes rather than function pointers to identify a test. Therefore, we no longer need a dedicated function for that. - tftf_testcase_update_result() Not needed, can use tftf_testcase_set_result() instead. * Move test progress values out of TEST_RESULT. They now belong to test_progress_t. Change-Id: I6f0917480d96a3194b42ca0c909efc91209a187e
2015-06-17Add flash block lock operation support for Intel StrataFlash Embedded ↵Vikram Kanigiri
memory(P30) This patch adds block lock support in Intel StrataFlash Embedded memory(P30) flash driver which helps in preventing the software from modifying a block accidentally. Additionally, it also removes the parameter block size from the total flash size as writing to parameter blocks will always lead to failure as they have smaller block size. Reduction in block size has led to an addition of translation table for mapping it. Change-Id: Ib3e29ea524dedfb53c6d114a4071e8387585204a
2015-06-09Fix the value of TESTS_NVM_RESULTS_SIZESandrine Bailleux
On all 3 supported platforms, the TESTS_NVM_RESULTS_SIZE #define is currently 64MB, which corresponds to the entire Flash memory. However, the first 40MB of Flash are reserved for firmware usage, as the TESTS_NVM_RESULTS_OFFSET #define accounts for. This means the TFTF can only use the last 24MB. This patch fixes the value of TESTS_NVM_RESULTS_SIZE to reflect this. It also changes the names of TESTS_NVM_RESULTS_OFFSET and TESTS_NVM_RESULTS_SIZE to better reflect their meaning. Change-Id: I9b8edd185885af112e5f0b1a0c61fa923288fc7f
2015-04-24Porting Guide: Fix the path to IO storage filesSandrine Bailleux
Change-Id: I57e794b7bfdcb22682db8d84f558cda0a81144ea
2015-04-24Add a platform specific reset functionVikram Kanigiri
This function adds a platform specific reset function from EL2. It uses the reset interrupt of SP805 peripheral. Change-Id: I94cea10f6b50883f594623047ce396cff9d2e9ca
2015-04-24Add driver support for SP805 peripheralVikram Kanigiri
This patch adds driver support for SP805 peripheral as per ARM DDI 0270B document. It provides 3 public api's which can be used for the following: 1. sp805_wdg_start: Used for programming the number of watchdog clock cycles to be generated before generating watchdog interrupt. 2. sp805_wdg_stop: Stops the watchdog counter decrement. 3. sp805_wdg_refresh: Reloads the counter from load register. Change-Id: Ia12463a1a7718d7e6ef7b03838e49c004e5d962a
2015-03-09Disable resumption of test session by defaultSandrine Bailleux
This patch introduces a new build option to enable/disable the framework's ability to resume an interrupted test session. This feature used to be enabled by default but in practice the user usually wants to run all tests from the beginning so this patch makes this behaviour the default one. Change-Id: I99bcf73cbcadd084e86522953fa4f569b9d264a4
2015-02-02report: allow to select multiple reportsKévin Petit
It is now possible to pass a list of desired reports in the TEST_REPORTS variable. Accepted values are: uart:raw uart:junit semihosting:raw semihosting:junit Change-Id: Ic3d46fdd5078a362799cc85bc776eb1224b7b97c Signed-off-by: Kévin Petit <kevin.petit@arm.com>
2015-01-16Update documentation of tftf_platform_end()Sandrine Bailleux
Commit e849962eeafa changed the default implementation of the function tftf_platform_end(). This patch updates the porting guide accordingly. Change-Id: I3c742c4289d68378f1838d3641b4a3ae933632bb
2015-01-15Update documentation for interrupt IDs.Vikram Kanigiri
Updated documentation with systimer IRQ and per CPU NS timer IRQ's which are used in general framework and tests.
2015-01-12Doc Fix: BL3-1 is needed in the FIP to run TFTFSandrine Bailleux
Change-Id: Ie3b36ad1a4ecf4f21efe2d0baffa89627ef1f0ce
2014-12-19Update documentation with PLAT_TESTS_SKIP_LISTVikram Kanigiri
Change-Id: Ia2cd86ce418497cfb5e4e80b53d2741443a6bd8d
2014-12-10Allow to specify an alternate XML tests fileSandrine Bailleux
At the moment, it is not possible to change the XML tests file to use as it is hard-coded to 'tests/tests.xml' in the Makefile. This patch introduces a new build option 'TESTS_FILE' which allows to specify the path to an alternate tests file. This option defaults to 'tests/tests.xml'. Change-Id: Iddaafb4ba12dae677f3ffcbaf0608a884aefb221
2014-12-05Rework IRQ handling codeSandrine Bailleux
- Make the registration of a user-defined IRQ handler optional. The generic IRQ handler (i.e. tftf_irq_handler()) always calls the user-defined handler, regardless of whether one has been registered or not. If none has been registered then we end up dereferencing a null pointer. This patch modifies this behaviour: the presence of a user-defined handler is checked before calling it. - Separate IRQ enabling from IRQ handler registering. tftf_irq_register() both registers a user-defined handler for a given interrupt and enables this interrupt. Sometimes, one needs to do only one or the other. This patch splits tftf_irq_register() into 2 functions which perform these operations individually: tftf_irq_enable() and tftf_irq_register_handler(). tftf_irq_register_handler() forbids overwriting an existing handler. - Implement IRQ disabling and IRQ handler unregistering. This is provided through 2 new functions: tftf_irq_disable() and tftf_irq_unregister_handler(). - Improve code readibility and code documentation. - Clean up the code - Remove the 'num' field in spi_desc structure as it is redundant (the number of the interrupt is already reflected by the index in the array). - Rename PLAT_MAX_SPI_ID into PLAT_MAX_SPI_OFFSET_ID and document its meaning in the porting guide. - Rename irq_handler into irq_handler_t to follow type naming convention. - Rename tftf_irq_handler() into tftf_irq_handler_dispatcher() to make a better distinction between this common part of IRQ handling code and the user-defined handler that can be registered using tftf_irq_register_handler(). Change-Id: I7e9eaf677114d5b76158b18750668acd7d55e060
2014-12-05Update documentationSandrine Bailleux
The following modifications have been made to the User Guide: - List `libxml-libxml-perl` as a required package to build the TFTF - Add instructions to build a FIP containing the TFTF image - Add instructions to run the Test Framework - Provide a global overview of the Test Framework's behaviour The following modifications have been made to the Design Document: - Move part of the old documentation to this document - Add a note about the special status of SGI #IRQ_WAKE_SGI - List the main limitations of the test framework Also provide a new document explaining briefly how to develop tests. Change-Id: Iece24d733a29c4b416d3f6cf55b4916d9ee9d2e0
2014-11-24Add support to use shell colors to distinguish CPUs' messagesSandrine Bailleux
Introduce a new build flag `SHELL_COLOR`. It can take either 0 (disabled) or 1 (enabled) as values. 0 is the default. If set to 1, text messages printed using mp_printf() will use shell's color escape sequences to ease identifying which CPU displays it. This is intended as a debug feature. Change-Id: I91a4128d2f854cd5cb259fb23802d0158e2035fe
2014-11-04Move FVP platform topology code to generic layerSandrine Bailleux
At the moment, only the FVP port uses a topology tree to store the platform topology information. The Juno port just returns hard-coded values in the mandatory platform APIs. Actually any platform topology can be described using the data structures used in the FVP port. Then, if all platforms share the same way to represent the system topology, the code to query this topology becomes common and generic. This reduces the porting effort. The only responsibility of the platform code is to detect the system topology and populate the topology tree accordingly. Therefore, this patch pulls in the FVP topology code to the generic layer. It also reworks the Juno topology code to populate the topology tree. The porting guide is updated to reflect these changes. Change-Id: I63e0eee25985c6449b07faac4ac51f9e0349b7fc
2014-11-04Document the directory layoutSandrine Bailleux
Add a new document: the test framework design document. It only contains information about the source code layout for now. It will be extended in the future. Change-Id: I011ca17780e01d92363c69b06e72a7200b606a97
2014-10-15Introduce an api to query platform topologyVikram Kanigiri
This patch generates topology information for FVP using the power controller's PSYSR. For Juno, The topology information is hardcoded. It also provides api's to query the topology of the platform. Test cases can now use these api's to query affinity status of an instance, no of affinity instances supported at each level. This patch reworks platform_is_core_pos_present api to use the topology information generated while platform setup. The code is being copied from ARM TF. Change-Id: I56386a93faf43e910d2724d4f3bf0d8165db27b7
2014-10-01Add NOR flash support for Intel StrataFlash Embedded memory(P30)Vikram Kanigiri
This patch adds NOR flash driver support for reading and writing to Intel StrataFlash Embedded memory(P30) storage. It also updates platform code for the Juno and FVP platforms to use the driver for storing the results in the flash storage. Since, Flash can also be used as a storage location for other purposes, the results from TFTF are written starting from an offset of 40MB on both FVP and Juno. It adds a new build flag(USE_NVM) which can be used to select whether NVM can be used for storing results. Default value is set as NVM. Change-Id: I916fd84a82f34c6cf5f66abf534aac714b03b940
2014-10-01Update documentationSandrine Bailleux
Update the porting guide: * structure of the document * list platform #defines and functions to port Update the user guide: * structure of the document * modify the build instructions to work around bug GENFW-385 Change-Id: Ia9bd7857ff2048a257ce26730be018beef01deb6
2014-08-04Rework the TFTF initialization codeVikram Kanigiri
Reworked the TFTF initialisation code and made it similar to the ARM TF code for easy understanding. Modified the runtime stack utilisation from coherent to normal memory. Change-Id: Iba7a9822a2844da27f7e7e32a439d405cb8c4c7c
2014-07-23Import framework and testsSandrine Bailleux
Import TFTF sources from tf-topics/tftf commit 6eedeb00ff9b67b38c863740d07834af1cb61951 Author: Vikram Kanigiri <vikram.kanigiri@arm.com> AuthorDate: Fri Jun 27 17:00:20 2014 +0100 Commit: Vikram Kanigiri <vikram.kanigiri@arm.com> CommitDate: Wed Jul 16 16:40:22 2014 +0100 Get and use GIC CPU ID while talking to GIC CPU id used by GIC can be different from the cpu id used by the ARM TF for different cores. This patch adds the support for querying the GIC CPU id and uses it while interacting with the GIC. Reworked a few details. Change-Id: I9359fbbdf8c05696fbc02671232ebb2fecf5e1b2