aboutsummaryrefslogtreecommitdiff
path: root/module/system_power
AgeCommit message (Collapse)Author
2020-10-02docs: Prefer `\` to `@` in Doxygen commentsChris Kay
This commit replaces any instances of `@`-style Doxygen commands with their `\`-style equivalents. This is done for consistency across the codebase. The `\sa` Doxygen command has been added to the Clang-Format configuration to prevent it from reflowing see-also comments, which often exceed the column limit due to referring to long URLs. Change-Id: Ia4ebe8bd310293da9e2af55fe253f0762807e88a Signed-off-by: Chris Kay <chris.kay@arm.com>
2020-08-28misc: Replace `#if BUILD_X` with `#ifdef`Chris Kay
Build system conditional variables do not set a zero value when not set, but rather are simply not defined. Relying on a lack of a definition to evaluate to 0 is potentially unsafe, as it can mask logical errors. Change-Id: Ic1281fae2da176cad224514f355ff00886abe04c Signed-off-by: Chris Kay <chris.kay@arm.com>
2020-07-07power_domain: Merge set composite and set simple state apiTarek El-Sherbiny
This patch simplifies the power domain api. The power_domain user should only call set_state. Each domain recognizes if it supports composite state or not and acts accordingly. Change-Id: I260e06712dbbf2863ab36ecd6506e24625228fae Signed-off-by: Tarek El-Sherbiny <tarek.el-sherbiny@arm.com>
2020-06-09fwk: Rework assertion logicChris Kay
This commit modifies the assertion logic so that it is inlineable, and uses more of the facilities provided by the compiler and standard library for more robust error handling. Change-Id: I3064b96eccf183b704aba0c319c94c43131ab25b Signed-off-by: Chris Kay <chris.kay@arm.com>
2020-03-24fwk: Integrate logging functionality into the frameworkChris Kay
This commit moves the message logging functionality, previously only available through the logging module, into the framework as a free-function interface. A number of improvements to this interface have been made, owing to the tighter integration this new interface has with the framework and its scheduler: - Simplistic synchronous logging can be enabled before the framework has fully initialized - Message logging may be filtered at preprocessing-time to reduce the size of the code and read-only data sections in the firmware binary - Logging is deprioritized at runtime to reduce response latency caused by logging to output devices Change-Id: I5112df359df8a304a176e68994e2408d91f6ac89 Signed-off-by: Chris Kay <chris.kay@arm.com>
2020-03-24fwk: Filter log messages by levelChris Kay
This commit introduces the ability to filter logs based on their criticality. Log messages that do not exceed the configured criticality are removed at preprocessing time. This, in turn, allows us to remove logging calls that do not meet the criticality requirement, reducing the size of the executable image and increasing the performance of release images. Change-Id: I56e14175b67a3e4e68fd03b8e457a802192898d1 Signed-off-by: Chris Kay <chris.kay@arm.com>
2020-03-24misc: Clean up include directivesChris Kay
This commit cleans up include directives across the project to reduce the number of implicit transitive dependencies in preparation for mass header changes in the logging patches later on. These changes were made using two tools: clang-include-fixer and include-what-you-use, which identify and remove headers that are unnecessary, and insert headers which are used but not referenced. Some manual tweaking was involved to handle special cases, like #ifdef'd includes. Includes have also been reordered and categorized according to their project locality, and non-module includes now use quotes rather than angle brackets. Change-Id: Id39dc473f44b73cb98f3b8949f9e768fd2ace6cd Signed-off-by: Chris Kay <chris.kay@arm.com>
2020-03-12fwk/fwk_mm_alloc: panic if memory allocation failedJim Quigley
Currently the framework will return NULL if the memory allocation fails. As the system will ultimately fail on receiving the error we could just panic instead, saving the memory used for the NULL checks. Change-Id: I731b87b7acb19d30df84936b07c76cbfe0d0726e Signed-off-by: Jim Quigley <jim.quigley@arm.com>
2020-03-02system_power: Move to dynamic last core identifierNicola Mazzucato
To ensure proper operation on system resume, the last core on system suspend being turned off needs to be the first one to be turned on. This requires the identifier of the power domain of that core to be fetched and saved before system suspend. This patch replaces the fixed pre-defined power domain for the primary cpu with the one provided by the power domain module via get_last_core_pd_id. Change-Id: I7538bcb1dd95d99faf65a425c58c6c3a2e968a00 Signed-off-by: Nicola Mazzucato <nicola.mazzucato@arm.com>
2020-03-02system_power: Disable IRQ on SoC wake-upNicola Mazzucato
Disable the interrupt request for SoC wakeup in the wakeup handler. Change-Id: Ie8d910caf07ec5b26d515a3f7ecaaa568a082949 Signed-off-by: Nicola Mazzucato <nicola.mazzucato@arm.com>
2020-03-02system_power: Add missing storing of request_state in shutdownNicola Mazzucato
When a set_state request is performed, this module stores the requested power state and uses it to report just once to power_domain module. The same strategy needs to be done in case of shutdown request, and this patch adds such missing piece. Change-Id: Id44ca7089e722b22a74233408a5287f0110fcd20 Signed-off-by: Nicola Mazzucato <nicola.mazzucato@arm.com>
2020-01-03scp: Update copyright to 2020Nicola Mazzucato
All the relevant headers in files have been updated to 2020. Change-Id: I8ef14a4c87b65c87933ef79697dcb5fc5dda87d4 Signed-off-by: Nicola Mazzucato <nicola.mazzucato@arm.com>
2019-12-13system_power: Use PPU shutdown handlersNicola Mazzucato
System_power module uses drivers that are defined by the power_domain module. These drivers can optionally implement the shutdown function which is called during the shutdown procedure. This patch extends the shutdown procedure within this module so the shutdown function in the drivers will be called, if provided. Change-Id: I8c02809ee5669f3651a19fa7b69a9c084521749e Signed-off-by: Nicola Mazzucato <nicola.mazzucato@arm.com>
2019-12-02modules: Remove calls to fwk_module_check_callTarek El-Sherbiny
This change is to reduce memory footprint. Change-Id: I1d10681b3cdf28520b45a698ed607cca4df39b65 Signed-off-by: Tarek El-Sherbiny <tarek.el-sherbiny@arm.com>
2019-06-04system_power: Update module to a configurable number of system PPUsNicola Mazzucato
This patch removes the constraint of a fixed number of system PPUs by expanding the module to support an adjustable number of elements. Change-Id: Ic52c2751fa32e5e267e0940255af0b1a1fc570d1 Signed-off-by: Nicola Mazzucato <nicola.mazzucato@arm.com>
2019-06-04system_power: Add platform interrupts APINicola Mazzucato
This patch adds support for platform-specific interrupts that may be required at system level. Change-Id: Ibff0ecf48a8076b77197346db656050854625955 Signed-off-by: Nicola Mazzucato <nicola.mazzucato@arm.com>
2019-06-04system_power: Clear pending ISR before enablingNicola Mazzucato
Change-Id: I00bc809a0db98ade3e1344ceb000037debdc6653 Signed-off-by: Nicola Mazzucato <nicola.mazzucato@arm.com>
2019-06-04system_power: Update moduleNicola Mazzucato
This patch updates the assertions and removes the unused 'system_power_isr' structure Change-Id: I8a25563f08f0c15c43cdec97bd551c31ad14a454 Signed-off-by: Nicola Mazzucato <nicola.mazzucato@arm.com>
2019-03-12system_power: Add API definition guardPedro Custodio
Change-Id: I8060024e45a187afacdc70f9f39c9083f4cce71c Signed-off-by: Ronald Cron <ronald.cron@arm.com>
2019-02-26system_power: Fix extended PPU supportChris Kay
This patch fixes an issue in the support for extended PPU handling in system_power, where the ext_ppu_apis field represented a pointer to an API structure, whilst being initialised like a pointer to an array of pointers to API structures. This manifested itself in a crash whenever the module tried to iterate over the array to perform power management tasks. Change-Id: I81d071d82f8ed0f677f585a83670ed519cdb8d26 Signed-off-by: Chris Kay <chris.kay@arm.com>
2019-01-03copyright: Extend to 2019Ronald Cron
Change-Id: I73e35e5caa53544c7f3bcb0097f2ad79fb0e2122 Signed-off-by: Ronald Cron <ronald.cron@arm.com>
2018-08-23misc: Replace `<assert.h>` includes with `<fwk_assert.h>`Chris Kay
This commit moves all inclusions of <assert.h> into <fwk_assert.h>, which now includes it instead. This allows us to keep all assert-related logic under one roof. Change-Id: I4ec0d950dfd9264733645bc14da952b8c1619501 Signed-off-by: Chris Kay <chris.kay@arm.com>
2018-06-08Add support for SGM-775Ronald Cron
Co-authored-by: Filipe Rinaldi <filipe.rinaldi@arm.com> Co-authored-by: Paul Beesley <paul.beesley@arm.com> Co-authored-by: Chris Kay <chris.kay@arm.com> Co-authored-by: Elieva Pignat <elieva.pignat@arm.com> Co-authored-by: Pedro Custodio <pedro.krewinkelcustodio@arm.com> Change-Id: Ic7524ad58a7c15d5b055e88a9719b2feee437f1d Signed-off-by: Ronald Cron <ronald.cron@arm.com>