• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (C) 2018 Marvell International Ltd.
3 *
4 * SPDX-License-Identifier:     BSD-3-Clause
5 * https://spdx.org/licenses
6 */
7
8#include <asm_macros.S>
9#include <marvell_def.h>
10#include <platform_def.h>
11
12#define PTE_NON_EXEC_OFF	54	/* XN - eXecute Never bit offset - see VMSAv8-64 */
13
14	.globl marvell_ble_prepare_exit
15
16func marvell_ble_prepare_exit
17	/*
18	 * Read the page table base and set the first page to be executable.
19	 * This is required for jumping to DRAM for further execution.
20	 */
21	mrs	x0, ttbr0_el3
22	ldr     x1, [x0]
23	mov	x2, #1
24	bic	x1, x1, x2, lsl #PTE_NON_EXEC_OFF
25	str	x1, [x0]
26	tlbi	alle3
27	dsb	sy
28	isb
29	ret
30endfunc marvell_ble_prepare_exit
31