- 07 Apr, 2014 2 commits
-
-
Sandrine Bailleux authored
BL3-1 architecture setup code programs the system counter frequency into the CNTFRQ_EL0 register. This frequency is defined by the platform, though. This patch introduces a new platform hook that the architecture setup code can call to retrieve this information. In the ARM FVP port, this returns the first entry of the frequency modes table from the memory mapped generic timer. All system counter setup code has been removed from BL1 as some platforms may not have initialized the system counters at this stage. The platform specific settings done exclusively in BL1 have been moved to BL3-1. In the ARM FVP port, this consists in enabling and initializing the System level generic timer. Also, the frequency change request in the counter control register has been set to 0 to make it explicit it's using the base frequency. The CNTCR_FCREQ() macro has been fixed in this context to give an entry number rather than a bitmask. In future, when support for firmware update is implemented, there is a case where BL1 platform specific code will need to program the counter frequency. This should be implemented at that time. This patch also updates the relevant documentation.
-
Sandrine Bailleux authored
This reverts commit 1c297bf0 because it introduced a bug: the CNTFRQ_EL0 register was no longer programmed by all CPUs. bl31_platform_setup() function is invoked only in the cold boot path and consequently only on the primary cpu. A subsequent commit will correctly implement the necessary changes to the counter frequency setup code.
-
- 12 Mar, 2014 32 commits
-
-
Sandrine Bailleux authored
Workaround for issue #68
-
Sandrine Bailleux authored
On Juno, we don't need the following components so this patch removes them of the images: - semihosting support; - FVP power controller support; - GICv3 support.
-
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
Removing semihosting from the plat_io_storage code copied from FVP. 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
Currently UEFI and Linux are using SMC calls in the 'ARM Architecture' Owning Entity range so lets implement these to get things working. UEFI probably doesn't actually need to issue the ID_PRESENCE and ID_UID calls it does, and the device-tree used by Linux could specify the PSCI identifiers instead. After those changes, this patch isn't required. Signed-off-by:
Jon Medhurst <tixy@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
The SCP Ready command is sent by the SCP to indicate that the BL3-0 RAM Firmware image is successfully up and running. 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
-
Sandrine Bailleux authored
-
Sandrine Bailleux authored
-
Jon Medhurst authored
Juno doesn't have TZDRAM as FVP does, and there is real reason why we need a special memory region for bl31_args anyway, assuming we take care to copy it in BL31 before BL2's memory is reused. Signed-off-by:
Jon Medhurst <tixy@linaro.org>
-
Jon Medhurst authored
-
Jon Medhurst authored
Signed-off-by:
Jon Medhurst <tixy@linaro.org>
-
- 10 Mar, 2014 2 commits
-
-
Jeenu Viswambharan authored
At present, bl1_arch_setup() and bl31_arch_setup() program the counter frequency using a value from the memory mapped generic timer. The generic timer however is not necessarily present on all ARM systems (although it is architected to be present on all server systems). This patch moves the timer setup to platform-specific code and updates the relevant documentation. Also, CNTR.FCREQ is set as the specification requires the bit corresponding to the counter's frequency to be set when enabling. Since we intend to use the base frequency, set bit 8. Fixes ARM-software/tf-issues#24 Change-Id: I32c52cf882253e01f49056f47c58c23e6f422652
-
Jeenu Viswambharan authored
This patch removes the 'CPU present' flag that's being set but not referred or used anywhere else. Change-Id: Iaf82bdb354134e0b33af16c7ba88eb2259b2682a
-
- 05 Mar, 2014 4 commits
-
-
Ryan Harkin authored
Fixes ARM-software/tf-issues#41 The policy functions for each file to be loaded were implemented by copy/pasting one method and then varying the data checked. This patch creates a generic function to check the policy based on the data stored in a table. This removes the amount of duplicated code but also makes the code simpler and more efficient. Change-Id: I1c52eacf6f18a1442dabbb33edd03d4bb8bbeae0 Signed-off-by:
Ryan Harkin <ryan.harkin@linaro.org>
-
Jon Medhurst authored
Change-Id: I559c5a4d86cad55ce3f6ad71285b538d3cfd76dc Signed-off-by:
Jon Medhurst <tixy@linaro.org>
-
Jon Medhurst authored
This change requires all platforms to now specify a list of source files rather than object files. New source files should preferably be specified by using the path as well and we should add this in the future for all files so we can remove use of vpath. This is desirable because vpath hides issues like the fact that BL2 currently pulls in a BL1 file bl1/aarch64/early_exceptions.S and if in the future we added bl2/aarch64/early_exceptions.S then it's likely only one of the two version would be used for both bootloaders. This change also removes the 'dump' build target and simply gets bootloaders to always generate a dump file. At the same time the -x option is added so the section headers and symbols table are listed. Fixes ARM-software/tf-issues#11 Change-Id: Ie38f7be76fed95756c8576cf3f3ea3b7015a18dc Signed-off-by:
Jon Medhurst <tixy@linaro.org>
-
Jon Medhurst authored
Make gicd_set_ipriorityr() actually write to the priority register. Also correct callers of this function which want the highest priority to use the value zero as this is the highest priority value according to the ARM Generic Interrupt Controller Architecture Specification. To make this easier to get right, we introduce defines for the lowest and highest priorities for secure and non-secure interrupts. Fixes ARM-software/tf-issues#21 Signed-off-by:
Jon Medhurst <tixy@linaro.org>
-