Merge pull request #1886 from ambroise-arm/av/static-checks

Fix extra compilation warnings
This commit is contained in:
Antonio Niño Díaz 2019-04-01 11:25:21 +01:00 committed by GitHub
commit 18ff0b61bb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
33 changed files with 124 additions and 119 deletions

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2015-2018, ARM Limited and Contributors. All rights reserved. * Copyright (c) 2015-2019, ARM Limited and Contributors. All rights reserved.
* *
* SPDX-License-Identifier: BSD-3-Clause * SPDX-License-Identifier: BSD-3-Clause
*/ */
@ -52,9 +52,6 @@ __dead2 static void bl1_fwu_done(void *client_cookie, void *reserved);
*/ */
static unsigned int sec_exec_image_id = INVALID_IMAGE_ID; static unsigned int sec_exec_image_id = INVALID_IMAGE_ID;
/* Authentication status of each image. */
extern unsigned int auth_img_flags[MAX_NUMBER_IDS];
/******************************************************************************* /*******************************************************************************
* Top level handler for servicing FWU SMCs. * Top level handler for servicing FWU SMCs.
******************************************************************************/ ******************************************************************************/
@ -108,7 +105,7 @@ register_t bl1_fwu_smc_handler(unsigned int smc_fid,
#define FWU_MAX_SIMULTANEOUS_IMAGES 10 #define FWU_MAX_SIMULTANEOUS_IMAGES 10
#endif #endif
static int bl1_fwu_loaded_ids[FWU_MAX_SIMULTANEOUS_IMAGES] = { static unsigned int bl1_fwu_loaded_ids[FWU_MAX_SIMULTANEOUS_IMAGES] = {
[0 ... FWU_MAX_SIMULTANEOUS_IMAGES-1] = INVALID_IMAGE_ID [0 ... FWU_MAX_SIMULTANEOUS_IMAGES-1] = INVALID_IMAGE_ID
}; };
@ -116,7 +113,7 @@ static int bl1_fwu_loaded_ids[FWU_MAX_SIMULTANEOUS_IMAGES] = {
* Adds an image_id to the bl1_fwu_loaded_ids array. * Adds an image_id to the bl1_fwu_loaded_ids array.
* Returns 0 on success, 1 on error. * Returns 0 on success, 1 on error.
*/ */
static int bl1_fwu_add_loaded_id(int image_id) static int bl1_fwu_add_loaded_id(unsigned int image_id)
{ {
int i; int i;
@ -141,7 +138,7 @@ static int bl1_fwu_add_loaded_id(int image_id)
* Removes an image_id from the bl1_fwu_loaded_ids array. * Removes an image_id from the bl1_fwu_loaded_ids array.
* Returns 0 on success, 1 on error. * Returns 0 on success, 1 on error.
*/ */
static int bl1_fwu_remove_loaded_id(int image_id) static int bl1_fwu_remove_loaded_id(unsigned int image_id)
{ {
int i; int i;
@ -160,7 +157,7 @@ static int bl1_fwu_remove_loaded_id(int image_id)
* This function checks if the specified image overlaps another image already * This function checks if the specified image overlaps another image already
* loaded. It returns 0 if there is no overlap, a negative error code otherwise. * loaded. It returns 0 if there is no overlap, a negative error code otherwise.
******************************************************************************/ ******************************************************************************/
static int bl1_fwu_image_check_overlaps(int image_id) static int bl1_fwu_image_check_overlaps(unsigned int image_id)
{ {
const image_desc_t *image_desc, *checked_image_desc; const image_desc_t *image_desc, *checked_image_desc;
const image_info_t *info, *checked_info; const image_info_t *info, *checked_info;

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018, ARM Limited and Contributors. All rights reserved. * Copyright (c) 2018-2019, ARM Limited and Contributors. All rights reserved.
* *
* SPDX-License-Identifier: BSD-3-Clause * SPDX-License-Identifier: BSD-3-Clause
*/ */
@ -18,7 +18,8 @@
int scmi_ap_core_set_reset_addr(void *p, uint64_t reset_addr, uint32_t attr) int scmi_ap_core_set_reset_addr(void *p, uint64_t reset_addr, uint32_t attr)
{ {
mailbox_mem_t *mbx_mem; mailbox_mem_t *mbx_mem;
int token = 0, ret; unsigned int token = 0;
int ret;
scmi_channel_t *ch = (scmi_channel_t *)p; scmi_channel_t *ch = (scmi_channel_t *)p;
validate_scmi_channel(ch); validate_scmi_channel(ch);
@ -51,7 +52,8 @@ int scmi_ap_core_set_reset_addr(void *p, uint64_t reset_addr, uint32_t attr)
int scmi_ap_core_get_reset_addr(void *p, uint64_t *reset_addr, uint32_t *attr) int scmi_ap_core_get_reset_addr(void *p, uint64_t *reset_addr, uint32_t *attr)
{ {
mailbox_mem_t *mbx_mem; mailbox_mem_t *mbx_mem;
int token = 0, ret; unsigned int token = 0;
int ret;
scmi_channel_t *ch = (scmi_channel_t *)p; scmi_channel_t *ch = (scmi_channel_t *)p;
uint32_t lo_addr, hi_addr; uint32_t lo_addr, hi_addr;

View File

@ -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 * SPDX-License-Identifier: BSD-3-Clause
*/ */
@ -90,7 +90,8 @@ void scmi_put_channel(scmi_channel_t *ch)
int scmi_proto_version(void *p, uint32_t proto_id, uint32_t *version) int scmi_proto_version(void *p, uint32_t proto_id, uint32_t *version)
{ {
mailbox_mem_t *mbx_mem; mailbox_mem_t *mbx_mem;
int token = 0, ret; unsigned int token = 0;
int ret;
scmi_channel_t *ch = (scmi_channel_t *)p; scmi_channel_t *ch = (scmi_channel_t *)p;
validate_scmi_channel(ch); validate_scmi_channel(ch);
@ -122,7 +123,8 @@ int scmi_proto_msg_attr(void *p, uint32_t proto_id,
uint32_t command_id, uint32_t *attr) uint32_t command_id, uint32_t *attr)
{ {
mailbox_mem_t *mbx_mem; mailbox_mem_t *mbx_mem;
int token = 0, ret; unsigned int token = 0;
int ret;
scmi_channel_t *ch = (scmi_channel_t *)p; scmi_channel_t *ch = (scmi_channel_t *)p;
validate_scmi_channel(ch); validate_scmi_channel(ch);

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2017, ARM Limited and Contributors. All rights reserved. * Copyright (c) 2017-2019, ARM Limited and Contributors. All rights reserved.
* *
* SPDX-License-Identifier: BSD-3-Clause * SPDX-License-Identifier: BSD-3-Clause
*/ */
@ -19,7 +19,8 @@ int scmi_pwr_state_set(void *p, uint32_t domain_id,
uint32_t scmi_pwr_state) uint32_t scmi_pwr_state)
{ {
mailbox_mem_t *mbx_mem; mailbox_mem_t *mbx_mem;
int token = 0, ret; unsigned int token = 0;
int ret;
/* /*
* Only asynchronous mode of `set power state` command is allowed on * Only asynchronous mode of `set power state` command is allowed on
@ -59,7 +60,8 @@ int scmi_pwr_state_get(void *p, uint32_t domain_id,
uint32_t *scmi_pwr_state) uint32_t *scmi_pwr_state)
{ {
mailbox_mem_t *mbx_mem; mailbox_mem_t *mbx_mem;
int token = 0, ret; unsigned int token = 0;
int ret;
scmi_channel_t *ch = (scmi_channel_t *)p; scmi_channel_t *ch = (scmi_channel_t *)p;
validate_scmi_channel(ch); validate_scmi_channel(ch);

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2017, ARM Limited and Contributors. All rights reserved. * Copyright (c) 2017-2019, ARM Limited and Contributors. All rights reserved.
* *
* SPDX-License-Identifier: BSD-3-Clause * SPDX-License-Identifier: BSD-3-Clause
*/ */
@ -18,7 +18,8 @@
int scmi_sys_pwr_state_set(void *p, uint32_t flags, uint32_t system_state) int scmi_sys_pwr_state_set(void *p, uint32_t flags, uint32_t system_state)
{ {
mailbox_mem_t *mbx_mem; mailbox_mem_t *mbx_mem;
int token = 0, ret; unsigned int token = 0;
int ret;
scmi_channel_t *ch = (scmi_channel_t *)p; scmi_channel_t *ch = (scmi_channel_t *)p;
validate_scmi_channel(ch); validate_scmi_channel(ch);
@ -50,7 +51,8 @@ int scmi_sys_pwr_state_set(void *p, uint32_t flags, uint32_t system_state)
int scmi_sys_pwr_state_get(void *p, uint32_t *system_state) int scmi_sys_pwr_state_get(void *p, uint32_t *system_state)
{ {
mailbox_mem_t *mbx_mem; mailbox_mem_t *mbx_mem;
int token = 0, ret; unsigned int token = 0;
int ret;
scmi_channel_t *ch = (scmi_channel_t *)p; scmi_channel_t *ch = (scmi_channel_t *)p;
validate_scmi_channel(ch); validate_scmi_channel(ch);

View File

@ -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 * SPDX-License-Identifier: BSD-3-Clause
*/ */
@ -99,7 +99,7 @@ void css_scp_suspend(const struct psci_power_state *target_state)
return; return;
} }
#if !HW_ASSISTED_COHERENCY #if !HW_ASSISTED_COHERENCY
int lvl; unsigned int lvl;
uint32_t scmi_pwr_state = 0; uint32_t scmi_pwr_state = 0;
/* /*
* If we reach here, then assert that power down at system power domain * If we reach here, then assert that power down at system power domain
@ -145,7 +145,8 @@ void css_scp_suspend(const struct psci_power_state *target_state)
*/ */
void css_scp_off(const struct psci_power_state *target_state) void css_scp_off(const struct psci_power_state *target_state)
{ {
int lvl = 0, ret; unsigned int lvl = 0;
int ret;
uint32_t scmi_pwr_state = 0; uint32_t scmi_pwr_state = 0;
/* At-least the CPU level should be specified to be OFF */ /* At-least the CPU level should be specified to be OFF */
@ -184,7 +185,8 @@ void css_scp_off(const struct psci_power_state *target_state)
*/ */
void css_scp_on(u_register_t mpidr) void css_scp_on(u_register_t mpidr)
{ {
int lvl = 0, ret, core_pos; unsigned int lvl = 0;
int ret, core_pos;
uint32_t scmi_pwr_state = 0; uint32_t scmi_pwr_state = 0;
for (; lvl <= PLAT_MAX_PWR_LVL; lvl++) for (; lvl <= PLAT_MAX_PWR_LVL; lvl++)

View File

@ -1,11 +1,12 @@
/* /*
* Copyright (c) 2015, ARM Limited and Contributors. All rights reserved. * Copyright (c) 2015-2019, ARM Limited and Contributors. All rights reserved.
* *
* SPDX-License-Identifier: BSD-3-Clause * SPDX-License-Identifier: BSD-3-Clause
*/ */
#include <assert.h> #include <assert.h>
#include <drivers/arm/sp804_delay_timer.h>
#include <drivers/delay_timer.h> #include <drivers/delay_timer.h>
#include <lib/mmio.h> #include <lib/mmio.h>

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2015-2018, ARM Limited and Contributors. All rights reserved. * Copyright (c) 2015-2019, ARM Limited and Contributors. All rights reserved.
* *
* SPDX-License-Identifier: BSD-3-Clause * SPDX-License-Identifier: BSD-3-Clause
*/ */
@ -30,10 +30,6 @@
#pragma weak plat_set_nv_ctr2 #pragma weak plat_set_nv_ctr2
/* Pointer to CoT */
extern const auth_img_desc_t *const cot_desc_ptr;
extern unsigned int auth_img_flags[MAX_NUMBER_IDS];
static int cmp_auth_param_type_desc(const auth_param_type_desc_t *a, static int cmp_auth_param_type_desc(const auth_param_type_desc_t *a,
const auth_param_type_desc_t *b) const auth_param_type_desc_t *b)
{ {

View File

@ -13,11 +13,11 @@
console_t *console_list; console_t *console_list;
uint8_t console_state = CONSOLE_FLAG_BOOT; uint8_t console_state = CONSOLE_FLAG_BOOT;
IMPORT_SYM(console_t *, __STACKS_START__, stacks_start)
IMPORT_SYM(console_t *, __STACKS_END__, stacks_end)
int console_register(console_t *console) int console_register(console_t *console)
{ {
IMPORT_SYM(console_t *, __STACKS_START__, stacks_start)
IMPORT_SYM(console_t *, __STACKS_END__, stacks_end)
/* Assert that the struct is not on the stack (common mistake). */ /* Assert that the struct is not on the stack (common mistake). */
assert((console < stacks_start) || (console >= stacks_end)); assert((console < stacks_start) || (console >= stacks_end));
/* Assert that we won't make a circle in the list. */ /* Assert that we won't make a circle in the list. */

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2014-2018, ARM Limited and Contributors. All rights reserved. * Copyright (c) 2014-2019, ARM Limited and Contributors. All rights reserved.
* *
* SPDX-License-Identifier: BSD-3-Clause * SPDX-License-Identifier: BSD-3-Clause
*/ */
@ -48,7 +48,7 @@ typedef struct {
uintptr_t dev_spec; uintptr_t dev_spec;
} fip_dev_state_t; } fip_dev_state_t;
static const uuid_t uuid_null = { {0} }; static const uuid_t uuid_null;
/* /*
* Only one file can be open across all FIP device * Only one file can be open across all FIP device
* as backends like io_memmap don't support * as backends like io_memmap don't support

View File

@ -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 * SPDX-License-Identifier: BSD-3-Clause
*/ */
@ -162,7 +162,7 @@ int scmi_ap_core_set_reset_addr(void *p, uint64_t reset_addr, uint32_t attr);
int scmi_ap_core_get_reset_addr(void *p, uint64_t *reset_addr, uint32_t *attr); int scmi_ap_core_get_reset_addr(void *p, uint64_t *reset_addr, uint32_t *attr);
/* API to get the platform specific SCMI channel information. */ /* API to get the platform specific SCMI channel information. */
scmi_channel_plat_info_t *plat_css_get_scmi_info(); scmi_channel_plat_info_t *plat_css_get_scmi_info(void);
/* API to override default PSCI callbacks for platforms that support SCMI. */ /* API to override default PSCI callbacks for platforms that support SCMI. */
const plat_psci_ops_t *css_scmi_override_pm_ops(plat_psci_ops_t *ops); const plat_psci_ops_t *css_scmi_override_pm_ops(plat_psci_ops_t *ops);

View File

@ -49,11 +49,12 @@ typedef struct console {
#include <drivers/console_assertions.h> #include <drivers/console_assertions.h>
/* /*
* NOTE: There is no publicly accessible console_register() function. Consoles * Add a console_t instance to the console list. This should only be called by
* are registered by directly calling the register function of a specific * console drivers after they have initialized all fields in the console
* implementation, e.g. console_16550_register() from <uart_16550.h>. Consoles * structure. Platforms seeking to register a new console need to call the
* registered that way can be unregistered/reconfigured with below functions. * respective console__register() function instead.
*/ */
int console_register(console_t *console);
/* Remove a single console_t instance from the console list. Return a pointer to /* Remove a single console_t instance from the console list. Return a pointer to
* the console that was removed if it was found, or NULL if not. */ * the console that was removed if it was found, or NULL if not. */
console_t *console_unregister(console_t *console); console_t *console_unregister(console_t *console);

View File

@ -187,6 +187,7 @@ void arm_bl2_platform_setup(void);
void arm_bl2_plat_arch_setup(void); void arm_bl2_plat_arch_setup(void);
uint32_t arm_get_spsr_for_bl32_entry(void); uint32_t arm_get_spsr_for_bl32_entry(void);
uint32_t arm_get_spsr_for_bl33_entry(void); uint32_t arm_get_spsr_for_bl33_entry(void);
int arm_bl2_plat_handle_post_image_load(unsigned int image_id);
int arm_bl2_handle_post_image_load(unsigned int image_id); int arm_bl2_handle_post_image_load(unsigned int image_id);
struct bl_params *arm_get_next_bl_params(void); struct bl_params *arm_get_next_bl_params(void);

View File

@ -1,10 +1,11 @@
/* /*
* Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved. * Copyright (c) 2013-2019, ARM Limited and Contributors. All rights reserved.
* *
* SPDX-License-Identifier: BSD-3-Clause * SPDX-License-Identifier: BSD-3-Clause
*/ */
#include <stddef.h> #include <stddef.h>
#include <string.h>
void *memchr(const void *src, int c, size_t len) void *memchr(const void *src, int c, size_t len)
{ {

View File

@ -1,10 +1,11 @@
/* /*
* Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved. * Copyright (c) 2013-2019, ARM Limited and Contributors. All rights reserved.
* *
* SPDX-License-Identifier: BSD-3-Clause * SPDX-License-Identifier: BSD-3-Clause
*/ */
#include <stddef.h> #include <stddef.h>
#include <string.h>
int memcmp(const void *s1, const void *s2, size_t len) int memcmp(const void *s1, const void *s2, size_t len)
{ {

View File

@ -1,10 +1,11 @@
/* /*
* Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved. * Copyright (c) 2013-2019, ARM Limited and Contributors. All rights reserved.
* *
* SPDX-License-Identifier: BSD-3-Clause * SPDX-License-Identifier: BSD-3-Clause
*/ */
#include <stddef.h> #include <stddef.h>
#include <string.h>
void *memcpy(void *dst, const void *src, size_t len) void *memcpy(void *dst, const void *src, size_t len)
{ {

View File

@ -1,10 +1,11 @@
/* /*
* Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved. * Copyright (c) 2013-2019, ARM Limited and Contributors. All rights reserved.
* *
* SPDX-License-Identifier: BSD-3-Clause * SPDX-License-Identifier: BSD-3-Clause
*/ */
#include <stddef.h> #include <stddef.h>
#include <string.h>
void *memset(void *dst, int val, size_t count) void *memset(void *dst, int val, size_t count)
{ {

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2013-2014, ARM Limited and Contributors. All rights reserved. * Copyright (c) 2013-2019, ARM Limited and Contributors. All rights reserved.
* *
* SPDX-License-Identifier: BSD-3-Clause * SPDX-License-Identifier: BSD-3-Clause
*/ */
@ -160,7 +160,7 @@ long semihosting_system(char *command_line)
long semihosting_get_flen(const char *file_name) long semihosting_get_flen(const char *file_name)
{ {
long file_handle; long file_handle;
size_t length; long length;
assert(semihosting_connection_supported()); assert(semihosting_connection_supported());

View File

@ -20,6 +20,7 @@
#include <platform_def.h> #include <platform_def.h>
#include "fvp_private.h" #include "fvp_private.h"
#include "../drivers/arm/gic/v3/gicv3_private.h"
#if ARM_RECOM_STATE_ID_ENC #if ARM_RECOM_STATE_ID_ENC

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2014-2018, ARM Limited and Contributors. All rights reserved. * Copyright (c) 2014-2019, ARM Limited and Contributors. All rights reserved.
* *
* SPDX-License-Identifier: BSD-3-Clause * SPDX-License-Identifier: BSD-3-Clause
*/ */
@ -20,5 +20,4 @@ void fvp_interconnect_enable(void);
void fvp_interconnect_disable(void); void fvp_interconnect_disable(void);
void tsp_early_platform_setup(void); void tsp_early_platform_setup(void);
#endif /* FVP_PRIVATE_H */ #endif /* FVP_PRIVATE_H */

View File

@ -61,7 +61,7 @@ static int is_watchdog_reset(void)
******************************************************************************/ ******************************************************************************/
int plat_arm_bl1_fwu_needed(void) int plat_arm_bl1_fwu_needed(void)
{ {
const uint32_t *nv_flags_ptr = (const uint32_t *)V2M_SYS_NVFLAGS_ADDR; const int32_t *nv_flags_ptr = (const int32_t *)V2M_SYS_NVFLAGS_ADDR;
/* Check if TOC is invalid or watchdog reset happened. */ /* Check if TOC is invalid or watchdog reset happened. */
if ((arm_io_is_toc_valid() != 1) || if ((arm_io_is_toc_valid() != 1) ||

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2015-2018, ARM Limited and Contributors. All rights reserved. * Copyright (c) 2015-2019, ARM Limited and Contributors. All rights reserved.
* *
* SPDX-License-Identifier: BSD-3-Clause * SPDX-License-Identifier: BSD-3-Clause
*/ */
@ -7,6 +7,7 @@
#include <errno.h> #include <errno.h>
#include <arch_helpers.h> #include <arch_helpers.h>
#include <plat/arm/common/plat_arm.h>
#include <plat/common/platform.h> #include <plat/common/platform.h>
#include <platform_def.h> #include <platform_def.h>

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2016-2018, ARM Limited and Contributors. All rights reserved. * Copyright (c) 2016-2019, ARM Limited and Contributors. All rights reserved.
* *
* SPDX-License-Identifier: BSD-3-Clause * SPDX-License-Identifier: BSD-3-Clause
*/ */
@ -20,7 +20,7 @@ static scmi_channel_plat_info_t juno_scmi_plat_info = {
.ring_doorbell = &mhu_ring_doorbell, .ring_doorbell = &mhu_ring_doorbell,
}; };
scmi_channel_plat_info_t *plat_css_get_scmi_info() scmi_channel_plat_info_t *plat_css_get_scmi_info(void)
{ {
return &juno_scmi_plat_info; return &juno_scmi_plat_info;
} }

View File

@ -1,11 +1,13 @@
/* /*
* Copyright (c) 2018, ARM Limited and Contributors. All rights reserved. * Copyright (c) 2018-2019, ARM Limited and Contributors. All rights reserved.
* *
* SPDX-License-Identifier: BSD-3-Clause * SPDX-License-Identifier: BSD-3-Clause
*/ */
#include <plat/common/platform.h> #include <plat/common/platform.h>
#include <sgi_variant.h>
unsigned int plat_arm_sgi_get_platform_id(void) unsigned int plat_arm_sgi_get_platform_id(void)
{ {
return mmio_read_32(SSC_VERSION) & SSC_VERSION_PART_NUM_MASK; return mmio_read_32(SSC_VERSION) & SSC_VERSION_PART_NUM_MASK;

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018, ARM Limited and Contributors. All rights reserved. * Copyright (c) 2018-2019, ARM Limited and Contributors. All rights reserved.
* *
* SPDX-License-Identifier: BSD-3-Clause * SPDX-License-Identifier: BSD-3-Clause
*/ */
@ -8,6 +8,7 @@
#include <common/debug.h> #include <common/debug.h>
#include <drivers/arm/tzc_dmc620.h> #include <drivers/arm/tzc_dmc620.h>
#include <plat/arm/common/plat_arm.h>
uintptr_t sgi575_dmc_base[] = { uintptr_t sgi575_dmc_base[] = {
SGI575_DMC620_BASE0, SGI575_DMC620_BASE0,

View File

@ -13,6 +13,7 @@
#include <drivers/arm/css/css_mhu_doorbell.h> #include <drivers/arm/css/css_mhu_doorbell.h>
#include <drivers/arm/css/scmi.h> #include <drivers/arm/css/scmi.h>
#include <plat/arm/common/plat_arm.h> #include <plat/arm/common/plat_arm.h>
#include <plat/common/platform.h>
#include <sgi_ras.h> #include <sgi_ras.h>
#include <sgi_variant.h> #include <sgi_variant.h>
@ -35,7 +36,7 @@ static scmi_channel_plat_info_t rd_n1e1_edge_scmi_plat_info = {
.ring_doorbell = &mhuv2_ring_doorbell, .ring_doorbell = &mhuv2_ring_doorbell,
}; };
scmi_channel_plat_info_t *plat_css_get_scmi_info() scmi_channel_plat_info_t *plat_css_get_scmi_info(void)
{ {
if (sgi_plat_info.platform_id == RD_N1E1_EDGE_SID_VER_PART_NUM) if (sgi_plat_info.platform_id == RD_N1E1_EDGE_SID_VER_PART_NUM)
return &rd_n1e1_edge_scmi_plat_info; return &rd_n1e1_edge_scmi_plat_info;
@ -43,7 +44,7 @@ scmi_channel_plat_info_t *plat_css_get_scmi_info()
return &sgi575_scmi_plat_info; return &sgi575_scmi_plat_info;
else else
panic(); panic();
}; }
void bl31_early_platform_setup2(u_register_t arg0, u_register_t arg1, void bl31_early_platform_setup2(u_register_t arg0, u_register_t arg1,
u_register_t arg2, u_register_t arg3) u_register_t arg2, u_register_t arg3)

View File

@ -1,11 +1,12 @@
/* /*
* Copyright (c) 2018, ARM Limited and Contributors. All rights reserved. * Copyright (c) 2018-2019, ARM Limited and Contributors. All rights reserved.
* *
* SPDX-License-Identifier: BSD-3-Clause * SPDX-License-Identifier: BSD-3-Clause
*/ */
#include <arch_helpers.h> #include <arch_helpers.h>
#include <common/debug.h> #include <common/debug.h>
#include <plat/arm/common/plat_arm.h>
/* /*
* For SGI575 which support FCM (with automatic interconnect enter/exit), * For SGI575 which support FCM (with automatic interconnect enter/exit),

View File

@ -5,6 +5,7 @@
*/ */
#include <plat/arm/common/plat_arm.h> #include <plat/arm/common/plat_arm.h>
#include <plat/common/platform.h>
#include <sgi_variant.h> #include <sgi_variant.h>

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018, Arm Limited. All rights reserved. * Copyright (c) 2018-2019, Arm Limited. All rights reserved.
* *
* SPDX-License-Identifier: BSD-3-Clause * SPDX-License-Identifier: BSD-3-Clause
*/ */
@ -14,6 +14,7 @@
#include <common/debug.h> #include <common/debug.h>
#include <common/fdt_wrappers.h> #include <common/fdt_wrappers.h>
#include <lib/object_pool.h> #include <lib/object_pool.h>
#include <plat/common/platform.h>
#include <services/sp_res_desc.h> #include <services/sp_res_desc.h>
/******************************************************************************* /*******************************************************************************

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018, Arm Limited. All rights reserved. * Copyright (c) 2018-2019, Arm Limited. All rights reserved.
* *
* SPDX-License-Identifier: BSD-3-Clause * SPDX-License-Identifier: BSD-3-Clause
*/ */
@ -9,6 +9,7 @@
#include <platform_def.h> #include <platform_def.h>
#include <common/debug.h> #include <common/debug.h>
#include <plat/common/platform.h>
#include <tools_share/sptool.h> #include <tools_share/sptool.h>
static unsigned int sp_next; static unsigned int sp_next;

View File

@ -379,6 +379,41 @@ static uint64_t spci_service_request_blocking(void *handle,
SMC_RET4(handle, SPCI_SUCCESS, rx1, rx2, rx3); SMC_RET4(handle, SPCI_SUCCESS, rx1, rx2, rx3);
} }
/*******************************************************************************
* This function handles the returned values from the Secure Partition.
******************************************************************************/
static void spci_handle_returned_values(const cpu_context_t *cpu_ctx,
uint64_t ret)
{
if (ret == SPRT_PUT_RESPONSE_AARCH64) {
uint32_t token;
uint64_t x3, x4, x5, x6;
token = read_ctx_reg(get_gpregs_ctx(cpu_ctx), CTX_GPREG_X1);
x3 = read_ctx_reg(get_gpregs_ctx(cpu_ctx), CTX_GPREG_X3);
x4 = read_ctx_reg(get_gpregs_ctx(cpu_ctx), CTX_GPREG_X4);
x5 = read_ctx_reg(get_gpregs_ctx(cpu_ctx), CTX_GPREG_X5);
x6 = read_ctx_reg(get_gpregs_ctx(cpu_ctx), CTX_GPREG_X6);
uint16_t client_id = x6 & 0xFFFFU;
uint16_t service_handle = x6 >> 16;
int rc = spm_response_add(client_id, service_handle, token,
x3, x4, x5);
if (rc != 0) {
/*
* This is error fatal because we can't return to the SP
* from this SMC. The SP has crashed.
*/
panic();
}
} else if ((ret != SPRT_YIELD_AARCH64) &&
(ret != SPM_SECURE_PARTITION_PREEMPTED)) {
ERROR("SPM: %s: Unexpected x0 value 0x%llx\n", __func__, ret);
panic();
}
}
/******************************************************************************* /*******************************************************************************
* This function requests a Secure Service from a given handle and client ID. * This function requests a Secure Service from a given handle and client ID.
******************************************************************************/ ******************************************************************************/
@ -465,34 +500,8 @@ static uint64_t spci_service_request_start(void *handle,
/* Jump to the Secure Partition. */ /* Jump to the Secure Partition. */
uint64_t ret = spm_sp_synchronous_entry(sp_ctx, 1); uint64_t ret = spm_sp_synchronous_entry(sp_ctx, 1);
/* Verify returned values */ /* Handle returned values */
if (ret == SPRT_PUT_RESPONSE_AARCH64) { spci_handle_returned_values(cpu_ctx, ret);
uint32_t token;
uint64_t rx1, rx2, rx3, x6;
token = read_ctx_reg(get_gpregs_ctx(cpu_ctx), CTX_GPREG_X1);
rx1 = read_ctx_reg(get_gpregs_ctx(cpu_ctx), CTX_GPREG_X3);
rx2 = read_ctx_reg(get_gpregs_ctx(cpu_ctx), CTX_GPREG_X4);
rx3 = read_ctx_reg(get_gpregs_ctx(cpu_ctx), CTX_GPREG_X5);
x6 = read_ctx_reg(get_gpregs_ctx(cpu_ctx), CTX_GPREG_X6);
uint16_t client_id = x6 & 0xFFFFU;
uint16_t service_handle = x6 >> 16;
int rc = spm_response_add(client_id, service_handle, token,
rx1, rx2, rx3);
if (rc != 0) {
/*
* This is error fatal because we can't return to the SP
* from this SMC. The SP has crashed.
*/
panic();
}
} else if ((ret != SPRT_YIELD_AARCH64) &&
(ret != SPM_SECURE_PARTITION_PREEMPTED)) {
ERROR("SPM: %s: Unexpected x0 value 0x%llx\n", __func__, ret);
panic();
}
/* Flag Secure Partition as idle. */ /* Flag Secure Partition as idle. */
assert(sp_ctx->state == SP_STATE_BUSY); assert(sp_ctx->state == SP_STATE_BUSY);
@ -572,34 +581,8 @@ static uint64_t spci_service_request_resume(void *handle, u_register_t x1,
/* Jump to the Secure Partition. */ /* Jump to the Secure Partition. */
uint64_t ret = spm_sp_synchronous_entry(sp_ctx, 1); uint64_t ret = spm_sp_synchronous_entry(sp_ctx, 1);
/* Verify returned values */ /* Handle returned values */
if (ret == SPRT_PUT_RESPONSE_AARCH64) { spci_handle_returned_values(cpu_ctx, ret);
uint32_t token;
uint64_t rx1, rx2, rx3, x6;
token = read_ctx_reg(get_gpregs_ctx(cpu_ctx), CTX_GPREG_X1);
rx1 = read_ctx_reg(get_gpregs_ctx(cpu_ctx), CTX_GPREG_X3);
rx2 = read_ctx_reg(get_gpregs_ctx(cpu_ctx), CTX_GPREG_X4);
rx3 = read_ctx_reg(get_gpregs_ctx(cpu_ctx), CTX_GPREG_X5);
x6 = read_ctx_reg(get_gpregs_ctx(cpu_ctx), CTX_GPREG_X6);
uint16_t client_id = x6 & 0xFFFFU;
uint16_t service_handle = x6 >> 16;
int rc = spm_response_add(client_id, service_handle, token,
rx1, rx2, rx3);
if (rc != 0) {
/*
* This is error fatal because we can't return to the SP
* from this SMC. The SP has crashed.
*/
panic();
}
} else if ((ret != SPRT_YIELD_AARCH64) &&
(ret != SPM_SECURE_PARTITION_PREEMPTED)) {
ERROR("SPM: %s: Unexpected x0 value 0x%llx\n", __func__, ret);
panic();
}
/* Flag Secure Partition as idle. */ /* Flag Secure Partition as idle. */
assert(sp_ctx->state == SP_STATE_BUSY); assert(sp_ctx->state == SP_STATE_BUSY);

View File

@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2018, Arm Limited. All rights reserved. * Copyright (c) 2018-2019, Arm Limited. All rights reserved.
* *
* SPDX-License-Identifier: BSD-3-Clause * SPDX-License-Identifier: BSD-3-Clause
*/ */
@ -9,6 +9,8 @@
#include <lib/utils_def.h> #include <lib/utils_def.h>
#include <platform_def.h> #include <platform_def.h>
#include "./spm_private.h"
/******************************************************************************* /*******************************************************************************
* Secure Service response global array. All the responses to the requests done * Secure Service response global array. All the responses to the requests done
* to the Secure Partition are stored here. They are removed from the array as * to the Secure Partition are stored here. They are removed from the array as
@ -40,7 +42,7 @@ int spm_response_add(uint16_t client_id, uint16_t handle, uint32_t token,
} }
} }
for (int i = 0; i < ARRAY_SIZE(responses); i++) { for (unsigned int i = 0U; i < ARRAY_SIZE(responses); i++) {
struct sprt_response *resp = &(responses[i]); struct sprt_response *resp = &(responses[i]);
if (resp->is_valid == 0) { if (resp->is_valid == 0) {

View File

@ -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 * SPDX-License-Identifier: BSD-3-Clause
*/ */
@ -20,6 +20,7 @@
#include <lib/utils.h> #include <lib/utils.h>
#include <lib/xlat_tables/xlat_tables_v2.h> #include <lib/xlat_tables/xlat_tables_v2.h>
#include <plat/common/platform.h> #include <plat/common/platform.h>
#include <services/spm_svc.h>
#include <services/sprt_svc.h> #include <services/sprt_svc.h>
#include <smccc_helpers.h> #include <smccc_helpers.h>