aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAditya Angadi <aditya.angadi@arm.com>2020-09-29 13:33:46 +0530
committerThomas Abraham <thomas.abraham@arm.com>2020-11-06 10:07:01 +0530
commit1951d298c9231f025bb9090e86d0e334b0dc4f03 (patch)
tree06ac13c549c41d8a49a0ad2f85bff60ec2ebb70a
parent5e9da4d21df690d72ad771b71161c039a29c1bef (diff)
product/rddanielxlr: migrate to isys_romRD-INFRA-2020.11.09
Migrate from using mscp_rom module to isys_rom module as the boot ROM for both SCP and MCP controllers. As there is no support yet for MCP RAM firmware, the config data for the bootloader module is set to NULL. The isys_rom module ensures that the MCP processor is held in a idle state. Change-Id: Icfe6f6a0d01c49f63d432d188e9b5c98a492fd47 Signed-off-by: Aditya Angadi <aditya.angadi@arm.com>
-rw-r--r--product/rddanielxlr/mcp_romfw/config_bootloader.c11
-rw-r--r--product/rddanielxlr/mcp_romfw/config_rddanielxlr_rom.c19
-rw-r--r--product/rddanielxlr/mcp_romfw/firmware.mk5
-rw-r--r--product/rddanielxlr/module/mscp_rom/include/mod_mscp_rom.h45
-rw-r--r--product/rddanielxlr/module/mscp_rom/src/Makefile11
-rw-r--r--product/rddanielxlr/module/mscp_rom/src/mod_mscp_rom.c105
-rw-r--r--product/rddanielxlr/scp_romfw/config_bootloader.c24
-rw-r--r--product/rddanielxlr/scp_romfw/config_scp_rom.c21
-rw-r--r--product/rddanielxlr/scp_romfw/firmware.mk5
9 files changed, 41 insertions, 205 deletions
diff --git a/product/rddanielxlr/mcp_romfw/config_bootloader.c b/product/rddanielxlr/mcp_romfw/config_bootloader.c
new file mode 100644
index 00000000..903ee767
--- /dev/null
+++ b/product/rddanielxlr/mcp_romfw/config_bootloader.c
@@ -0,0 +1,11 @@
+/*
+ * Arm SCP/MCP Software
+ * Copyright (c) 2020, Arm Limited and Contributors. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#include <fwk_module.h>
+
+struct fwk_module_config config_bootloader = {
+};
diff --git a/product/rddanielxlr/mcp_romfw/config_rddanielxlr_rom.c b/product/rddanielxlr/mcp_romfw/config_rddanielxlr_rom.c
deleted file mode 100644
index a8af750a..00000000
--- a/product/rddanielxlr/mcp_romfw/config_rddanielxlr_rom.c
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * Arm SCP/MCP Software
- * Copyright (c) 2020, Arm Limited and Contributors. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
-
-#include "mcp_software_mmap.h"
-
-#include <mod_mscp_rom.h>
-
-#include <fwk_module.h>
-
-const struct fwk_module_config config_mscp_rom = {
- .data = &((struct mscp_rom_config) {
- .ramfw_ram_base = MCP_RAM0_BASE,
- .ramfw_flash_size = 0,
- })
-};
diff --git a/product/rddanielxlr/mcp_romfw/firmware.mk b/product/rddanielxlr/mcp_romfw/firmware.mk
index c4231262..e237ae45 100644
--- a/product/rddanielxlr/mcp_romfw/firmware.mk
+++ b/product/rddanielxlr/mcp_romfw/firmware.mk
@@ -14,11 +14,12 @@ BS_FIRMWARE_MODULE_HEADERS_ONLY := \
BS_FIRMWARE_MODULES := \
pl011 \
clock \
- mscp_rom
+ bootloader \
+ isys_rom
BS_FIRMWARE_SOURCES := \
config_pl011.c \
config_clock.c \
- config_rddanielxlr_rom.c
+ config_bootloader.c
include $(BS_DIR)/firmware.mk
diff --git a/product/rddanielxlr/module/mscp_rom/include/mod_mscp_rom.h b/product/rddanielxlr/module/mscp_rom/include/mod_mscp_rom.h
deleted file mode 100644
index 1cf3be61..00000000
--- a/product/rddanielxlr/module/mscp_rom/include/mod_mscp_rom.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Arm SCP/MCP Software
- * Copyright (c) 2020, Arm Limited and Contributors. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
-
-#ifndef MOD_MSCP_ROM_H
-#define MOD_MSCP_ROM_H
-
-#include <stdint.h>
-
-/*!
- * \addtogroup GroupSCPModule MSCP Product Modules
- * \{
- */
-
-/*!
- * \defgroup GroupSCP ROM Support
- * \{
- */
-
-/*!
- * \brief Module configuration data.
- */
-struct mscp_rom_config {
- /*! Base address in RAM at which RAM firmware image has to be loaded */
- const uintptr_t ramfw_ram_base;
-
- /*! Base address of RAM firmware image on the NOR flash memory */
- const uintptr_t ramfw_flash_base;
-
- /*! The size of the RAM firmware image on the NOR flash memory */
- const unsigned int ramfw_flash_size;
-};
-
-/*!
- * \}
- */
-
-/*!
- * \}
- */
-
-#endif /* MOD_MSCP_ROM_H */
diff --git a/product/rddanielxlr/module/mscp_rom/src/Makefile b/product/rddanielxlr/module/mscp_rom/src/Makefile
deleted file mode 100644
index ad0d7e5e..00000000
--- a/product/rddanielxlr/module/mscp_rom/src/Makefile
+++ /dev/null
@@ -1,11 +0,0 @@
-#
-# Arm SCP/MCP Software
-# Copyright (c) 2020, Arm Limited and Contributors. All rights reserved.
-#
-# SPDX-License-Identifier: BSD-3-Clause
-#
-
-BS_LIB_NAME := MSCP ROM
-BS_LIB_SOURCES := mod_mscp_rom.c
-
-include $(BS_DIR)/lib.mk
diff --git a/product/rddanielxlr/module/mscp_rom/src/mod_mscp_rom.c b/product/rddanielxlr/module/mscp_rom/src/mod_mscp_rom.c
deleted file mode 100644
index 095f36a5..00000000
--- a/product/rddanielxlr/module/mscp_rom/src/mod_mscp_rom.c
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Arm SCP/MCP Software
- * Copyright (c) 2020, Arm Limited and Contributors. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
-
-#include <mod_mscp_rom.h>
-
-#include <fwk_interrupt.h>
-#include <fwk_log.h>
-#include <fwk_module.h>
-#include <fwk_module_idx.h>
-#include <fwk_status.h>
-#include <fwk_thread.h>
-
-#include <fmw_cmsis.h>
-
-#include <stdint.h>
-#include <string.h>
-
-static const struct mscp_rom_config *rom_config;
-
-enum rom_event {
- ROM_EVENT_RUN,
- ROM_EVENT_COUNT
-};
-
-/*
- * This function assumes that the RAM firmware image is located at the beginning
- * of the SCP/MCP RAM. The reset handler will be at offset 0x4 (the second entry
- * of the vector table).
- */
-static void jump_to_ramfw(void)
-{
- uintptr_t const *reset_base =
- (uintptr_t *)(rom_config->ramfw_ram_base + 0x4);
- void (*ramfw_reset_handler)(void);
-
- /*
- * Disable interrupts for the duration of the ROM firmware to RAM firmware
- * transition.
- */
- fwk_interrupt_global_disable();
-
- ramfw_reset_handler = (void (*)(void))*reset_base;
-
- /* Set the vector table offset register to ramfw vector table */
- SCB->VTOR = rom_config->ramfw_ram_base;
-
- /*
- * Execute the RAM firmware's reset handler to pass control from ROM
- * firmware to the RAM firmware.
- */
- ramfw_reset_handler();
-}
-
-static int mscp_rom_init(fwk_id_t module_id, unsigned int element_count,
- const void *data)
-{
- rom_config = data;
-
- return FWK_SUCCESS;
-}
-
-static int mscp_rom_start(fwk_id_t id)
-{
- int status;
- struct fwk_event event = {
- .source_id = FWK_ID_MODULE(FWK_MODULE_IDX_MSCP_ROM),
- .target_id = FWK_ID_MODULE(FWK_MODULE_IDX_MSCP_ROM),
- .id = FWK_ID_EVENT(FWK_MODULE_IDX_MSCP_ROM, ROM_EVENT_RUN),
- };
-
- status = fwk_thread_put_event(&event);
-
- return status;
-}
-
-static int mscp_rom_process_event(const struct fwk_event *event,
- struct fwk_event *resp)
-{
- FWK_LOG_INFO("[ROM] Loading RAM firmware\n");
-
- if (rom_config->ramfw_flash_size != 0) {
- memcpy((void *)rom_config->ramfw_ram_base,
- (uint8_t *)rom_config->ramfw_flash_base,
- rom_config->ramfw_flash_size);
- }
-
- FWK_LOG_INFO("[ROM] Starting RAM firmware execution\n");
- jump_to_ramfw();
-
- return FWK_SUCCESS;
-}
-
-/* Module descriptor */
-const struct fwk_module module_mscp_rom = {
- .name = "MSCP_ROM",
- .type = FWK_MODULE_TYPE_SERVICE,
- .event_count = ROM_EVENT_COUNT,
- .init = mscp_rom_init,
- .start = mscp_rom_start,
- .process_event = mscp_rom_process_event,
-};
diff --git a/product/rddanielxlr/scp_romfw/config_bootloader.c b/product/rddanielxlr/scp_romfw/config_bootloader.c
new file mode 100644
index 00000000..34d4ad0e
--- /dev/null
+++ b/product/rddanielxlr/scp_romfw/config_bootloader.c
@@ -0,0 +1,24 @@
+/*
+ * Arm SCP/MCP Software
+ * Copyright (c) 2020, Arm Limited and Contributors. All rights reserved.
+ *
+ * SPDX-License-Identifier: BSD-3-Clause
+ */
+
+#include "scp_mmap.h"
+#include "scp_software_mmap.h"
+
+#include <mod_bootloader.h>
+
+#include <fwk_module.h>
+
+static const struct mod_bootloader_config bootloader_module_config = {
+ .source_base = SCP_RAMFW_IMAGE_FLASH_BASE,
+ .source_size = SCP_RAMFW_IMAGE_FLASH_SIZE,
+ .destination_base = SCP_ITC_RAM_BASE,
+ .destination_size = SCP_RAMFW_IMAGE_FLASH_SIZE,
+};
+
+struct fwk_module_config config_bootloader = {
+ .data = &bootloader_module_config,
+};
diff --git a/product/rddanielxlr/scp_romfw/config_scp_rom.c b/product/rddanielxlr/scp_romfw/config_scp_rom.c
deleted file mode 100644
index 93b41811..00000000
--- a/product/rddanielxlr/scp_romfw/config_scp_rom.c
+++ /dev/null
@@ -1,21 +0,0 @@
-/*
- * Arm SCP/MCP Software
- * Copyright (c) 2020, Arm Limited and Contributors. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
-
-#include "scp_mmap.h"
-#include "scp_software_mmap.h"
-
-#include <mod_mscp_rom.h>
-
-#include <fwk_module.h>
-
-const struct fwk_module_config config_mscp_rom = {
- .data = &((struct mscp_rom_config) {
- .ramfw_ram_base = SCP_ITC_RAM_BASE,
- .ramfw_flash_base = SCP_RAMFW_IMAGE_FLASH_BASE,
- .ramfw_flash_size = SCP_RAMFW_IMAGE_FLASH_SIZE,
- })
-};
diff --git a/product/rddanielxlr/scp_romfw/firmware.mk b/product/rddanielxlr/scp_romfw/firmware.mk
index 148dd434..2df641db 100644
--- a/product/rddanielxlr/scp_romfw/firmware.mk
+++ b/product/rddanielxlr/scp_romfw/firmware.mk
@@ -18,13 +18,14 @@ BS_FIRMWARE_MODULES := \
pcid \
pl011 \
clock \
- mscp_rom \
+ bootloader \
+ isys_rom
BS_FIRMWARE_SOURCES := \
config_sid.c \
config_system_info.c \
config_pl011.c \
config_clock.c \
- config_scp_rom.c \
+ config_bootloader.c
include $(BS_DIR)/firmware.mk