Commit Graph

306 Commits

Author SHA1 Message Date
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
Soby Mathew a378108536 Fix compilation issue for IMF_READ_INTERRUPT_ID build flag
This patch fixes the compilation issue for trusted firmware when the
IMF_READ_INTERRUPT_ID is enabled.

Change-Id: I94ab613b9bc96a7c1935796c674dc42246aaafee
2014-05-29 16:54:10 +01:00
Soby Mathew b460b8bf23 Pass 'cookie' parameter to interrupt handler in BL3-1
The interrupt handling routine in BL3-1 expects a cookie as its last
parameter which was not being passed when invoking the interrupt
handler in BL3-1. This patch fixes that by passing a dummy cookie
parameter in the x3 register.

Fixes ARM-software/tf-issues#171

Change-Id: Ic98abbbd9f849e6f1c55343e865b5e0a4904a1c5
2014-05-29 16:45:19 +01:00
Andrew Thoelke 0346267194 Allow platform parameter X1 to be passed to BL3-1
bl2_main() was overwriting any platform set X1 parameter for BL3-1
with the value zero.

This patch ensure that any platform set value is correctly passed
to BL3-1. The FVP port adds a check to verify this parameter is
being passed correctly.

Fixes ARM-software/tf-issues#173

Change-Id: Ifbcda73d3d41d2b04a4baf5614e9d2d21f1717c8
2014-05-29 11:33:34 +01:00
Vikram Kanigiri f05cb4a764 Pass the args to the BL3-3 entrypoint
At present the arguments for BL3-3 in the entry_point_info
structure are not being transferred to X0-X7 before starting
execution of this image

This patch saves the args for BL3-3 into cpu context used
for its entry

Fixes ARM-software/tf-issues#172

Change-Id: I001b4b9bff6a264336f0d01d377619ae719f928b
2014-05-28 16:08:52 +01:00
Dan Handley 05b6edfe26 Merge pull request #110 from soby-mathew:sm/support_normal_irq_in_tsp-v4 into for-v0.4 2014-05-27 18:46:22 +01:00
Dan Handley 22e002da5f Merge pull request #112 from danh-arm:dh/refactor-plat-header-v4 into for-v0.4 2014-05-27 18:34:30 +01:00
Dan Handley 9865ac1576 Further renames of platform porting functions
Rename the ic_* platform porting functions to plat_ic_* to be
consistent with the other functions in platform.h. Also rename
bl31_get_next_image_info() to bl31_plat_get_next_image_ep_info()
and remove the duplicate declaration in bl31.h.

Change-Id: I4851842069d3cff14c0a468daacc0a891a7ede84
2014-05-27 16:17:21 +01:00