summaryrefslogtreecommitdiff
path: root/services
diff options
context:
space:
mode:
authorVarun Wadekar <vwadekar@nvidia.com>2017-02-23 10:34:06 -0800
committerVarun Wadekar <vwadekar@nvidia.com>2017-03-06 08:47:59 -0800
commitd67d021493f470cf25511299d3009b8d7d02a857 (patch)
tree1b6c1392e6ea8739c364a5877fa69fdf417f0421 /services
parent8e5906249ad2cf599150865e7a0b76f3d66a2ea8 (diff)
spd: trusty: support for AARCH64 mode
This patch removes support for running Trusty in the AARCH32 mode as all platforms use it in only AARCH64 mode. Signed-off-by: Varun Wadekar <vwadekar@nvidia.com>
Diffstat (limited to 'services')
-rw-r--r--services/spd/trusty/trusty.c28
1 files changed, 6 insertions, 22 deletions
diff --git a/services/spd/trusty/trusty.c b/services/spd/trusty/trusty.c
index b386b3b8..9c9de910 100644
--- a/services/spd/trusty/trusty.c
+++ b/services/spd/trusty/trusty.c
@@ -397,38 +397,19 @@ static const spd_pm_ops_t trusty_pm = {
static int32_t trusty_setup(void)
{
entry_point_info_t *ep_info;
- uint32_t instr;
uint32_t flags;
int ret;
- int aarch32 = 0;
+ /* Get trusty's entry point info */
ep_info = bl31_plat_get_next_image_ep_info(SECURE);
if (!ep_info) {
INFO("Trusty image missing.\n");
return -1;
}
- instr = *(uint32_t *)ep_info->pc;
-
- if (instr >> 24 == 0xea) {
- INFO("trusty: Found 32 bit image\n");
- aarch32 = 1;
- } else if (instr >> 8 == 0xd53810) {
- INFO("trusty: Found 64 bit image\n");
- } else {
- INFO("trusty: Found unknown image, 0x%x\n", instr);
- }
-
+ /* Trusty runs in AARCH64 mode */
SET_PARAM_HEAD(ep_info, PARAM_EP, VERSION_1, SECURE | EP_ST_ENABLE);
- if (!aarch32)
- ep_info->spsr = SPSR_64(MODE_EL1, MODE_SP_ELX,
- DISABLE_ALL_EXCEPTIONS);
- else
- ep_info->spsr = SPSR_MODE32(MODE32_svc, SPSR_T_ARM,
- SPSR_E_LITTLE,
- DAIF_FIQ_BIT |
- DAIF_IRQ_BIT |
- DAIF_ABT_BIT);
+ ep_info->spsr = SPSR_64(MODE_EL1, MODE_SP_ELX, DISABLE_ALL_EXCEPTIONS);
/*
* arg0 = TZDRAM aperture available for BL32
@@ -438,10 +419,13 @@ static int32_t trusty_setup(void)
ep_info->args.arg1 = ep_info->args.arg2;
ep_info->args.arg2 = TRUSTY_PARAMS_LEN_BYTES;
+ /* register init handler */
bl31_register_bl32_init(trusty_init);
+ /* register power management hooks */
psci_register_spd_pm_hook(&trusty_pm);
+ /* register interrupt handler */
flags = 0;
set_interrupt_rm_flag(flags, NON_SECURE);
ret = register_interrupt_type_handler(INTR_TYPE_S_EL1,