- 05 Jun, 2014 5 commits
-
-
Sandrine Bailleux authored
Instead of having a single version of the MMU setup functions for all bootloader images that can execute either in EL3 or in EL1, provide separate functions for EL1 and EL3. Each bootloader image can then call the appropriate version of these functions. The aim is to reduce the amount of code compiled in each BL image by embedding only what's needed (e.g. BL1 to embed only EL3 variants). Change-Id: Ie3f6fb58f7d9ea4e4085b5069e27d6b9dceaa286
-
Sandrine Bailleux authored
This patch implements the TSP on Juno. It executes from Secure RAM. Also, the other bootloader images (i.e. BL1 R/W, BL2 and BL3-1) have been moved around. The reason is, although there was enough space overall to store the TSP in SRAM, there was no contiguous free chunk of SRAM big enough to hold it. This patch keeps the overall memory layout (i.e. keeping BL1 R/W at the bottom, BL2 at the top and BL3-1 in between) but moves the base addresses of all the bootloader images in such a way that: - memory fragmentation is reduced enough to fit BL3-2 in; - new base addresses are suitable for release builds as well as debug ones; - each image has a few extra kilobytes for future growth. BL3-1 and BL3-2 are the images which received the biggest slice of the cake since they will most probably grow the most. A few useful numbers for reference (valid at the time of this patch): |-----------------------|------------------------------- | image size (debug) | extra space for the future --------|-----------------------|------------------------------- BL1 R/W | 28 KB | 4 KB BL2 | 48 KB | 4 KB BL3-1 | 96 KB | 8 KB BL3-2 | 56 KB | 8 KB --------|-----------------------|------------------------------- Total | 228 KB | 24 KB = 252 KB --------|-----------------------|------------------------------- Note: On Juno, although the Secure RAM is 256 KB, the first 4KB are reserved for the AP/SCP mailboxes. Change-Id: I999ec39589c45beabe1ecd772641623e58569a6e
-
Sandrine Bailleux authored
disable_mmu() cannot work as a C function as there is no control over data accesses generated by the compiler between disabling and cleaning the data cache. This results in reading stale data from main memory. This patch removes the C version of this function in juno code. An assembly version has been introduced in commit 2f5dcfef. Change-Id: I0de10dbe2db8d22855bf1f60f1e48540a4861cb6
-
Sandrine Bailleux authored
This is a miscellaneous commit that fixes all build errors introduced by the rebase of the Juno codebase on the latest trusted firmware. - Make codebase consistent in its use of #include "" syntax for user includes and #include <> syntax for system includes. - Sort header files alphabetically - Use tag names for structure types. Replace instances of the former io_handle and io_dev_handle types with uintptr_t. - Review the .c and .S files for which header files really need including and reorder the #include statements alphabetically. Change-Id: I1d409fafb6dc257a38992ee15b22b0e890d040b0
-
Sandrine Bailleux authored
Also remove 'PL011_BASE' macro because it is no longer used. Change-Id: Iefe94037cf67293b630d5256e6cac3f82abda807
-
- 04 Jun, 2014 22 commits
-
-
Sandrine Bailleux authored
These changes are necessary because of commit 2bf28e62. Change-Id: I3e42e97638fe895c885bcbf44392a899284956f8
-
Sandrine Bailleux authored
In the Juno port, this function returns the first entry of the frequency modes table from the memory mapped generic timer.
-
Sandrine Bailleux authored
Workaround for issue #68
-
Sandrine Bailleux authored
- Distinguish Juno specific from platform agnostic constants - Define constants for Juno TZC-400 NSAID
-
Sandrine Bailleux authored
It is easier to have all platform constants in the same place.
-
Sandrine Bailleux authored
As for FVP platforms, Juno provides some LEDs that we can use to report exceptions during the early boot code.
-
Sandrine Bailleux authored
Signed-off-by:
Ryan Harkin <ryan.harkin@linaro.org>
-
Ryan Harkin authored
Juno has a "taped out" BL1. To run your own BL1 on the board, you have to place it in a "ROM bypass" address and configure the platform to boot from there. The agreed bypass address is an offset of 0x03EC0000 from the start of NOR flash (0x08000000), which equates to 0x0BEC0000. To run the model using a BL1 in bypass mode, you should use a parameter set something like this: <path to>/FVP_CSS_Juno3 \ -C css.aon.scp.ROMloader.fname=<SCP ROM filename> \ --data css.cluster1.cpu0=bl1.bin@0x0BEC0000 \ -C soc.scc.apps_alt_boot=0x0BEC0000 To build BL1 as a ROM located at address zero, you can over-ride the default value for TZROM_BASE by passing parameters to make, eg: ASFLAGS="-D TZROM_BASE=0x00000000" \ CFLAGS="-D TZROM_BASE=0x00000000" \ CROSS_COMPILE=aarch64-linux-gnu- \ make PLAT=juno DEBUG=1 all Then you can launch the model using a command such as: <path to>/FVP_CSS_Juno3 \ -C css.aon.scp.ROMloader.fname=<SCP ROM filename> \ -C css.trustedBootROMloader.fname=<path to>/bl1.bin \ Signed-off-by:
Ryan Harkin <ryan.harkin@linaro.org>
-
Jon Medhurst authored
This is a temporary solution for issue #20 Signed-off-by:
Jon Medhurst <tixy@linaro.org>
-
Jon Medhurst authored
Signed-off-by:
Jon Medhurst <tixy@linaro.org>
-
Jon Medhurst authored
Signed-off-by:
Jon Medhurst <tixy@linaro.org>
-
Jon Medhurst authored
Signed-off-by:
Jon Medhurst <tixy@linaro.org>
-
Jon Medhurst authored
Signed-off-by:
Jon Medhurst <tixy@linaro.org>
-
Jon Medhurst authored
Signed-off-by:
Jon Medhurst <tixy@linaro.org>
-
Jon Medhurst authored
Signed-off-by:
Jon Medhurst <tixy@linaro.org>
-
Jon Medhurst authored
Signed-off-by:
Jon Medhurst <tixy@linaro.org>
-
Jon Medhurst authored
Note, on Juno mailboxes are 16 bytes because any bigger and they would overlap the memory used for MHU payload data for SCP->AP transfers. Signed-off-by:
Jon Medhurst <tixy@linaro.org>
-
Jon Medhurst authored
Signed-off-by:
Jon Medhurst <tixy@linaro.org>
-
Jon Medhurst authored
Signed-off-by:
Jon Medhurst <tixy@linaro.org>
-
Jon Medhurst authored
Signed-off-by:
Jon Medhurst <tixy@linaro.org>
-
Sandrine Bailleux authored
-
Jon Medhurst authored
Signed-off-by:
Jon Medhurst <tixy@linaro.org>
-
- 23 May, 2014 1 commit
-
-
Dan Handley authored
Previously, platform.h contained many declarations and definitions used for different purposes. This file has been split so that: * Platform definitions used by common code that must be defined by the platform are now in platform_def.h. The exact include path is exported through $PLAT_INCLUDES in the platform makefile. * Platform definitions specific to the FVP platform are now in /plat/fvp/fvp_def.h. * Platform API declarations specific to the FVP platform are now in /plat/fvp/fvp_private.h. * The remaining platform API declarations that must be ported by each platform are still in platform.h but this file has been moved to /include/plat/common since this can be shared by all platforms. Change-Id: Ieb3bb22fbab3ee8027413c6b39a783534aee474a
-