123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 |
- /*
- * Copyright (c) 2020-2023, Arm Limited. All rights reserved.
- *
- * SPDX-License-Identifier: BSD-3-Clause
- */
- #ifndef MORELLO_DEF_H
- #define MORELLO_DEF_H
- /* Non-secure SRAM MMU mapping */
- #define MORELLO_NS_SRAM_BASE UL(0x06000000)
- #define MORELLO_NS_SRAM_SIZE UL(0x00010000)
- #define MORELLO_MAP_NS_SRAM MAP_REGION_FLAT( \
- MORELLO_NS_SRAM_BASE, \
- MORELLO_NS_SRAM_SIZE, \
- MT_DEVICE | MT_RW | MT_SECURE)
- /* SDS Firmware version defines */
- #define MORELLO_SDS_FIRMWARE_VERSION_STRUCT_ID U(2)
- #define MORELLO_SDS_FIRMWARE_VERSION_OFFSET U(0)
- #ifdef TARGET_PLATFORM_FVP
- # define MORELLO_SDS_FIRMWARE_VERSION_SIZE U(8)
- #else
- # define MORELLO_SDS_FIRMWARE_VERSION_SIZE U(16)
- #endif
- /* SDS Platform information defines */
- #define MORELLO_SDS_PLATFORM_INFO_STRUCT_ID U(8)
- #define MORELLO_SDS_PLATFORM_INFO_OFFSET U(0)
- #ifdef TARGET_PLATFORM_FVP
- # define MORELLO_SDS_PLATFORM_INFO_SIZE U(8)
- #else
- # define MORELLO_SDS_PLATFORM_INFO_SIZE U(26)
- #endif
- #define MORELLO_MAX_DDR_CAPACITY U(0x1000000000)
- #define MORELLO_MAX_REMOTE_CHIP_COUNT U(16)
- #define MORELLO_SCC_SERVER_MODE U(0)
- #define MORELLO_SCC_CLIENT_MODE_MASK U(1)
- #define MORELLO_SCC_C1_TAG_CACHE_EN_MASK U(4)
- #define MORELLO_SCC_C2_TAG_CACHE_EN_MASK U(8)
- /* Base address of non-secure SRAM where Platform information will be filled */
- #define MORELLO_PLATFORM_INFO_BASE UL(0x06000000)
- /* DMC memory status registers */
- #define MORELLO_DMC0_MEMC_STATUS_REG UL(0x4E000000)
- #define MORELLO_DMC1_MEMC_STATUS_REG UL(0x4E100000)
- #define MORELLO_DMC_MEMC_STATUS_MASK U(7)
- /* DMC memory command registers */
- #define MORELLO_DMC0_MEMC_CMD_REG UL(0x4E000008)
- #define MORELLO_DMC1_MEMC_CMD_REG UL(0x4E100008)
- /* DMC capability control register */
- #define MORELLO_DMC0_CAP_CTRL_REG UL(0x4E000D00)
- #define MORELLO_DMC1_CAP_CTRL_REG UL(0x4E100D00)
- /* DMC tag cache control register */
- #define MORELLO_DMC0_TAG_CACHE_CTL UL(0x4E000D04)
- #define MORELLO_DMC1_TAG_CACHE_CTL UL(0x4E100D04)
- /* DMC tag cache config register */
- #define MORELLO_DMC0_TAG_CACHE_CFG UL(0x4E000D08)
- #define MORELLO_DMC1_TAG_CACHE_CFG UL(0x4E100D08)
- /* DMC memory access control register */
- #define MORELLO_DMC0_MEM_ACCESS_CTL UL(0x4E000D0C)
- #define MORELLO_DMC1_MEM_ACCESS_CTL UL(0x4E100D0C)
- #define MORELLO_DMC_MEM_ACCESS_DIS (1UL << 16)
- /* DMC memory address control register */
- #define MORELLO_DMC0_MEM_ADDR_CTL UL(0x4E000D10)
- #define MORELLO_DMC1_MEM_ADDR_CTL UL(0x4E100D10)
- /* DMC memory address control 2 register */
- #define MORELLO_DMC0_MEM_ADDR_CTL2 UL(0x4E000D14)
- #define MORELLO_DMC1_MEM_ADDR_CTL2 UL(0x4E100D14)
- /* DMC special control register */
- #define MORELLO_DMC0_SPL_CTL_REG UL(0x4E000D18)
- #define MORELLO_DMC1_SPL_CTL_REG UL(0x4E100D18)
- /* DMC ERR0CTLR0 registers */
- #define MORELLO_DMC0_ERR0CTLR0_REG UL(0x4E000708)
- #define MORELLO_DMC1_ERR0CTLR0_REG UL(0x4E100708)
- /* DMC ECC in ERR0CTLR0 register */
- #define MORELLO_DMC_ERR0CTLR0_ECC_EN U(9)
- /* DMC ERR2STATUS register */
- #define MORELLO_DMC0_ERR2STATUS_REG UL(0x4E000790)
- #define MORELLO_DMC1_ERR2STATUS_REG UL(0x4E100790)
- /* DMC memory commands */
- #define MORELLO_DMC_MEMC_CMD_CONFIG U(0)
- #define MORELLO_DMC_MEMC_CMD_READY U(3)
- /* SDS Platform information struct definition */
- #ifdef TARGET_PLATFORM_FVP
- /*
- * Platform information structure stored in SDS.
- * This structure holds information about platform's DDR
- * size
- * - Local DDR size in bytes, DDR memory in main board
- */
- struct morello_plat_info {
- uint64_t local_ddr_size;
- } __packed;
- #else
- /*
- * Platform information structure stored in SDS.
- * This structure holds information about platform's DDR
- * size which is an information about multichip setup
- * - Local DDR size in bytes, DDR memory in main board
- * - Remote DDR size in bytes, DDR memory in remote board
- * - remote_chip_count
- * - multichip mode
- * - scc configuration
- * - silicon revision
- */
- struct morello_plat_info {
- uint64_t local_ddr_size;
- uint64_t remote_ddr_size;
- uint8_t remote_chip_count;
- bool multichip_mode;
- uint32_t scc_config;
- uint32_t silicon_revision;
- } __packed;
- #endif
- /* SDS Firmware revision struct definition */
- #ifdef TARGET_PLATFORM_FVP
- /*
- * Firmware revision structure stored in SDS.
- * This structure holds information about firmware versions.
- * - SCP firmware version
- * - SCP firmware commit
- */
- struct morello_firmware_version {
- uint32_t scp_fw_ver;
- uint32_t scp_fw_commit;
- } __packed;
- #else
- /*
- * Firmware revision structure stored in SDS.
- * This structure holds information about firmware versions.
- * - SCP firmware version
- * - SCP firmware commit
- * - MCC firmware version
- * - PCC firmware version
- */
- struct morello_firmware_version {
- uint32_t scp_fw_ver;
- uint32_t scp_fw_commit;
- uint32_t mcc_fw_ver;
- uint32_t pcc_fw_ver;
- } __packed;
- #endif
- /* Compile time assertions to ensure the size of structures are of the required bytes */
- CASSERT(sizeof(struct morello_plat_info) == MORELLO_SDS_PLATFORM_INFO_SIZE,
- assert_invalid_plat_info_size);
- CASSERT(sizeof(struct morello_firmware_version) == MORELLO_SDS_FIRMWARE_VERSION_SIZE,
- assert_invalid_firmware_version_size);
- #endif /* MORELLO_DEF_H */
|