blob: 14e8e161212f90ee221e10037c1156e030036014 [file] [log] [blame]
Yann Gautier4b0c72a2018-07-16 10:54:09 +02001/*
2 * Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
Yann Gautier4b0c72a2018-07-16 10:54:09 +02007#include <stdint.h>
8
Antonio Nino Diaze0f90632018-12-14 00:18:21 +00009#include <arch_helpers.h>
10#include <plat/common/platform.h>
11
Yann Gautier4b0c72a2018-07-16 10:54:09 +020012#define RANDOM_CANARY_VALUE 2144346116U
13
14u_register_t plat_get_stack_protector_canary(void)
15{
16 /*
17 * Ideally, a random number should be returned instead of the
18 * combination of a timer's value and a compile-time constant.
19 */
20 return RANDOM_CANARY_VALUE ^ (u_register_t)read_cntpct_el0();
21}
22