2014-08-12 |
Add workarounds for selected Cortex-A57 r0p0 and Juno errata
...
This patch ensures that workarounds for:
1. Erratas #806969 & #813420 that affect Cortex-A57 r0p0 as described in the
errata notice document
2. Defect id 831273 which affects the Juno platform by triggering the event
stream every 65536 cycles
are implemented after every reset on each cpu.
Change-Id: I729f608796536704aa956b715bbad428cc854d34
Achin Gupta
committed
on 12 Aug 2014
|
2014-07-31 |
Optimize EL3 register state stored in cpu_context structure
...
This patch further optimizes the EL3 register state stored in
cpu_context. The 2 registers which are removed from cpu_context are:
* cntfrq_el0 is the system timer register which is writable
only in EL3 and it can be programmed during cold/warm boot. Hence
it need not be saved to cpu_context.
* cptr_el3 controls access to Trace, Floating-point, and Advanced
SIMD functionality and it is programmed every time during cold
and warm boot. The current BL3-1 implementation does not need to
modify the access controls during normal execution and hence
they are expected to remain static.
Fixes ARM-software/tf-issues#197
Change-Id: I599ceee3b73a7dcfd37069fd41b60e3d397a7b18
Soby Mathew
committed
on 31 Jul 2014
|
2014-07-28 |
Merge pull request #177 from jcastillo-arm/jc/tf-issues/096
...
Rework incorrect use of assert() and panic() in codebase
danh-arm
committed
on 28 Jul 2014
|
Merge pull request #172 from soby-mathew/sm/asm_assert
...
Introduce asm assert and optimize crash reporting
danh-arm
committed
on 28 Jul 2014
|
Merge pull request #170 from achingupta/ag/tf-issues#226
...
Simplify management of SCTLR_EL3 and SCTLR_EL1
danh-arm
committed
on 28 Jul 2014
|
Merge pull request #169 from achingupta/ag/tf-issues#198
...
Ag/tf issues#198
danh-arm
committed
on 28 Jul 2014
|
Rework incorrect use of assert() and panic() in codebase
...
Assert a valid security state using the macro sec_state_is_valid().
Replace assert() with panic() in those cases that might arise
because of runtime errors and not programming errors.
Replace panic() with assert() in those cases that might arise
because of programming errors.
Fixes ARM-software/tf-issues#96
Change-Id: I51e9ef0439fd5ff5e0edfef49050b69804bf14d5
Juan Castillo
committed
on 28 Jul 2014
|
Add CPUECTLR_EL1 and Snoop Control register to crash reporting
...
This patch adds the CPUECTLR_EL1 register and the CCI Snoop Control
register to the list of registers being reported when an unhandled
exception occurs.
Change-Id: I2d997f2d6ef3d7fa1fad5efe3364dc9058f9f22c
Soby Mathew
committed
on 28 Jul 2014
|
Rework the crash reporting in BL3-1 to use less stack
...
This patch reworks the crash reporting mechanism to further
optimise the stack and code size. The reporting makes use
of assembly console functions to avoid calling C Runtime
to report the CPU state. The crash buffer requirement is
reduced to 64 bytes with this implementation. The crash
buffer is now part of per-cpu data which makes retrieving
the crash buffer trivial.
Also now panic() will use crash reporting if
invoked from BL3-1.
Fixes ARM-software/tf-issues#199
Change-Id: I79d27a4524583d723483165dc40801f45e627da5
Soby Mathew
committed
on 28 Jul 2014
|
Implement an assert() callable from assembly code
...
The patch implements a macro ASM_ASSERT() which can
be invoked from assembly code. When assertion happens,
file name and line number of the check is written
to the crash console.
Fixes ARM-software/tf-issues#95
Change-Id: I6f905a068e1c0fa4f746d723f18df60daaa00a86
Soby Mathew
committed
on 28 Jul 2014
|
Introduce crash console APIs for crash reporting
...
This patch introduces platform APIs to initialise and
print a character on a designated crash console.
For the FVP platform, PL011_UART0 is the designated
crash console. The platform porting guide is also updated
to document the new APIs.
Change-Id: I5e97d8762082e0c88c8c9bbb479353eac8f11a66
Soby Mathew
committed
on 28 Jul 2014
|
Parametrize baudrate and UART clock during console_init()
...
This patch adds baud rate and UART clock frequency as parameters
to the pl011 driver api console_init(). This allows each platform
to specify UART clock and baud rate according to their specific
hardware implementation.
Fixes ARM-software/tf-issues#215
Change-Id: Id13eef70a1c530e709b34dd1e6eb84db0797ced2
Soby Mathew
committed
on 28 Jul 2014
|
Introduce asm console functions in TF
...
This patch replaces the pl011 console family of functions
with their equivalents defined in assembly. The baud rate is
defined by the PL011_BAUDRATE macro and IBRD and FBRD values
for pl011 are computed statically. This patch will enable
us to invoke the console functions without the C Runtime Stack.
Change-Id: Ic3f7b7370ded38bf9020bf746b362081b76642c7
Soby Mathew
committed
on 28 Jul 2014
|
Simplify management of SCTLR_EL3 and SCTLR_EL1
...
This patch reworks the manner in which the M,A, C, SA, I, WXN & EE bits of
SCTLR_EL3 & SCTLR_EL1 are managed. The EE bit is cleared immediately after reset
in EL3. The I, A and SA bits are set next in EL3 and immediately upon entry in
S-EL1. These bits are no longer managed in the blX_arch_setup() functions. They
do not have to be saved and restored either. The M, WXN and optionally the C
bit are set in the enable_mmu_elX() function. This is done during both the warm
and cold boot paths.
Fixes ARM-software/tf-issues#226
Change-Id: Ie894d1a07b8697c116960d858cd138c50bc7a069
Achin Gupta
committed
on 28 Jul 2014
|
2014-07-25 |
Add support for printing version at runtime
...
Print out Trusted Firmware version at runtime at each BL stage.
Message consists of TF version as defined statically in the Makefile
(e.g. v0.4), build mode (debug|release) and a customizable build
string:
1. By defining BUILD_STRING in command line when building TF
2. Default string is git commit ID
3. Empty if git meta-data is not available
Fixes ARM-software/tf-issues#203
Change-Id: I5c5ba438f66ab68810427d76b49c5b9177a957d6
Juan Castillo
authored
on 30 Jun 2014
Dan Handley
committed
on 25 Jul 2014
|
Implement a leaner printf for Trusted Firmware
...
This patch implements a "tf_printf" which supports only the commonly
used format specifiers in Trusted Firmware, which uses a lot less
stack space than the stdlib printf function.
Fixes ARM-software/tf-issues#116
Change-Id: I7dfa1944f4c1e634b3e2d571f49afe02d109a351
Soby Mathew
committed
on 25 Jul 2014
|
2014-07-19 |
Remove coherent stack usage from the warm boot path
...
This patch uses stacks allocated in normal memory to enable the MMU early in the
warm boot path thus removing the dependency on stacks allocated in coherent
memory. Necessary cache and stack maintenance is performed when a cpu is being
powered down and up. This avoids any coherency issues that can arise from
reading speculatively fetched stale stack memory from another CPUs cache. These
changes affect the warm boot path in both BL3-1 and BL3-2.
The EL3 system registers responsible for preserving the MMU state are not saved
and restored any longer. Static values are used to program these system
registers when a cpu is powered on or resumed from suspend.
Change-Id: I8357e2eb5eb6c5f448492c5094b82b8927603784
Achin Gupta
committed
on 19 Jul 2014
|
Make enablement of the MMU more flexible
...
This patch adds a 'flags' parameter to each exception level specific function
responsible for enabling the MMU. At present only a single flag which indicates
whether the data cache should also be enabled is implemented. Subsequent patches
will use this flag when enabling the MMU in the warm boot paths.
Change-Id: I0eafae1e678c9ecc604e680851093f1680e9cefa
Achin Gupta
committed
on 19 Jul 2014
|
2014-07-11 |
Merge pull request #162 from jcastillo-arm/jc/tf-issues/194
...
Allow FP register context to be optional at build time
danh-arm
committed
on 11 Jul 2014
|
Merge pull request #164 from sandrine-bailleux/sb/bl30-support-v2
...
Add support for BL3-0 image (v2)
danh-arm
committed
on 11 Jul 2014
|
2014-07-10 |
Add support for BL3-0 image
...
- Add support for loading a BL3-0 image in BL2. Information about
memory extents is populated by platform-specific code. Subsequent
handling of BL3-0 is also platform specific.
The BL2 main function has been broken down to improve readability.
The BL3-2 image is now loaded before the BL3-3 image to align with
the boot flow.
- Build system: Add support for specifying a BL3-0 image that will be
included into the FIP image.
- IO FIP driver: Add support for identifying a BL3-0 image inside a
FIP image.
- Update the documentation to reflect the above changes.
Change-Id: I067c184afd52ccaa86569f13664757570c86fc48
Sandrine Bailleux
committed
on 10 Jul 2014
|
Merge pull request #157 from sandrine-bailleux/sb/tf-issue-109
...
TF issue 109
danh-arm
committed
on 10 Jul 2014
|
Merge pull request #146 from danh-arm/dh/refactor-fvp-gic
...
Refactor fvp config and gic code
danh-arm
committed
on 10 Jul 2014
|
Allow FP register context to be optional at build time
...
CTX_INCLUDE_FPREGS make variable allows us to include or exclude FP
registers from context structure, in case FP is not used by TSPD.
Fixes ARM-software/tf-issues#194
Change-Id: Iee41af382d691340c7ae21830ad1bbf95dad1f4b
Juan Castillo
committed
on 10 Jul 2014
|
2014-07-09 |
Refactor fvp gic code to be a generic driver
...
Refactor the FVP gic code in plat/fvp/fvp_gic.c to be a generic ARM
GIC driver in drivers/arm/gic/arm_gic.c. Provide the platform
specific inputs in the arm_gic_setup() function so that the driver
has no explicit dependency on platform code.
Provide weak implementations of the platform interrupt controller
API in a new file, plat/common/plat_gic.c. These simply call through
to the ARM GIC driver.
Move the only remaining FVP GIC function, fvp_gic_init() to
plat/fvp/aarch64/fvp_common.c and remove plat/fvp/fvp_gic.c
Fixes ARM-software/tf-issues#182
Change-Id: Iea82fe095fad62dd33ba9efbddd48c57717edd21
Dan Handley
committed
on 9 Jul 2014
|
Refactor fvp_config into common platform header
...
Changed the fvp_config array in fvp_common.c into a struct and
moved into a new optional common platform header,
include/plat/common/plat_config.h. Removed the config definitions
in fvp_def.h and updated all references to the platform config.
This makes the interface to the platform config cleaner and uses
a little less RAM.
Fixes ARM-software/tf-issues#180
Change-Id: I58dd7b3c150f24f7ee230a26fd57c827853ba803
Dan Handley
committed
on 9 Jul 2014
|
Calculate TCR bits based on VA and PA
...
Currently the TCR bits are hardcoded in xlat_tables.c. In order to
map higher physical address into low virtual address, the TCR bits
need to be configured accordingly.
This patch is to save the max VA and PA and calculate the TCR.PS/IPS
and t0sz bits in init_xlat_tables function.
Change-Id: Ia7a58e5372b20200153057d457f4be5ddbb7dae4
Lin Ma
authored
on 27 Jun 2014
Dan Handley
committed
on 9 Jul 2014
|
2014-07-01 |
Remove concept of top/bottom image loading
...
This concept is no longer required since we now support loading of
images at fixed addresses only.
The image loader now automatically detects the position of the image
inside the current memory layout and updates the layout such that
memory fragmentation is minimised.
The 'attr' field of the meminfo data structure, which used to hold
the bottom/top loading information, has been removed. Also the 'next'
field has been removed as it wasn't used anywhere.
The 'init_bl2_mem_layout()' function has been moved out of common
code and put in BL1-specific code. It has also been renamed into
'bl1_init_bl2_mem_layout'.
Fixes ARM-software/tf-issues#109
Change-Id: I3f54642ce7b763d5ee3b047ad0ab59eabbcf916d
Sandrine Bailleux
committed
on 1 Jul 2014
|
2014-06-26 |
Merge pull request #154 from athoelke/at/inline-mmio
...
Inline the mmio accessor functions
Andrew Thoelke
committed
on 26 Jun 2014
|
2014-06-24 |
Merge pull request #152 from jcastillo-arm/jc/tf-issues/073-v2
...
Remove all checkpatch errors from codebase
danh-arm
committed
on 24 Jun 2014
|