Commit Graph

363 Commits

Author SHA1 Message Date
Sandrine Bailleux 26bae2fc74 Workaround: Define BL32 base address
Workaround for issue #68
2014-06-04 15:37:36 +01:00
Sandrine Bailleux 6a89c0d46e juno: Pull out some software components
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.
2014-06-04 15:37:36 +01:00
Sandrine Bailleux 476165d31d juno: Improve TZC-400 initialisation code
- Distinguish Juno specific from platform agnostic constants
 - Define constants for Juno TZC-400 NSAID
2014-06-04 15:37:35 +01:00
Sandrine Bailleux f3a80454c1 tzc-400: Export some TZC-400 related constants in a generic header 2014-06-04 15:37:35 +01:00
Sandrine Bailleux 87abe30b21 juno: Expose NIC-400 constants in the platform header file
It is easier to have all platform constants in the same place.
2014-06-04 15:37:35 +01:00
Sandrine Bailleux 5d4c86436a juno: Implement plat_report_exception() function
As for FVP platforms, Juno provides some LEDs that we can
use to report exceptions during the early boot code.
2014-06-04 15:37:35 +01:00
Sandrine Bailleux 29bb973d3e juno: BL2: Load BL30
Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org>
2014-06-04 15:37:35 +01:00
Jon Medhurst 3c74eb6ca1 Add optional BL30 to fip make rule
Signed-off-by: Jon Medhurst <tixy@linaro.org>
2014-06-04 15:37:35 +01:00
Ryan Harkin 8f2411c071 io_fip: add BL30 to FIP name to uuid table
BL30 needs an entry in the table in io_fip.c.  I made it #ifdef'd so
that ports that don't use a BL30 won't break.

Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org>
2014-06-04 15:37:35 +01:00
Ryan Harkin bbd918c41e juno: plat_io_storage: remove semihosting
Removing semihosting from the plat_io_storage code copied from FVP.

Signed-off-by: Ryan Harkin <ryan.harkin@linaro.org>
2014-06-04 15:37:35 +01:00
Ryan Harkin 8276d53e4b juno: BL1: default to building bypass rom
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>
2014-06-04 15:37:35 +01:00
Jon Medhurst 1b0ad016bd juno: Add a handler for 'ARM Architecture' SMC calls
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>
2014-06-04 15:37:35 +01:00
Jon Medhurst 53677b935a Workaround: Setup register context for BL3-3
This is a temporary solution for issue #20

Signed-off-by: Jon Medhurst <tixy@linaro.org>
2014-06-04 15:37:35 +01:00
Jon Medhurst fc73ee91bf juno: Implement PM ops to power down CPUs
Signed-off-by: Jon Medhurst <tixy@linaro.org>
2014-06-04 15:37:35 +01:00
Jon Medhurst b44e1f562e juno: Implement PM ops to power on CPUs
Signed-off-by: Jon Medhurst <tixy@linaro.org>
2014-06-04 15:37:35 +01:00
Jon Medhurst 49fd6d0775 juno: Implement SCPI Set CSS Power State command
Signed-off-by: Jon Medhurst <tixy@linaro.org>
2014-06-04 15:37:35 +01:00
Jon Medhurst 378d73fb61 juno: Add bootloader for SCP image
Signed-off-by: Jon Medhurst <tixy@linaro.org>
2014-06-04 15:37:35 +01:00
Jon Medhurst 5951bc1f65 juno: Add SCPI interface and implement the SCP Ready command
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>
2014-06-04 15:37:35 +01:00
Jon Medhurst 3928b593bd juno: Add MHU interface
Signed-off-by: Jon Medhurst <tixy@linaro.org>
2014-06-04 15:37:35 +01:00
Jon Medhurst 96b8dd2b56 juno: Initialise PCIe
Signed-off-by: Jon Medhurst <tixy@linaro.org>
2014-06-04 15:37:35 +01:00
Jon Medhurst f91ec7dc0a juno: Initialise TZC-400
Signed-off-by: Jon Medhurst <tixy@linaro.org>
2014-06-04 15:37:35 +01:00
Jon Medhurst 4d958dbf70 juno: Initialise NIC-400
Signed-off-by: Jon Medhurst <tixy@linaro.org>
2014-06-04 15:37:34 +01:00
Jon Medhurst 8e69da328e juno: Initialise GIC
Signed-off-by: Jon Medhurst <tixy@linaro.org>
2014-06-04 15:37:34 +01:00
Jon Medhurst 82195441d0 juno: Port plat_topology.c
Signed-off-by: Jon Medhurst <tixy@linaro.org>
2014-06-04 15:37:34 +01:00
Jon Medhurst 521b4ebaa8 juno: Update GIC addresses
Signed-off-by: Jon Medhurst <tixy@linaro.org>
2014-06-04 15:37:34 +01:00
Jon Medhurst 5c77ec4b58 juno: Port mailbox initialisation
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>
2014-06-04 15:37:34 +01:00
Jon Medhurst 6ba5c70dd0 juno: Port CCI
Signed-off-by: Jon Medhurst <tixy@linaro.org>
2014-06-04 15:37:34 +01:00
Jon Medhurst 7d571f3ac7 juno: Override platform_get_core_pos and platform_is_primary_cpu
Signed-off-by: Jon Medhurst <tixy@linaro.org>
2014-06-04 15:37:34 +01:00
Jon Medhurst 548cc933c7 juno: Update memory map and use generic MMU code
Signed-off-by: Jon Medhurst <tixy@linaro.org>
2014-06-04 15:37:34 +01:00
Sandrine Bailleux ea250b2010 juno: Various tidyups 2014-06-04 15:37:34 +01:00
Sandrine Bailleux d392330d9d juno: Improve compliance to Linux coding style 2014-06-04 15:37:34 +01:00
Sandrine Bailleux 1649a5aecf juno: Use the correct firmware image names in comments and messages 2014-06-04 15:37:34 +01:00
Jon Medhurst 772b6e27eb juno: Use static declaration of bl31_args
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>
2014-06-04 15:37:34 +01:00
Jon Medhurst 7ec0b59086 juno: Initialise architected timer in BL3-1 2014-06-04 15:37:34 +01:00
Jon Medhurst 068d9170a3 juno: Create as a trimmed copy of plat/fvp
Signed-off-by: Jon Medhurst <tixy@linaro.org>
2014-06-04 15:37:34 +01:00
Dan Handley 977fbcd4e0 Merge pull request #122 from 'danh-arm:dh/v0.4-docs' 2014-06-03 18:50:13 +01:00
Dan Handley a96e12df17 Merge pull request #124 from 'danh-arm:sm/imf-documentation' 2014-06-03 18:48:27 +01:00
Achin Gupta a4fa3cb159 Document design of the Interrupt Mangement Framework
This patch adds documentation that describes the design of the Interrupt
management framework in the ARM Trusted Firmware. The porting-guide.md has also
been updated to describe the interface that should be implemented by each
platform to support this framework.

