1*91f16700Schasinglulu /* 2*91f16700Schasinglulu * Copyright 2018-2020 NXP 3*91f16700Schasinglulu * 4*91f16700Schasinglulu * SPDX-License-Identifier: BSD-3-Clause 5*91f16700Schasinglulu * 6*91f16700Schasinglulu */ 7*91f16700Schasinglulu 8*91f16700Schasinglulu #include <stdint.h> 9*91f16700Schasinglulu 10*91f16700Schasinglulu #include <arch_helpers.h> 11*91f16700Schasinglulu 12*91f16700Schasinglulu #include <plat/common/platform.h> 13*91f16700Schasinglulu 14*91f16700Schasinglulu #define RANDOM_CANARY_VALUE ((u_register_t) 3288484550995823360ULL) 15*91f16700Schasinglulu 16*91f16700Schasinglulu u_register_t plat_get_stack_protector_canary(void) 17*91f16700Schasinglulu { 18*91f16700Schasinglulu /* 19*91f16700Schasinglulu * TBD: Generate Random Number from NXP CAAM Block. 20*91f16700Schasinglulu */ 21*91f16700Schasinglulu return RANDOM_CANARY_VALUE ^ read_cntpct_el0(); 22*91f16700Schasinglulu } 23