Age | Commit message (Collapse) | Author |
|
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>
|
|
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
|
|
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
|
|
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>
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
This patch removes the unused define "PLATFORM_CACHE_LINE_SIZE"
Change-Id: I1186bce5727b1441a50fd7a98d2c26f8c6a2fe02
|
|
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
|
|
Change-Id: I6f44768a7e60ec8d8e0e67988f7506a4af12082a
|
|
* 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
|
|
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
|
|
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
|
|
Change-Id: I57e794b7bfdcb22682db8d84f558cda0a81144ea
|
|
This function adds a platform specific reset function from EL2. It
uses the reset interrupt of SP805 peripheral.
Change-Id: I94cea10f6b50883f594623047ce396cff9d2e9ca
|
|
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
|
|
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
|
|
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>
|
|
Commit e849962eeafa changed the default implementation of the
function tftf_platform_end(). This patch updates the porting
guide accordingly.
Change-Id: I3c742c4289d68378f1838d3641b4a3ae933632bb
|
|
Updated documentation with systimer IRQ and per CPU NS timer IRQ's which
are used in general framework and tests.
|
|
Change-Id: Ie3b36ad1a4ecf4f21efe2d0baffa89627ef1f0ce
|
|
Change-Id: Ia2cd86ce418497cfb5e4e80b53d2741443a6bd8d
|
|
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
|
|
- 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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|