1 /* 2 * Arm SCP/MCP Software 3 * Copyright (c) 2022, Arm Limited and Contributors. All rights reserved. 4 * 5 * SPDX-License-Identifier: BSD-3-Clause 6 * 7 * Description: TC2 BL1 module. 8 */ 9 10 #ifndef MOD_TC2_BL1_H 11 #define MOD_TC2_BL1_H 12 13 #include <fwk_id.h> 14 #include <fwk_module_idx.h> 15 16 #include <stddef.h> 17 #include <stdint.h> 18 19 /*! 20 * \ingroup GroupTC2BL1 21 * \defgroup GroupTC2BL1 BL1 Support 22 * \{ 23 */ 24 25 /*! 26 * \brief Module configuration data. 27 */ 28 struct mod_tc2_bl1_config { 29 /*! Base address of the Application Processor (AP) context area */ 30 const uintptr_t ap_context_base; 31 32 /*! Size of the AP context area */ 33 const size_t ap_context_size; 34 35 /*! Element ID of the primary cluster PPU */ 36 const fwk_id_t id_primary_cluster; 37 38 /*! Element ID of the primary core PPU */ 39 const fwk_id_t id_primary_core; 40 }; 41 42 /*! 43 * \brief Type of the interfaces exposed by the module. 44 */ 45 enum mod_tc2_bl1_api_idx { 46 /*! Interface for transport module */ 47 MOD_TC2_BL1_API_TRANSPORT_FIRMWARE_SIGNAL_INPUT, 48 /*! Number of defined interfaces */ 49 MOD_TC2_BL1_API_IDX_COUNT, 50 }; 51 52 /*! 53 * \brief Notification indices. 54 */ 55 enum mod_tc2_bl1_notification_idx { 56 /*! <tt>SYSTOP powered on</tt> notification */ 57 MOD_TC2_BL1_NOTIFICATION_IDX_POWER_SYSTOP, 58 59 /*! Number of notifications defined by the module */ 60 MOD_TC2_BL1_NOTIFICATION_COUNT, 61 }; 62 63 /*! <tt>SYSTOP powered on</tt> notification identifier */ 64 static const fwk_id_t mod_tc2_bl1_notification_id_systop = 65 FWK_ID_NOTIFICATION_INIT( 66 FWK_MODULE_IDX_TC2_BL1, 67 MOD_TC2_BL1_NOTIFICATION_IDX_POWER_SYSTOP); 68 69 /*! 70 * \} 71 */ 72 73 #endif /* MOD_TC2_BL1_H */ 74