From 9352be88033900f89aa50dfbb13a13d40d698a9e Mon Sep 17 00:00:00 2001 From: Julius Werner Date: Tue, 23 Jul 2019 20:00:13 -0700 Subject: [PATCH] Use explicit-width data types in AAPCS parameter structs It's not a good idea to use u_register_t for the members of aapcs64_params_t and aapcs32_params_t, since the width of that type always depends on the current execution environment. This would cause problems if e.g. we used this structure to set up the entry point of an AArch32 program from within an AArch64 program. (It doesn't seem like any code is doing that today, but it's probably still a good idea to write this defensively. Also, it helps with my next patch.) Change-Id: I12c04a85611f2b6702589f3362bea3e6a7c9f776 Signed-off-by: Julius Werner --- include/common/ep_info.h | 24 ++++++++++++------------ plat/hisilicon/poplar/bl31_plat_setup.c | 4 ++-- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/include/common/ep_info.h b/include/common/ep_info.h index a09d03ba..97df52b3 100644 --- a/include/common/ep_info.h +++ b/include/common/ep_info.h @@ -69,21 +69,21 @@ #include typedef struct aapcs64_params { - u_register_t arg0; - u_register_t arg1; - u_register_t arg2; - u_register_t arg3; - u_register_t arg4; - u_register_t arg5; - u_register_t arg6; - u_register_t arg7; + uint64_t arg0; + uint64_t arg1; + uint64_t arg2; + uint64_t arg3; + uint64_t arg4; + uint64_t arg5; + uint64_t arg6; + uint64_t arg7; } aapcs64_params_t; typedef struct aapcs32_params { - u_register_t arg0; - u_register_t arg1; - u_register_t arg2; - u_register_t arg3; + uint32_t arg0; + uint32_t arg1; + uint32_t arg2; + uint32_t arg3; } aapcs32_params_t; /***************************************************************************** diff --git a/plat/hisilicon/poplar/bl31_plat_setup.c b/plat/hisilicon/poplar/bl31_plat_setup.c index f81078f0..981ef376 100644 --- a/plat/hisilicon/poplar/bl31_plat_setup.c +++ b/plat/hisilicon/poplar/bl31_plat_setup.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017-2018, ARM Limited and Contributors. All rights reserved. + * Copyright (c) 2017-2019, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ @@ -130,6 +130,6 @@ void bl31_plat_arch_setup(void) BL_COHERENT_RAM_BASE, BL_COHERENT_RAM_END); - INFO("Boot BL33 from 0x%lx for %lu Bytes\n", + INFO("Boot BL33 from 0x%lx for %llu Bytes\n", bl33_image_ep_info.pc, bl33_image_ep_info.args.arg2); } -- 2.30.2