From d9ecd2959d10af4d55654f6a2fc3a81fd9a79440 Mon Sep 17 00:00:00 2001 From: Lokesh B V Date: Wed, 4 Dec 2024 20:01:41 +0530 Subject: [PATCH] neoverse-rd/rdv3r1: enable atu mmio ATU MMIO service is used by PCIe setup module to access IO manager block configuration in AP's address space. Add the configuration file for ATU MMIO module and enable the build for scp_ram firmware. Signed-off-by: Lokesh B V Change-Id: If480e72995a5b1255a87f909ac43408f8dc15f04 --- .../rdv3r1/scp_ramfw/CMakeLists.txt | 3 +- .../rdv3r1/scp_ramfw/Firmware.cmake | 3 +- .../rdv3r1/scp_ramfw/config_atu_mmio.c | 31 +++++++++++++++++++ .../rdv3r1/scp_ramfw/include/scp_atw0_mmap.h | 11 ++++++- 4 files changed, 45 insertions(+), 3 deletions(-) create mode 100644 product/neoverse-rd/rdv3r1/scp_ramfw/config_atu_mmio.c diff --git a/product/neoverse-rd/rdv3r1/scp_ramfw/CMakeLists.txt b/product/neoverse-rd/rdv3r1/scp_ramfw/CMakeLists.txt index b278c71bd..7d41c6fc7 100644 --- a/product/neoverse-rd/rdv3r1/scp_ramfw/CMakeLists.txt +++ b/product/neoverse-rd/rdv3r1/scp_ramfw/CMakeLists.txt @@ -1,6 +1,6 @@ # # Arm SCP/MCP Software -# Copyright (c) 2024, Arm Limited and Contributors. All rights reserved. +# Copyright (c) 2025, Arm Limited and Contributors. All rights reserved. # # SPDX-License-Identifier: BSD-3-Clause # @@ -23,6 +23,7 @@ target_sources( PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/config_system_power.c" "${CMAKE_CURRENT_SOURCE_DIR}/config_armv7m_mpu.c" "${CMAKE_CURRENT_SOURCE_DIR}/config_atu.c" + "${CMAKE_CURRENT_SOURCE_DIR}/config_atu_mmio.c" "${CMAKE_CURRENT_SOURCE_DIR}/config_power_domain.c" "${CMAKE_CURRENT_SOURCE_DIR}/config_ppu_v1.c" "${CMAKE_CURRENT_SOURCE_DIR}/config_mhu3.c" diff --git a/product/neoverse-rd/rdv3r1/scp_ramfw/Firmware.cmake b/product/neoverse-rd/rdv3r1/scp_ramfw/Firmware.cmake index b9693f293..6280fb2a5 100644 --- a/product/neoverse-rd/rdv3r1/scp_ramfw/Firmware.cmake +++ b/product/neoverse-rd/rdv3r1/scp_ramfw/Firmware.cmake @@ -1,6 +1,6 @@ # # Arm SCP/MCP Software -# Copyright (c) 2024, Arm Limited and Contributors. All rights reserved. +# Copyright (c) 2025, Arm Limited and Contributors. All rights reserved. # # SPDX-License-Identifier: BSD-3-Clause # @@ -45,6 +45,7 @@ list(APPEND SCP_MODULES "pl011") list(APPEND SCP_MODULES "system-pik") list(APPEND SCP_MODULES "sid") list(APPEND SCP_MODULES "atu") +list(APPEND SCP_MODULES "atu-mmio") list(APPEND SCP_MODULES "ppu-v1") list(APPEND SCP_MODULES "system-power") list(APPEND SCP_MODULES "power-domain") diff --git a/product/neoverse-rd/rdv3r1/scp_ramfw/config_atu_mmio.c b/product/neoverse-rd/rdv3r1/scp_ramfw/config_atu_mmio.c new file mode 100644 index 000000000..a7e80ea2e --- /dev/null +++ b/product/neoverse-rd/rdv3r1/scp_ramfw/config_atu_mmio.c @@ -0,0 +1,31 @@ +/* + * Arm SCP/MCP Software + * Copyright (c) 2025, Arm Limited and Contributors. All rights reserved. + * + * SPDX-License-Identifier: BSD-3-Clause + * + * Description: + * Configuration data for module 'atu_mmio'. + */ + +#include "scp_atw0_mmap.h" +#include "scp_css_mmap.h" + +#include +#include + +#include +#include +#include +#include + +static struct mod_atu_mmio_config atu_mmio_module_config = { + .window_address = SCP_ATW0_ATU_MMIO_BASE, + .map_size = SCP_ATW0_ATU_MMIO_SIZE, + .atu_id = FWK_ID_ELEMENT(FWK_MODULE_IDX_ATU, 0), + .atu_api_id = FWK_ID_API(FWK_MODULE_IDX_ATU, MOD_ATU_API_IDX_ATU), +}; + +struct fwk_module_config config_atu_mmio = { + .data = &atu_mmio_module_config, +}; diff --git a/product/neoverse-rd/rdv3r1/scp_ramfw/include/scp_atw0_mmap.h b/product/neoverse-rd/rdv3r1/scp_ramfw/include/scp_atw0_mmap.h index 7ad842f0a..2eca80a0b 100644 --- a/product/neoverse-rd/rdv3r1/scp_ramfw/include/scp_atw0_mmap.h +++ b/product/neoverse-rd/rdv3r1/scp_ramfw/include/scp_atw0_mmap.h @@ -1,6 +1,6 @@ /* * Arm SCP/MCP Software - * Copyright (c) 2024, Arm Limited and Contributors. All rights reserved. + * Copyright (c) 2025, Arm Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause * @@ -28,6 +28,10 @@ * | | * +----------------------------------------+ * | | + * | MMIO region mapped by ATU (1MB) | + * | | + * +----------------------------------------+ SCP_ATW0_ATU_MMIO_BASE + * | | * | Peripheral SRAM (1MB) | * | | * +----------------------------------------+ SCP_ATW0_AP_PERIPHERAL_SRAM_BASE @@ -100,4 +104,9 @@ (SCP_ATW0_CU_LCP_PERIPH_REGION_BASE + SCP_ATW0_CU_LCP_PERIPH_REGION_SIZE) #define SCP_ATW0_AP_PERIPHERAL_SRAM_SIZE (1 * FWK_MIB) +/* Logical address to access MMIO region mapped by ATU */ +#define SCP_ATW0_ATU_MMIO_BASE \ + (SCP_ATW0_AP_PERIPHERAL_SRAM_BASE + SCP_ATW0_AP_PERIPHERAL_SRAM_SIZE) +#define SCP_ATW0_ATU_MMIO_SIZE (1 * FWK_MIB) + #endif /* SCP_ATW0_MMAP_H */ -- GitLab