Age | Commit message (Collapse) | Author |
|
This patch adds support for the rcar platform running on FreeRTOS.
FreeRTOS source code is temporarily included into rcar product directory
until armv8-a support is added to CMSIS-FreeRTOS repository.
Change-Id: Ia828f903d52df236922fe7f6f548bce06ee131cc
Signed-off-by: Tsutomu Muroya <tsutomu.muroya.jy@bp.renesas.com>
Signed-off-by: Nicolas Royer <nroyer@baylibre.com>
|
|
Change-Id: I4ba1332eeea2fd19d2ae60281e0894a1c262ea58
Signed-off-by: Tsutomu Muroya <tsutomu.muroya.jy@bp.renesas.com>
Signed-off-by: Nicolas Royer <nroyer@baylibre.com>
|
|
The armclang toolchain does not support S-Records.
Change-Id: I9de19e9c857e7437782b959d583ce1fdb8188652
|
|
Without this patch, the BUILD_PATH cannot end with a /.
With this patch, the end of BUILD_PATH does not matter.
BUILD_PATH can be automatically generated by build systems,
so it is important that any format is supported.
Change-Id: Iba306f8ac29a528fa6a7dc0a37e3c3b7ef7d0309
Signed-off-by: Usama Arif <usama.arif@arm.com>
|
|
Commit 95b4de8 ("fwk: Initialize notifications statically") reworked
notification initialization code to use maximum notification count from
FMW_NOTIFICATION_MAX macro instead of BS_FIRMWARE_NOTIFICATION_COUNT.
This reverts commit 704a318 to deprecate BS_FIRMWARE_NOTIFICATION_COUNT
and NOTIFICATION_COUNT macros in the build system.
Change-Id: Ida4e1464f841e1380257b7ffbfa32a429c8f536d
Signed-off-by: Vijayenthiran Subramaniam <vijayenthiran.subramaniam@arm.com>
|
|
This patch adds the SCMI Resource Permissions module to the
firmware.
Change-Id: I4dc738024eebc77f23b64095670ecbbb8e7f6e34
Signed-off-by: Jim Quigley <jim.quigley@arm.com>
|
|
Add needed build option to support conditional firmware build with
the statistics module. It also adds documentation for the new flags.
The statistics are used by performance and power domain protocols.
Change-Id: If375dc01aad9c555a39a9a85b6edebdc6c096138
Signed-off-by: Lukasz Luba <lukasz.luba@arm.com>
|
|
Arm platforms don't have proper reset domains. However to demonstrate
reset domain module's functionality, this change adds a juno specific
driver with UART as an example reset domain peripheral. As an simple
example only autoreset functionality is implemented as explicit
assert/de-assert complicates functionality of UART peripheral.
Change-Id: I06330447f92534974f3c5997b44fcbf0897806f9
Signed-off-by: Girish Pathak <girish.pathak@arm.com>
Acked-by: Etienne Carriere <etienne.carriere@linaro.org>
|
|
This warning flag no longer triggers in more recent versions of Arm
Compiler 6, so can be removed.
Change-Id: I1ff1c965886d90860cca8b4e741f4a94c584f197
Signed-off-by: Chris Kay <chris.kay@arm.com>
|
|
We use a number of compiler extensions already, and the strict rules
required for compliance with ISO C11 can be prohitive for embedded
development.
This commit moves our C variant from ISO C11 to GNU C11, which is
compatible with all the toolchains we currently support.
Change-Id: I58ce6479c4f8ca9039d957d08aadd3ebff4ac8fc
Signed-off-by: Chris Kay <chris.kay@arm.com>
|
|
This commit splits the "architecture" concept into two, more specific
concepts: the vendor, and the architecture. This allows us to refactor
architecture support into more common parts, and contain
architecture-specific logic more cleanly.
Some architectural functions and definitions have also been renamed to
better reflect their origin and to maintain naming consistency.
As architectures are generally not intended to be built independently of
any firmware, the CI script no longer tries to build the architecture
library.
Change-Id: I04430e3a5503d29247517b869e36c180d6d21eaa
Signed-off-by: Chris Kay <chris.kay@arm.com>
|
|
Symbols originating from the architecture layer are now encouraged to
use the unified `arch_` prefix to indicate their origin when context is
not provided (such as when listing symbols exposed by a firmware image).
Change-Id: I3ff23cb95ef225a3422b8daadeb671a7d0642d3e
Signed-off-by: Chris Kay <chris.kay@arm.com>
|
|
This patch allows the Debug Unit to be removed from the firmware
at build time if it is not required.
Change-Id: I51511ecd5b41a8ba498d6c1eb5a0cb57125c0f0b
Signed-off-by: Jim Quigley <jim.quigley@arm.com>
|
|
This patch deprecates the fwk_put_event_and_wait API for
builds with BUILD_HAS_MULTITHREADING=no. As this is a
synchronous API it could have serious adverse effects on
performance and throughput when used in single-threaded
mode. Therefore, this API should not be used in the future
in single-threaded mode. All future development should
follow the deferred response architecture model.
Change-Id: I6eccdf4fd901509df14a57a7f6246790061f8409
Signed-off-by: Jim Quigley <jim.quigley@arm.com>
|
|
This patch adds the tools requirements for building SCMI Fast Channels.
Change-Id: I58080d36cf6426d5cad76a0a55b9c868b0c09598
Signed-off-by: Jim Quigley <jim.quigley@arm.com>
|
|
This patch adds the SCMI performance protocol NOTIFY_LIMITS
and NOTIFY_LEVELS functionality.
Change-Id: I2d0e3173696617e050a846fd6452c60e01ca94ac
Signed-off-by: Jim Quigley <jim.quigley@arm.com>
|
|
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>
|
|
This refactoring cleans up the framework test makefiles, reducing the
amount of boilerplate needed to create framework tests.
The build system logic for the test framework has been adjusted so that
framework source files are recompiled for each test case. This ensures
that build flags can be set on a per-test-case basis, where currently
the framework is built only once with only one set of build flags. This
means test cases can selectively enable and disable the necessary
features.
In addition, the framework is compiled in its entirety for each test
suite. This means that test suite no longer need to selectively identify
the source files required to successfully build.
Change-Id: I0d4c10b5903d47ee5f81bd70dc453331dd4d236f
Signed-off-by: Chris Kay <chris.kay@arm.com>
|
|
This commit also ensures the C, and not C++, preprocessor is used.
Change-Id: I43b6e44a9da4fe7e52a9af41d892600a8e20fa31
Signed-off-by: Chris Kay <chris.kay@arm.com>
|
|
This patch adds a new build option that can be passed
on the command line to enable compiling and including the
bring-up debugger library into a multi-threaded firmware.
Change-Id: I760640c53af865245c23a94be722438eca1612de
Signed-off-by: Tarek El-Sherbiny <tarek.el-sherbiny@arm.com>
|
|
New adjustments to the maximum size of the SCP_BL2 image in Trusted
Firmware-A means we now have far greater room for expansion.
Change-Id: I9bc4791e5a2347f2d30bdcb3a482b5a3e6801e0a
Signed-off-by: Chris Kay <chris.kay@arm.com>
|
|
The Keil RTX libraries are compiled with unaligned accesses enabled, and
so it is possible for RTX to trigger unaligned access violations with
otherwise valid code. Unaligned accesses have been re-enabled to reduce
the risk of encountering avoidable exceptions.
Change-Id: I6b5867dda919db65033bfe6d889da0fd69ab4482
Signed-off-by: Chris Kay <chris.kay@arm.com>
|
|
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>
|
|
The default value of NOTIFICATION_COUNT is set to 64. On platforms that
require a larger number of notification subscriptions, allow the
product to define the value of NOTIFICATION_COUNT.
Change-Id: I883d35879b1bd681203d768a8f96c7595ad05e8e
Signed-off-by: Vijayenthiran Subramaniam <vijayenthiran.subramaniam@arm.com>
|
|
All the relevant headers in files have been updated to 2020.
Change-Id: I8ef14a4c87b65c87933ef79697dcb5fc5dda87d4
Signed-off-by: Nicola Mazzucato <nicola.mazzucato@arm.com>
|
|
The Juno ROM is not pressured for size, and a bug in binutils currently
prevents LD from wrapping functions when LTO is enabled.
Change-Id: If0a0f22e22bb96a5a6d07f0fbd3b0ef980c6ea39
Signed-off-by: Chris Kay <chris.kay@arm.com>
|
|
The Juno platform code size must be reduced to fit the memory requirements
in debug mode.
This change sets the compiler optimization flag to -Os to meet the
requirements.
Change-Id: Ifc315bece86f7d729cc31c7ad21725027d48039f
Signed-off-by: Tarek El-Sherbiny <tarek.el-sherbiny@arm.com>
|
|
Enables GCC link-time optimization for Juno platform.
Arm compiler 6 does not yet support LTO for static libraries.
Change-Id: I024c3751259588c25ea5234eb42aceb149b15b80
Signed-off-by: Tarek El-Sherbiny <tarek.el-sherbiny@arm.com>
|
|
This commit splits out the exception table from the handlers it links
to. We need to do this in order to wrap the reset handler function,
which is needed for Juno (see the next commit).
The current situation is that, when compiling the exception table, the
compiler can determine the address of the reset function statically.
This means that by the the time the linker has had a chance to wrap the
reset handler function, the link between the exception table and the
function has already occurred, making it impossible for the linker to
link to our wrapper function instead.
We need to alter this situation so that when the linker comes to a
reference to the reset handler, it can link it to the wrapped handler
instead. To do this, we need to make sure that the compiler cannot
determine the location of the function by itself, which requires
putting the table and the handler in separate compilation units.
Change-Id: Id17ddea28a3f26323bef45f4ce8961d50b866c59
Signed-off-by: Chris Kay <chris.kay@arm.com>
|
|
This commit adds a basic security justification to the Makefile rules,
explaining the reasons for increasing the compiler warnings used.
Change-Id: Id867f90fc88014a1801ca341e6d1c0c75faa0f35
Signed-off-by: Chris Kay <chris.kay@arm.com>
|
|
Change-Id: I73e35e5caa53544c7f3bcb0097f2ad79fb0e2122
Signed-off-by: Ronald Cron <ronald.cron@arm.com>
|
|
Having different file names makes it easier to differentiate
the firmware binaries. It also removes the need for renaming
them when they are placed in a common directory.
The firmware.bin binary file is still generated by the build
system. A subsequent patch will remove its generation giving
time to remove any dependency on it.
Change-Id: Id38c20d667f802f18abf090b0c331b796c2ce23d
Signed-off-by: Ronald Cron <ronald.cron@arm.com>
|
|
Change-Id: I054a77d3295150c1e5445d430cabaad978e7e594
Signed-off-by: Nicola Mazzucato <nicola.mazzucato@arm.com>
|
|
The doc target in the top-level Makefile hides the target of the same
name introduced in rules.mk. This commit moves the rules.mk target to
the documentation Makefile where it cannot leak into the rest of the
build system.
Change-Id: I5f075c59978cc996dec9c48dd4ee40a90b11829a
Signed-off-by: Chris Kay <chris.kay@arm.com>
|
|
In order to prevent overwriting variable values and rules, all included
.mk files must have include guards just as in C header files.
This commit also removes the add_once macro, as it is no longer needed.
Change-Id: Id751ebd6a7af2892a7a71df71a34e4ab68debcf7
Signed-off-by: Chris Kay <chris.kay@arm.com>
|
|
The current rule for creating directories does not allow creation of
directories through dependencies on demand. This patch moves away from
the predefined build directories approach to a more flexible wildcard-
based approach.
Change-Id: Idfb40a1405a5812973b14a05da3cab183740c1e3
Signed-off-by: Chris Kay <chris.kay@arm.com>
|
|
Change-Id: I6dfc37f7b1e74c19df46ac5ce68ad54233754416
Signed-off-by: Nicola Mazzucato <nicola.mazzucato@arm.com>
|
|
CCR.UNALIGN_TRP is enabled, and will trap any unaligned access. We need
to ensure the compiler does not generate them.
Change-Id: Ia0166578c00fa53399aa9823eec8f166b70b0762
Signed-off-by: Chris Kay <chris.kay@arm.com>
|
|
This patch adds flags enabling the linker to remove functions and data
that are not referenced, substantially reducing the size of the final
binary.
Change-Id: I4b276eb27fed776de78f2dd22c9658609643cb6b
Signed-off-by: Chris Kay <chris.kay@arm.com>
|
|
Minimizing the amount of assembly we use makes it easier to understand
the early boot flow and how objects are placed in the ELF image.
Additionally, arm_init_ccr() is no longer called before the C runtime
initialization is done, and is instead called by main().
Change-Id: Ib539bd45fb707d6948cc925a024cce803051ff8a
Signed-off-by: Chris Kay <chris.kay@arm.com>
|
|
This flag stops Arm Compiler 6 from complaining about the linker-defined
symbols.
Change-Id: Ide8b3c0315129d04fe1aa1d126cb7131dfd1d553
Signed-off-by: Chris Kay <chris.kay@arm.com>
|
|
This change is being made to claw back some of the bloat caused by
certain optimizations that are enabled by -O3.
Change-Id: Ide36c162104be784dabbfec16974090591293dde
Signed-off-by: Chris Kay <chris.kay@arm.com>
|
|
Change-Id: Ib5a9f055b147433a55bbd09be69ae86e6dbf62f9
Signed-off-by: Chris Kay <chris.kay@arm.com>
|
|
- Remove the custom crt0 initialization routines
- Implement required Newlib symbols
This includes _exit() and main() as well as __bss_start__,
__bss_end__ and __stack, which are all used by newlib's crt0
routines.
Change-Id: I229509c56bcccbfdbdf5700a5f048767aa9ecea5
Signed-off-by: Chris Kay <chris.kay@arm.com>
|
|
This patch enables a number of useful warning flags, namely -pedantic
and -pedantic-errors. It also re-enables the strict aliasing warning.
Change-Id: Id912e0dae914e6a9eebbeef727bd4447ebe18c21
Signed-off-by: Chris Kay <chris.kay@arm.com>
|
|
Renamed as all symbols/define exposed by the build system should
have the prefix BUILD_ in their names.
Change-Id: I8893121b32c31584a163a991547925cc028ee1c9
Signed-off-by: Nicola Mazzucato <nicola.mazzucato@arm.com>
|
|
Please see doc/framework.md for details.
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: I1744c60eca295c60b3fabcfafb522fbff5d7306c
Signed-off-by: Ronald Cron <ronald.cron@arm.com>
|