Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
adam.huang
Arm Trusted Firmware
Commits
79c0f525
Unverified
Commit
79c0f525
authored
Mar 29, 2018
by
Dimitris Papastamos
Committed by
GitHub
Mar 29, 2018
Browse files
Merge pull request #1325 from michpappas/tf-issues#568_qemu_add_ENABLE_STACK_PROTECTOR
qemu: Add support for stack canary protection
parents
bd79727c
f68d22e8
Changes
3
Show whitespace changes
Inline
Side-by-side
plat/qemu/include/platform_def.h
View file @
79c0f525
...
@@ -75,7 +75,7 @@
...
@@ -75,7 +75,7 @@
#define NS_DRAM0_SIZE 0x3de00000
#define NS_DRAM0_SIZE 0x3de00000
#define SEC_SRAM_BASE 0x0e000000
#define SEC_SRAM_BASE 0x0e000000
#define SEC_SRAM_SIZE 0x000
4
0000
#define SEC_SRAM_SIZE 0x000
6
0000
#define SEC_DRAM_BASE 0x0e100000
#define SEC_DRAM_BASE 0x0e100000
#define SEC_DRAM_SIZE 0x00f00000
#define SEC_DRAM_SIZE 0x00f00000
...
@@ -123,7 +123,7 @@
...
@@ -123,7 +123,7 @@
* Put BL2 just below BL3-1. BL2_BASE is calculated using the current BL2 debug
* Put BL2 just below BL3-1. BL2_BASE is calculated using the current BL2 debug
* size plus a little space for growth.
* size plus a little space for growth.
*/
*/
#define BL2_BASE (BL31_BASE - 0x
1D
000)
#define BL2_BASE (BL31_BASE - 0x
25
000)
#define BL2_LIMIT BL31_BASE
#define BL2_LIMIT BL31_BASE
/*
/*
...
...
plat/qemu/platform.mk
View file @
79c0f525
...
@@ -169,6 +169,10 @@ $(eval $(call TOOL_ADD_IMG,bl32_extra2,--tos-fw-extra2))
...
@@ -169,6 +169,10 @@ $(eval $(call TOOL_ADD_IMG,bl32_extra2,--tos-fw-extra2))
endif
endif
SEPARATE_CODE_AND_RODATA
:=
1
SEPARATE_CODE_AND_RODATA
:=
1
ENABLE_STACK_PROTECTOR
:=
0
ifneq
($(ENABLE_STACK_PROTECTOR), 0)
PLAT_BL_COMMON_SOURCES
+=
plat/qemu/qemu_stack_protector.c
endif
# Use MULTI_CONSOLE_API by default only on AArch64
# Use MULTI_CONSOLE_API by default only on AArch64
# as it is not yet supported on AArch32
# as it is not yet supported on AArch32
...
...
plat/qemu/qemu_stack_protector.c
0 → 100644
View file @
79c0f525
/*
* Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#include <arch_helpers.h>
#include <platform.h>
#include <stdint.h>
#define RANDOM_CANARY_VALUE ((u_register_t) 3288484550995823360ULL)
u_register_t
plat_get_stack_protector_canary
(
void
)
{
/*
* Ideally, a random number should be returned instead of the
* combination of a timer's value and a compile-time constant.
* As the virt platform does not have any random number generator,
* this is better than nothing but not necessarily really secure.
*/
return
RANDOM_CANARY_VALUE
^
read_cntpct_el0
();
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment