diff options
author | Dan Handley <dan.handley@arm.com> | 2014-08-04 11:41:20 +0100 |
---|---|---|
committer | Dan Handley <dan.handley@arm.com> | 2014-08-19 10:55:54 +0100 |
commit | 5a06bb7e0b3ec6c98857423f52a1f98b54e46303 (patch) | |
tree | b4a608f3de36ebc2bf17560175d22755e0411d30 /bl32 | |
parent | da0af78aa230d3a873923e05643071f761f593e2 (diff) |
Clarify platform porting interface to TSP
* Move TSP platform porting functions to new file:
include/bl32/tsp/platform_tsp.h.
* Create new TSP_IRQ_SEC_PHY_TIMER definition for use by the generic
TSP interrupt handling code, instead of depending on the FVP
specific definition IRQ_SEC_PHY_TIMER.
* Rename TSP platform porting functions from bl32_* to tsp_*, and
definitions from BL32_* to TSP_*.
* Update generic TSP code to use new platform porting function names
and definitions.
* Update FVP port accordingly and move all TSP source files to:
plat/fvp/tsp/.
* Update porting guide with above changes.
Note: THIS CHANGE REQUIRES ALL PLATFORM PORTS OF THE TSP TO
BE UPDATED
Fixes ARM-software/tf-issues#167
Change-Id: Ic0ff8caf72aebb378d378193d2f017599fc6b78f
Diffstat (limited to 'bl32')
-rw-r--r-- | bl32/tsp/aarch64/tsp_entrypoint.S | 4 | ||||
-rw-r--r-- | bl32/tsp/tsp-fvp.mk | 38 | ||||
-rw-r--r-- | bl32/tsp/tsp.ld.S | 4 | ||||
-rw-r--r-- | bl32/tsp/tsp.mk | 4 | ||||
-rw-r--r-- | bl32/tsp/tsp_interrupt.c | 4 | ||||
-rw-r--r-- | bl32/tsp/tsp_main.c | 3 |
6 files changed, 11 insertions, 46 deletions
diff --git a/bl32/tsp/aarch64/tsp_entrypoint.S b/bl32/tsp/aarch64/tsp_entrypoint.S index 555f120b..1838d5a8 100644 --- a/bl32/tsp/aarch64/tsp_entrypoint.S +++ b/bl32/tsp/aarch64/tsp_entrypoint.S @@ -120,8 +120,8 @@ func tsp_entrypoint * specific early arch. setup e.g. mmu setup * --------------------------------------------- */ - bl bl32_early_platform_setup - bl bl32_plat_arch_setup + bl tsp_early_platform_setup + bl tsp_plat_arch_setup /* --------------------------------------------- * Jump to main function. diff --git a/bl32/tsp/tsp-fvp.mk b/bl32/tsp/tsp-fvp.mk deleted file mode 100644 index 3220c08f..00000000 --- a/bl32/tsp/tsp-fvp.mk +++ /dev/null @@ -1,38 +0,0 @@ -# -# Copyright (c) 2013-2014, ARM Limited and Contributors. All rights reserved. -# -# Redistribution and use in source and binary forms, with or without -# modification, are permitted provided that the following conditions are met: -# -# Redistributions of source code must retain the above copyright notice, this -# list of conditions and the following disclaimer. -# -# Redistributions in binary form must reproduce the above copyright notice, -# this list of conditions and the following disclaimer in the documentation -# and/or other materials provided with the distribution. -# -# Neither the name of ARM nor the names of its contributors may be used -# to endorse or promote products derived from this software without specific -# prior written permission. -# -# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE -# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -# POSSIBILITY OF SUCH DAMAGE. -# - -# TSP source files specific to FVP platform -BL32_SOURCES += drivers/arm/gic/arm_gic.c \ - drivers/arm/gic/gic_v2.c \ - plat/common/aarch64/platform_mp_stack.S \ - plat/common/plat_gic.c \ - plat/fvp/aarch64/fvp_common.c \ - plat/fvp/aarch64/fvp_helpers.S \ - plat/fvp/bl32_fvp_setup.c diff --git a/bl32/tsp/tsp.ld.S b/bl32/tsp/tsp.ld.S index 5807141f..5d7ffa11 100644 --- a/bl32/tsp/tsp.ld.S +++ b/bl32/tsp/tsp.ld.S @@ -68,8 +68,8 @@ SECTIONS __DATA_END__ = .; } >RAM -#ifdef BL32_PROGBITS_LIMIT - ASSERT(. <= BL32_PROGBITS_LIMIT, "BL3-2 progbits has exceeded its limit.") +#ifdef TSP_PROGBITS_LIMIT + ASSERT(. <= TSP_PROGBITS_LIMIT, "TSP progbits has exceeded its limit.") #endif stacks (NOLOAD) : { diff --git a/bl32/tsp/tsp.mk b/bl32/tsp/tsp.mk index 02cc13d3..f17ef1e1 100644 --- a/bl32/tsp/tsp.mk +++ b/bl32/tsp/tsp.mk @@ -28,6 +28,8 @@ # POSSIBILITY OF SUCH DAMAGE. # +INCLUDES += -Iinclude/bl32/tsp + BL32_SOURCES += bl32/tsp/tsp_main.c \ bl32/tsp/aarch64/tsp_entrypoint.S \ bl32/tsp/aarch64/tsp_exceptions.S \ @@ -50,7 +52,7 @@ $(eval $(call add_define,TSP_INIT_ASYNC)) # Include the platform-specific TSP Makefile # If no platform-specific TSP Makefile exists, it means TSP is not supported # on this platform. -TSP_PLAT_MAKEFILE := bl32/tsp/tsp-${PLAT}.mk +TSP_PLAT_MAKEFILE := plat/${PLAT}/tsp/tsp-${PLAT}.mk ifeq (,$(wildcard ${TSP_PLAT_MAKEFILE})) $(error TSP is not supported on platform ${PLAT}) else diff --git a/bl32/tsp/tsp_interrupt.c b/bl32/tsp/tsp_interrupt.c index 3ae54932..7163badd 100644 --- a/bl32/tsp/tsp_interrupt.c +++ b/bl32/tsp/tsp_interrupt.c @@ -88,7 +88,7 @@ int32_t tsp_fiq_handler(void) id = plat_ic_get_pending_interrupt_id(); /* TSP can only handle the secure physical timer interrupt */ - if (id != IRQ_SEC_PHY_TIMER) + if (id != TSP_IRQ_SEC_PHY_TIMER) return TSP_EL3_FIQ; /* @@ -96,7 +96,7 @@ int32_t tsp_fiq_handler(void) * another secure interrupt through an assertion. */ id = plat_ic_acknowledge_interrupt(); - assert(id == IRQ_SEC_PHY_TIMER); + assert(id == TSP_IRQ_SEC_PHY_TIMER); tsp_generic_timer_handler(); plat_ic_end_of_interrupt(id); diff --git a/bl32/tsp/tsp_main.c b/bl32/tsp/tsp_main.c index 31808fcf..08d89c3d 100644 --- a/bl32/tsp/tsp_main.c +++ b/bl32/tsp/tsp_main.c @@ -33,6 +33,7 @@ #include <debug.h> #include <platform.h> #include <platform_def.h> +#include <platform_tsp.h> #include <spinlock.h> #include <tsp.h> #include "tsp_private.h" @@ -116,7 +117,7 @@ uint64_t tsp_main(void) uint32_t linear_id = platform_get_core_pos(mpidr); /* Initialize the platform */ - bl32_platform_setup(); + tsp_platform_setup(); /* Initialize secure/applications state here */ tsp_generic_timer_start(); |