Change-Id: I3eda48e5c9456e6a9516956bee16a29e366633b7
Co-Authored-By: Soby Mathew <soby.mathew@arm.com>
2014-06-03 18:42:14 +01:00
Dan Handley eab932bf6a Merge pull request #119 from 'soby-mathew:sm/doc_crash_reporting' 2014-06-03 17:41:41 +01:00
Dan Handley 78247453a7 Merge pull request #117 from 'danh-arm:dh/v0.4-user-guide' 2014-06-03 17:39:10 +01:00
Dan Handley 79a9ae5a8f Merge pull request #121 'vikramkanigiri:vk/doc_for_133' 2014-06-03 17:38:11 +01:00
Vikram Kanigiri e452cd8993 Documentation for BL3-1 hardening and reset vector
Update documentation with BL3-1 hardening interface
changes and for using BL3-1 as a reset vector feature

Change-Id: Iafdd05e7a8e66503409f2acc934372efef5bc51b
2014-06-03 15:27:35 +01:00
Dan Handley db2c760fe4 Trusted Firmware v0.4 release documentation
Updates to readme.md and change-log.md to describe the features and changes in
the v0.4 release.

Change-Id: Ice0a7cf7abae349f552e662eac638a46acc5db3f
2014-06-03 14:52:12 +01:00
Dan Handley 5e831e69be User guide updates for v0.4 release
Update the Linux kernel, Linaro file system, FVP and DS-5 versions used for the
v0.4 release in user-guide.md.

Change-Id: I2265fc17c229d4b8cc52165d6583a4a579cdcee3
2014-06-03 11:53:30 +01:00
Soby Mathew 87625fde47 Documentation for the new crash reporting implementation
This patch modifies and adds to the existing documentation
for the crash reporting implementation in BL3-1.

Change-Id: I2cfbfeeeb64996ec7d19a9ddf95295482899b4bd
2014-06-02 15:58:51 +01:00
Dan Handley 279afef30a Merge pull request #116 from 'danh-arm:dh/refactoring-docs' 2014-05-30 17:33:06 +01:00
Dan Handley b68954c8f2 Fix porting guide references to platform.h
Following recent refactoring changes to platform.h, this commit updates
porting-guide.md to correctly refer to platform.h and platform_def.h where
appropriate.

Change-Id: Idf1e77503c24358696f8f3c14caa0cc1d579deb4
2014-05-30 13:00:53 +01:00
Dan Handley e10af77b28 Merge pull request #111 'soby-mathew-sm:fix_cookie_to_int_handler' 2014-05-29 17:11:04 +01:00
Dan Handley 886dfdf21a Merge pull request #115 'athoelke-at:fix-bl31-X1-parameter' 2014-05-29 17:09:24 +01:00
Dan Handley bcc8d77933 Merge pull request #114 from 'vikramkanigiri:vk/pass_bl33_args' 2014-05-29 17:05:34 +01:00