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