/** @file | |
Arm Firmware TRNG definitions. | |
Copyright (c) 2021 - 2022, Arm Limited. All rights reserved.<BR> | |
SPDX-License-Identifier: BSD-2-Clause-Patent | |
@par Reference(s): | |
- [1] Arm True Random Number Generator Firmware, Interface 1.0, | |
Platform Design Document. | |
(https://developer.arm.com/documentation/den0098/latest/) | |
@par Glossary: | |
- TRNG - True Random Number Generator | |
- FID - Function ID | |
**/ | |
#ifndef ARM_FW_TRNG_DEFS_H_ | |
#define ARM_FW_TRNG_DEFS_H_ | |
#include <IndustryStandard/ArmStdSmc.h> | |
// Firmware TRNG revision mask and shift | |
#define TRNG_REV_MAJOR_MASK 0x7FFF | |
#define TRNG_REV_MINOR_MASK 0xFFFF | |
#define TRNG_REV_MAJOR_SHIFT 16 | |
#if defined (MDE_CPU_ARM) | |
/** FID to use on AArch32 platform to request entropy. | |
*/ | |
#define ARM_SMC_ID_TRNG_RND ARM_SMC_ID_TRNG_RND_AARCH32 | |
/** Maximum bits of entropy supported on AArch32. | |
*/ | |
#define MAX_ENTROPY_BITS 96 | |
#elif defined (MDE_CPU_AARCH64) | |
/** FID to use on AArch64 platform to request entropy. | |
*/ | |
#define ARM_SMC_ID_TRNG_RND ARM_SMC_ID_TRNG_RND_AARCH64 | |
/** Maximum bits of entropy supported on AArch64. | |
*/ | |
#define MAX_ENTROPY_BITS 192 | |
#else | |
#error "Firmware TRNG not supported. Unknown chipset." | |
#endif | |
#endif // ARM_FW_TRNG_DEFS_H_ |