core/status/module_id.h (154 lines of code) (raw):
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
#ifndef MODULE_ID_H_
#define MODULE_ID_H_
/**
* The IDs for core modules that can generate errors.
*/
enum {
ROT_MODULE_INIT = 0x0000, /**< Top-level application that initializes the system. */
ROT_MODULE_AES_GCM_ENGINE = 0x0001, /**< An AES-GCM crypto engine. All engines use the same ID. */
ROT_MODULE_ECC_ENGINE = 0x0002, /**< An ECC crypto engine. All engines use the same ID. */
ROT_MODULE_HASH_ENGINE = 0x0003, /**< A hash crypto engine. All engines use the same ID. */
ROT_MODULE_RSA_ENGINE = 0x0004, /**< An RSA crypto engine. All engines use the same ID. */
ROT_MODULE_X509_ENGINE = 0x0005, /**< An X.509 crypto engine. All engines use the same ID. */
ROT_MODULE_BASE64_ENGINE = 0x0006, /**< A base64 crypto engine. All engines use the same ID. */
ROT_MODULE_FLASH_MASTER = 0x0007, /**< A driver for SPI flash. All drivers use the same ID. */
ROT_MODULE_SPI_FLASH = 0x0008, /**< The interface to accessing SPI flash. */
ROT_MODULE_FLASH_COMMON = 0x0009, /**< Common components for SPI flash commands. */
ROT_MODULE_FLASH_UTIL = 0x000a, /**< Utilities for programming and verifying flash. */
ROT_MODULE_APP_IMAGE = 0x000b, /**< Utilities for loading and verifying application images. */
ROT_MODULE_FIRMWARE_IMAGE = 0x000c, /**< Interface to the firmware image format for the platform. */
ROT_MODULE_KEY_MANIFEST = 0x000d, /**< Manifest containing authenticated keys. */
ROT_MODULE_FIRMWARE_UPDATE = 0x000e, /**< Firmware updater. */
ROT_MODULE_I2C_MASTER = 0x000f, /**< A driver for an I2C master. All drivers use the same ID. */
ROT_MODULE_I2C_SLAVE = 0x0010, /**< A driver for an I2C slave. All drivers use the same ID. */
ROT_MODULE_SPI_FILTER = 0x0011, /**< A driver for the SPI filter. All drivers use the same ID. */
ROT_MODULE_MFG_FILTER_HANDLER = 0x0012, /**< Configuration interface to set the flash device for the filter. */
ROT_MODULE_SPI_FILTER_IRQ = 0x0013, /**< IRQ handler for the SPI filter. */
ROT_MODULE_LOGGING = 0x0014, /**< Logger for system or security events. */
ROT_MODULE_CMD_HANDLER = 0x0015, /**< Handler for received commands. */
ROT_MODULE_MCTP_BASE_PROTOCOL = 0x0016, /**< MCTP base protocol handler. */
ROT_MODULE_RIOT_CORE = 0x0017, /**< Implementation of RIoT Core. */
ROT_MODULE_HOST_FW_UTIL = 0x0018, /**< Host firmware validation functions. */
ROT_MODULE_BMC_RECOVERY = 0x0019, /**< BMC recovery manager. */
ROT_MODULE_HOST_CONTROL = 0x001a, /**< Driver interface for controlling the host processor. */
ROT_MODULE_HOST_IRQ_CTRL = 0x001b, /**< Driver interface for controlling host state IRQs. */
ROT_MODULE_HOST_IRQ_HANDLER = 0x001c, /**< Handler for host state IRQs. */
ROT_MODULE_HOST_PROCESSOR = 0x001d, /**< Manager for the host processor being protected. */
ROT_MODULE_HOST_FLASH_MGR = 0x001e, /**< Manager for host flash state. */
ROT_MODULE_MOCK = 0x001f, /**< Mock objects for unit testing. */
ROT_MODULE_PLATFORM_TIMEOUT = 0x0020, /**< Platform abstraction for a timeout. */
ROT_MODULE_PLATFORM_MUTEX = 0x0021, /**< Platform abstraction for mutexes. */
ROT_MODULE_PLATFORM_TIMER = 0x0022, /**< Platform abstraction for a timer. */
ROT_MODULE_STATE_MANAGER = 0x0023, /**< Storage for state information. */
ROT_MODULE_MANIFEST = 0x0024, /**< Manifest files used for provisioning. */
ROT_MODULE_PFM = 0x0025, /**< PFM files for host provisioning. */
ROT_MODULE_CFM = 0x0026, /**< CFM files for component provisioning. */
ROT_MODULE_MANIFEST_MANAGER = 0x0027, /**< Manager for manifest files. */
ROT_MODULE_KEYSTORE = 0x0028, /**< Persistent storage for device keys. */
ROT_MODULE_RIOT_KEY_MANAGER = 0x0029, /**< Management of RIoT keys and certificates. */
ROT_MODULE_AUX_ATTESTATION = 0x002a, /**< Handler for auxiliary attestation flows. */
ROT_MODULE_FIRMWARE_HEADER = 0x002b, /**< Header information on firmware images. */
ROT_MODULE_ATTESTATION = 0x002c, /**< Attestation manager. */
ROT_MODULE_RNG_ENGINE = 0x002d, /**< A RNG crypto engine. All engines use the same ID. */
ROT_MODULE_DEVICE_MANAGER = 0x002e, /**< Device manager. */
ROT_MODULE_PCR = 0x002f, /**< PCR manager. */
ROT_MODULE_CMD_BACKGROUND = 0x0030, /**< Command handler background context. */
ROT_MODULE_OBSERVABLE = 0x0031, /**< Manager for observer notifications. */
ROT_MODULE_PFM_OBSERVER = 0x0032, /**< Observers for PFM management. */
ROT_MODULE_CFM_OBSERVER = 0x0033, /**< Observers for CFM management. */
ROT_MODULE_SIG_VERIFICATION = 0x0034, /**< Verification for signatures. */
ROT_MODULE_MANIFEST_VERIFICATION = 0x0035, /**< Verification and key management for manifests. */
ROT_MODULE_SPI_FLASH_SFDP = 0x0036, /**< SFDP parsing for SPI flash devices. */
ROT_MODULE_HOST_FLASH_INIT = 0x0037, /**< Delayed host flash initialization manager. */
ROT_MODULE_FLASH = 0x0038, /**< Flash device. */
ROT_MODULE_RECOVERY_IMAGE_HEADER = 0x0039, /**< Header information on a recovery image. */
ROT_MODULE_IMAGE_HEADER = 0x003a, /**< Header information on an image. */
ROT_MODULE_RECOVERY_IMAGE_SECTION_HEADER = 0x003b, /**< Header information on a recovery section image. */
ROT_MODULE_CMD_CHANNEL = 0x003c, /**< Communication channel for commands. */
ROT_MODULE_FIRMWARE_COMPONENT = 0x003d, /**< Firmware image component wrapper. */
ROT_MODULE_SPI_SLAVE = 0x003e, /**< A driver for a SPI slave. All drivers use the same ID. */
// ROT_MODULE_RESERVED_3F = 0x003f, /**< Reserved. */
ROT_MODULE_FLASH_UPDATER = 0x0040, /**< Flash update management. */
ROT_MODULE_CERT_DEVICE_HW = 0x0041, /**< Device hardware for certificate management. */
ROT_MODULE_APP_CONTEXT = 0x0042, /**< Running context storage. */
// ROT_MODULE_RESERVED_43 = 0x0043, /**< Reserved. */
ROT_MODULE_TPM = 0x0044, /**< TPM implementation. */
// ROT_MODULE_RESERVED_45 = 0x0045, /**< Reserved. */
ROT_MODULE_AUTHORIZATION = 0x0046, /**< Authorization management for operations. */
ROT_MODULE_CONFIG_RESET = 0x0047, /**< Manager for clearing device configuration. */
ROT_MODULE_CMD_AUTHORIZATION = 0x0048, /**< Command authorization handler. */
ROT_MODULE_RECOVERY_IMAGE = 0x0049, /**< Recovery image. */
ROT_MODULE_RECOVERY_IMAGE_OBSERVER = 0x004a, /**< Observers for recovery image management. */
ROT_MODULE_RECOVERY_IMAGE_MANAGER = 0x004b, /**< Recovery image manager. */
ROT_MODULE_PCD = 0x004c, /**< PCD files for platform configuration. */
ROT_MODULE_PCD_OBSERVER = 0x004d, /**< Observers for PCD management. */
ROT_MODULE_CONFIG_CMD_TASK = 0x004e, /**< Command configuration task context. */
ROT_MODULE_CMD_DEVICE = 0x004f, /**< Command handler for device-specific workflows. */
ROT_MODULE_HOST_PROCESSOR_OBSERVER = 0x0050, /**< Observers for host processor management. */
ROT_MODULE_COUNTER_MANAGER = 0x0051, /**< Counter operation management. */
ROT_MODULE_SESSION_MANAGER = 0x0052, /**< Encrypted session management. */
ROT_MODULE_FLASH_STORE = 0x0053, /**< Block data storage in flash. */
ROT_MODULE_KDF = 0x0054, /**< Key derivation function. */
ROT_MODULE_HOST_STATE_OBSERVER = 0x0055, /**< Observers for host state changes. */
ROT_MODULE_SYSTEM = 0x0056, /**< Main system manager. */
ROT_MODULE_SYSTEM_OBSERVER = 0x0057, /**< Observers for system events. */
ROT_MODULE_PLATFORM_SEMAPHORE = 0x0058, /**< Platform abstraction for semaphores. */
ROT_MODULE_INTRUSION_STATE = 0x0059, /**< Chassis intrusion state detection. */
ROT_MODULE_INTRUSION_STATE_OBSERVER = 0x005a, /**< Observers for intrusion state changes. */
ROT_MODULE_INTRUSION_MANAGER = 0x005b, /**< Manager for intrusion detection. */
ROT_MODULE_CMD_HANDLER_MCTP_CTRL = 0x005c, /**< Handler for received MCTP control protocol messages. */
ROT_MODULE_CERBERUS_PROTOCOL_OBSERVER = 0x005d, /**< Cerberus protocol observer. */
ROT_MODULE_ECC_DER_UTIL = 0x005e, /**< Utilities for handling DER encoded ECC information. */
ROT_MODULE_BUFFER_UTIL = 0x005f, /**< General buffer handling utilities. */
ROT_MODULE_OCP_RECOVERY_DEVICE = 0x0060, /**< Device handler for the OCP Recovery protocol. */
ROT_MODULE_OCP_RECOVERY_SMBUS = 0x0061, /**< SMBus layer for the OCP Recovery protocol. */
ROT_MODULE_MCTP_CONTROL_PROTOCOL_OBSERVER = 0x0062, /**< MCTP control command interface observer. */
ROT_MODULE_CMD_HANDLER_SPDM = 0x0063, /**< Handler for received SPDM protocol commands. */
ROT_MODULE_SPDM_PROTOCOL_OBSERVER = 0x0064, /**< SPDM protocol observer. */
ROT_MODULE_ASN1_UTIL = 0x0065, /**< ASN.1 operations. */
ROT_MODULE_EVENT_TASK = 0x0066, /**< Task for event handling. */
ROT_MODULE_PERIODIC_TASK = 0x0067, /**< Task for periodic execution. */
ROT_MODULE_FIRMWARE_LOADER = 0x0068, /**< Handler to load firmware images into memory. */
ROT_MODULE_DEVICE_MANAGER_OBSERVER = 0x0069, /**< Observers for device manager events. */
ROT_MODULE_ECC_HW = 0x006a, /**< Driver interface for ECC accelerator hardware. */
ROT_MODULE_COMMON_MATH = 0x006b, /**< Common math operations. */
ROT_MODULE_HEAP_WITH_DEFRAG = 0x006c, /**< Heap allocator with defragmentation.*/
ROT_MODULE_PLATFORM_OS = 0x006d, /**< Platform abstraction for OS and task control. */
ROT_MODULE_X509_EXTENSION = 0x006e, /**< Extension handler for X.509 certificates. */
ROT_MODULE_DICE_TCBINFO_EXTENSION = 0x006f, /**< Extension handler for TCG DICE TcbInfo extensions. */
ROT_MODULE_DICE_UEID_EXTENSION = 0x0070, /**< Extension handler for TCG DICE Ueid extensions. */
ROT_MODULE_DME_EXTENSION = 0x0071, /**< Extension handler for DME extensions. */
ROT_MODULE_DME_STRUCTURE = 0x0072, /**< Parsing and management of the DME structure. */
ROT_MODULE_HOST_FIRMWARE_IMAGE = 0x0073, /**< Interface to Host firmware image operations. */
ROT_MODULE_SECURE_DEVICE_UNLOCK = 0x0074, /**< Handler for device unlock requests. */
ROT_MODULE_SECURITY_MANAGER = 0x0075, /**< Manager for the device security configuration. */
ROT_MODULE_SECURITY_POLICY = 0x0076, /**< The device security policy. */
ROT_MODULE_AUTH_TOKEN = 0x0077, /**< Authorization token handler. */
ROT_MODULE_DEVICE_UNLOCK_TOKEN = 0x0078, /**< Handler for device unlock tokens. */
ROT_MODULE_DOE_CMD_CHANNEL = 0x0079, /**< Communication channel for DOE commands. */
ROT_MODULE_DOE_INTERFACE = 0x007a, /**< DOE interface. */
ROT_MODULE_REAL_TIME_CLOCK = 0x007b, /**< The real time clock interface. */
ROT_MODULE_RMA_UNLOCK_TOKEN = 0x007c, /**< Handler for device RMA unlock tokens. */
ROT_MODULE_DEVICE_RMA_TRANSITION = 0x007d, /**< Device interface for RMA configuration. */
ROT_MODULE_SPDM_TRANSCRIPT_MANAGER = 0x007e, /**< SPDM Transcript Manager. */
ROT_MODULE_CMD_HANDLER_SPDM_RESPONDER = 0x007f, /**< Handler for SPDM protocol request commands. */
ROT_MODULE_SPDM_MEASUREMENTS = 0x0080, /**< SPDM measurement block handler. */
ROT_MODULE_CMD_INTERFACE_IDE_RESPONDER = 0x0081, /**< Handler for IDE protocol request commands. */
ROT_MODULE_IDE_DRIVER = 0x0082, /**< Driver interface for programming IDE registers. */
ROT_MODULE_MSG_TRANSPORT = 0x0083, /**< Handler for issuing remote requests. */
ROT_MODULE_CMD_INTERFACE_TDISP_RESPONDER = 0x0084, /**< Handler for TDISP protocol request commands. */
ROT_MODULE_TDISP_DRIVER = 0x0085, /**< Driver interface for programming TDISP registers. */
ROT_MODULE_MCTP_NOTIFIER = 0x0086, /**< MCTP Notifier module. */
ROT_MODULE_SPDM_SECURE_SESSION_MANAGER = 0x0087, /**< SPDM Secure Session Manager. */
ROT_MODULE_ECDSA = 0x0088, /**< ECDSA signature handling. */
ROT_MODULE_KEY_CACHE = 0x0089, /**< Key cache to handle rsa key management */
ROT_MODULE_EPHEMERAL_KEY_MANAGER = 0x008a, /**< Ephemeral key manager */
ROT_MODULE_EPHEMERAL_KEY_GENERATION = 0x008b, /**< Ephemeral key generation */
ROT_MODULE_AUTHORIZED_EXECUTION = 0x008c, /**< Execution context for authorized operations. */
ROT_MODULE_SPDM_VDM_PROTOCOL = 0x008d, /**< SPDM vendor defined messages protocol. */
ROT_MODULE_SPDM_PCISIG_PROTOCOL = 0x008e, /**< SPDM PCISIG messages protocol. */
ROT_MODULE_IMPACTFUL_CHECK = 0x008f, /**< Device check for conditions requiring impactful updates. */
ROT_MODULE_IMPACTFUL_UPDATE = 0x0090, /**< Interface for handling impactful updates. */
ROT_MODULE_AES_XTS_ENGINE = 0x0091, /**< An AES-XTS crypto engine. All engines use the same ID. */
ROT_MODULE_MMIO_REGISTER = 0x0092, /**< MMIO register operations */
ROT_MODULE_MPU = 0x0093, /**< MPU interface */
ROT_MODULE_TDISP_TDI_CONTEXT_MANAGER = 0x0094, /**< TDISP TDI context manager interface */
ROT_MODULE_RSASSA = 0x0095, /**< RSASSA signature handling. */
ROT_MODULE_ACVP_PROTO = 0x0096, /**< ACVP Proto handler */
ROT_MODULE_FIRMWARE_PFM_VERIFY = 0x0097, /**< Handler for verifying device FW with a PFM. */
};
#endif /* MODULE_ID_H_ */