xref: /rk3399_ARM-atf/plat/nxp/common/setup/ls_stack_protector.c (revision 9719e19a977df3e8bf7567b3c0e1d6b2ebc5b46f)
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 Gupta u_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