aboutsummaryrefslogtreecommitdiff
path: root/module/msys_rom
AgeCommit message (Collapse)Author
2020-10-02docs: Fix unbalanced Doxygen groupsChris Kay
This commit fixes a number of places where Doxygen groups commands have been mismatched. Change-Id: If2e18c5e45a9a5d16a5c1f48fdaa975189957400 Signed-off-by: Chris Kay <chris.kay@arm.com>
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-09-08bootloader: Unify bootloader messagesChris Kay
This commit adds a bootloading message to the bootloader module and unifies the error messages in the `msys-rom` and `isys-rom` modules. Change-Id: I69ab6e46af958c6b9c22f8578b2d253eb76bd137 Signed-off-by: Chris Kay <chris.kay@arm.com>
2020-06-09misc: Replace `fwk_assert(false)` with `fwk_unexpected()`Chris Kay
This commit replaces any calls to `fwk_assert(false)` with a call to `fwk_unexpected()`. Forced assertions are used for two different scenarios: - Unreachable code, which should use `fwk_unreachable()` - Code that should trap only in debug mode, which should use `fwk_unexpected()` `fwk_unexpected()` is the only one of these options with no side effects that did not already occur in the original code, so these assertions have been transformed to expectations. Some of these may, and should, be transformed later to unreachable code. Change-Id: I8325259b41a03a096b62a420bd0c7d52b025fcf4 Signed-off-by: Chris Kay <chris.kay@arm.com>
2020-06-09misc: Replace `assert()` calls with `fwk_assert()`Chris Kay
This commit replaces any call to `assert()` outside of the framework with a call to `fwk_assert()`. Change-Id: I83325af5892ac6b8b6b66a6586345d0988ca725e 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-11bootloader: Don't access R/W memory when bootloadingChris Kay
The RAM firmware image is loaded from the beginning of SRAM, which overlaps read/write data used by the ROM firmware. This has the potential to corrupt ROM runtime data that is still being loaded in and out of memory while it is preparing to boot the image. This patch removes the image booting logic from the `msys_rom` and `juno_rom` modules and moves it to the `bootloader` module to ensure that the transfer is properly and safely contained and controlled. Other changes to reduce exploitability including updating the stack pointer to the one expected by the RAM firmware rather than permitting it to continue from where the ROM firmware left off, and relocating the vector table to the one embedded in the RAM firmware image, which prevents the core from using the exception handlers created during ROM boot (which are in the heap and may have been corrupted while loading the RAM firmware). Change-Id: I4413c1cd058ca93ef04177424f1f29561b10872f Signed-off-by: Chris Kay <chris.kay@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-10module: Add FWK_ID_NONE source_id for notificationsNicola Mazzucato
In preparation for a change to fwk_notification_notify a source_id is explicitly provided for notifications. Change-Id: Ib10d09ad92d9ed5de35983cf93df83cf2db3f7f7 Signed-off-by: Nicola Mazzucato <nicola.mazzucato@arm.com>
2019-09-12fwk: Rename fwk_errno.h to fwk_status.hNicola Mazzucato
This patch renames the header file for the return values to fwk_status.h. This is to reflect the recent addition of positive values that do not fall into the error category. Change-Id: I283b945c39d3ad31702db0dc7687dbe99e81ed19 Signed-off-by: Nicola Mazzucato <nicola.mazzucato@arm.com>
2019-01-03copyright: Extend to 2019Ronald Cron
Change-Id: I73e35e5caa53544c7f3bcb0097f2ad79fb0e2122 Signed-off-by: Ronald Cron <ronald.cron@arm.com>
2018-09-17misc: Implement alignof, alignas, noreturn and static_assert manuallyChris Kay
The headers these constructs belong in were introduced with C11 standard library, but don't appear to be supported by the Arm Compiler 6's. We work around this by implementing them ourselves. Change-Id: I601701c0a8e2b5df02e7c2c95c5b0667aac6cff4 Signed-off-by: Chris Kay <chris.kay@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>