diff options
author | Madhukar Pappireddy <madhukar.pappireddy@arm.com> | 2021-02-11 15:35:33 +0000 |
---|---|---|
committer | TrustedFirmware Code Review <review@review.trustedfirmware.org> | 2021-02-11 15:35:33 +0000 |
commit | edbe490baa056352c2561d219856f31679e06152 (patch) | |
tree | 1abbe8d7f6d3b1d17f5779e35528d6837e9ecd49 | |
parent | 04c122310477da976ccd720861561e12b73a785e (diff) | |
parent | 42ea8d67317c111b82c0e47bfa3057e754417966 (diff) | |
download | arm-trusted-firmware-edbe490baa056352c2561d219856f31679e06152.tar.gz |
Merge "morello: Modify morello_plat_info structure" into integration
-rw-r--r-- | plat/arm/board/morello/morello_bl31_setup.c | 26 | ||||
-rw-r--r-- | plat/arm/board/morello/morello_def.h | 6 |
2 files changed, 19 insertions, 13 deletions
diff --git a/plat/arm/board/morello/morello_bl31_setup.c b/plat/arm/board/morello/morello_bl31_setup.c index 5b91e87e1..59dd37b17 100644 --- a/plat/arm/board/morello/morello_bl31_setup.c +++ b/plat/arm/board/morello/morello_bl31_setup.c @@ -8,6 +8,7 @@ #include <drivers/arm/css/css_mhu_doorbell.h> #include <drivers/arm/css/scmi.h> #include <drivers/arm/css/sds.h> +#include <lib/cassert.h> #include <plat/arm/common/plat_arm.h> #include "morello_def.h" @@ -17,18 +18,21 @@ * Platform information structure stored in SDS. * This structure holds information about platform's DDR * size which is an information about multichip setup - * - multichip mode - * - slave_count - * - Local DDR size in GB, DDR memory in master board - * - Remote DDR size in GB, DDR memory in slave board + * - Local DDR size in bytes, DDR memory in master board + * - Remote DDR size in bytes, DDR memory in slave board + * - slave_count + * - multichip mode */ struct morello_plat_info { - bool multichip_mode; + uint64_t local_ddr_size; + uint64_t remote_ddr_size; uint8_t slave_count; - uint8_t local_ddr_size; - uint8_t remote_ddr_size; + bool multichip_mode; } __packed; +/* Compile time assertion to ensure the size of structure is 18 bytes */ +CASSERT(sizeof(struct morello_plat_info) == MORELLO_SDS_PLATFORM_INFO_SIZE, + assert_invalid_plat_info_size); /* * BL33 image information structure stored in SDS. * This structure holds the source & destination addresses and @@ -80,6 +84,7 @@ void bl31_platform_setup(void) int ret; struct morello_plat_info plat_info; struct morello_bl33_info bl33_info; + struct morello_plat_info *copy_dest; ret = sds_init(); if (ret != SDS_OK) { @@ -99,8 +104,8 @@ void bl31_platform_setup(void) /* Validate plat_info SDS */ if ((plat_info.local_ddr_size == 0U) - || (plat_info.local_ddr_size > MORELLO_MAX_DDR_CAPACITY_GB) - || (plat_info.remote_ddr_size > MORELLO_MAX_DDR_CAPACITY_GB) + || (plat_info.local_ddr_size > MORELLO_MAX_DDR_CAPACITY) + || (plat_info.remote_ddr_size > MORELLO_MAX_DDR_CAPACITY) || (plat_info.slave_count > MORELLO_MAX_SLAVE_COUNT)) { ERROR("platform info SDS is corrupted\n"); panic(); @@ -127,5 +132,6 @@ void bl31_platform_setup(void) * and platform information should be passed to BL33 using NT_FW_CONFIG * passing mechanism. */ - mmio_write_32(MORELLO_PLATFORM_INFO_BASE, *(uint32_t *)&plat_info); + copy_dest = (struct morello_plat_info *)MORELLO_PLATFORM_INFO_BASE; + *copy_dest = plat_info; } diff --git a/plat/arm/board/morello/morello_def.h b/plat/arm/board/morello/morello_def.h index 09db3032b..793729b99 100644 --- a/plat/arm/board/morello/morello_def.h +++ b/plat/arm/board/morello/morello_def.h @@ -18,8 +18,8 @@ /* SDS Platform information defines */ #define MORELLO_SDS_PLATFORM_INFO_STRUCT_ID U(8) #define MORELLO_SDS_PLATFORM_INFO_OFFSET U(0) -#define MORELLO_SDS_PLATFORM_INFO_SIZE U(4) -#define MORELLO_MAX_DDR_CAPACITY_GB U(64) +#define MORELLO_SDS_PLATFORM_INFO_SIZE U(18) +#define MORELLO_MAX_DDR_CAPACITY U(0x1000000000) #define MORELLO_MAX_SLAVE_COUNT U(16) /* SDS BL33 image information defines */ @@ -28,6 +28,6 @@ #define MORELLO_SDS_BL33_INFO_SIZE U(12) /* Base address of non-secure SRAM where Platform information will be filled */ -#define MORELLO_PLATFORM_INFO_BASE UL(0x06008000) +#define MORELLO_PLATFORM_INFO_BASE UL(0x06000000) #endif /* MORELLO_DEF_H */ |