diff --git a/product/morello/include/morello_scp_mmap.h b/product/morello/include/morello_scp_mmap.h index e7958aa39..8b5a37a6d 100644 --- a/product/morello/include/morello_scp_mmap.h +++ b/product/morello/include/morello_scp_mmap.h @@ -167,6 +167,8 @@ #define SCP_SSC_BASE (SCP_SYS1_BASE + 0x2A420000) #define SCP_REFCLK_CNTCONTROL_BASE (SCP_SYS1_BASE + 0x2A430000) +/* Base address of AP-SCP mailbox for non-secure access */ +#define SCP_AP_BASE_NS_MAILBOX_SRAM (SCP_NONTRUSTED_RAM_BASE) /* * Base addresses of MHU devices */ diff --git a/product/morello/scp_ramfw_soc/config_armv7m_mpu.c b/product/morello/scp_ramfw_soc/config_armv7m_mpu.c index 3f373b809..298e99a63 100644 --- a/product/morello/scp_ramfw_soc/config_armv7m_mpu.c +++ b/product/morello/scp_ramfw_soc/config_armv7m_mpu.c @@ -80,8 +80,8 @@ static const ARM_MPU_Region_t regions[] = { ARM_MPU_REGION_SIZE_256B), }, { - /* 0x6520_0000 - 0x6520_FFFF */ - .RBAR = ARM_MPU_RBAR(5, SCP_AP_SHARED_NONSECURE_RAM), + /* 0xA600_0000 - 0xA600_FFFF */ + .RBAR = ARM_MPU_RBAR(5, SCP_AP_BASE_NS_MAILBOX_SRAM), .RASR = ARM_MPU_RASR( 1, ARM_MPU_AP_PRIV, diff --git a/product/morello/scp_ramfw_soc/config_smt.c b/product/morello/scp_ramfw_soc/config_smt.c index da4c92e70..21931cb25 100644 --- a/product/morello/scp_ramfw_soc/config_smt.c +++ b/product/morello/scp_ramfw_soc/config_smt.c @@ -21,76 +21,75 @@ #include -static const struct fwk_element smt_element_table[] = { - [SCP_MORELLO_SCMI_SERVICE_IDX_PSCI] = { - .name = "PSCI", - .data = &((struct mod_smt_channel_config) { - .type = - MOD_SMT_CHANNEL_TYPE_SLAVE, - .policies = - MOD_SMT_POLICY_INIT_MAILBOX | - MOD_SMT_POLICY_SECURE, - .mailbox_address = - SCP_AP_SHARED_SECURE_RAM, - .mailbox_size = - SCP_SCMI_PAYLOAD_SIZE, - .driver_id = - FWK_ID_SUB_ELEMENT_INIT( - FWK_MODULE_IDX_MHU, - MORELLO_MHU_DEVICE_IDX_S_CLUS0, - 0), - .driver_api_id = - FWK_ID_API_INIT( - FWK_MODULE_IDX_MHU, - 0), - }), - }, - [SCP_MORELLO_SCMI_SERVICE_IDX_OSPM] = { - .name = "OSPM", - .data = &((struct mod_smt_channel_config) { - .type = - MOD_SMT_CHANNEL_TYPE_SLAVE, - .policies = - MOD_SMT_POLICY_INIT_MAILBOX, - .mailbox_address = - SCP_AP_SHARED_NONSECURE_RAM, - .mailbox_size = - SCP_SCMI_PAYLOAD_SIZE, - .driver_id = - FWK_ID_SUB_ELEMENT_INIT( - FWK_MODULE_IDX_MHU, - MORELLO_MHU_DEVICE_IDX_NS_CLUS0, - 0), - .driver_api_id = - FWK_ID_API_INIT( - FWK_MODULE_IDX_MHU, - 0), - }), - }, - [SCP_MORELLO_SCMI_SERVICE_IDX_MCP] = { - .name = "MCP", - .data = &((struct mod_smt_channel_config) { - .type = - MOD_SMT_CHANNEL_TYPE_SLAVE, - .policies = - MOD_SMT_POLICY_INIT_MAILBOX | - MOD_SMT_POLICY_SECURE, - .mailbox_address = - SCP_MCP_SHARED_SECURE_RAM, - .mailbox_size = - SCP_SCMI_PAYLOAD_SIZE, - .driver_id = - FWK_ID_SUB_ELEMENT_INIT( - FWK_MODULE_IDX_MHU, - MORELLO_MHU_DEVICE_IDX_S_MCP, - 0), - .driver_api_id = - FWK_ID_API_INIT( - FWK_MODULE_IDX_MHU, - 0), - }), - }, - [SCP_MORELLO_SCMI_SERVICE_IDX_COUNT] = { 0 }, +static const struct fwk_element + smt_element_table[SCP_MORELLO_SCMI_SERVICE_IDX_COUNT + 1] = { + [SCP_MORELLO_SCMI_SERVICE_IDX_PSCI] = { + .name = "PSCI", + .data = &((struct mod_smt_channel_config){ + .type = + MOD_SMT_CHANNEL_TYPE_SLAVE, + .policies = + MOD_SMT_POLICY_INIT_MAILBOX | + MOD_SMT_POLICY_SECURE, + .mailbox_address = + SCP_AP_SHARED_SECURE_RAM, + .mailbox_size = + SCP_SCMI_PAYLOAD_SIZE, + .driver_id = + FWK_ID_SUB_ELEMENT_INIT( + FWK_MODULE_IDX_MHU, + MORELLO_MHU_DEVICE_IDX_S_CLUS0, + 0), + .driver_api_id = + FWK_ID_API_INIT( + FWK_MODULE_IDX_MHU, + 0), + }), + }, + [SCP_MORELLO_SCMI_SERVICE_IDX_OSPM] = { + .name = "OSPM", + .data = &((struct mod_smt_channel_config){ + .type = + MOD_SMT_CHANNEL_TYPE_SLAVE, + .policies = + MOD_SMT_POLICY_INIT_MAILBOX, + .mailbox_address = + SCP_AP_BASE_NS_MAILBOX_SRAM, + .mailbox_size = + SCP_SCMI_PAYLOAD_SIZE, + .driver_id = + FWK_ID_SUB_ELEMENT_INIT( + FWK_MODULE_IDX_MHU, + MORELLO_MHU_DEVICE_IDX_NS_CLUS0, + 0), + .driver_api_id = + FWK_ID_API_INIT( + FWK_MODULE_IDX_MHU, + 0), + }), + }, + [SCP_MORELLO_SCMI_SERVICE_IDX_MCP] = { + .name = "MCP", + .data = &((struct mod_smt_channel_config){ + .type = + MOD_SMT_CHANNEL_TYPE_SLAVE, + .policies = + MOD_SMT_POLICY_INIT_MAILBOX | + MOD_SMT_POLICY_SECURE, + .mailbox_address = + SCP_MCP_SHARED_SECURE_RAM, + .mailbox_size = + SCP_SCMI_PAYLOAD_SIZE, + .driver_id = FWK_ID_SUB_ELEMENT_INIT( + FWK_MODULE_IDX_MHU, + MORELLO_MHU_DEVICE_IDX_S_MCP, + 0), + .driver_api_id = FWK_ID_API_INIT( + FWK_MODULE_IDX_MHU, + 0), + }), + }, + [SCP_MORELLO_SCMI_SERVICE_IDX_COUNT] = { 0 }, }; static const struct fwk_element *smt_get_element_table(fwk_id_t module_id)