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
73b1a02f
Unverified
Commit
73b1a02f
authored
Jul 03, 2018
by
Dimitris Papastamos
Committed by
GitHub
Jul 03, 2018
Browse files
Merge pull request #1447 from Amit-Radur/bl32_v1
allwinner: Add BL32 (corresponds to Trusted OS) support
parents
6c5e196b
30fb0d67
Changes
3
Hide whitespace changes
Inline
Side-by-side
docs/plat/allwinner.rst
View file @
73b1a02f
...
...
@@ -27,3 +27,13 @@ To build:
make CROSS_COMPILE=aarch64-linux-gnu- PLAT=sun50i_a64 DEBUG=1 bl31
.. _U-Boot documentation: http://git.denx.de/?p=u-boot.git;f=board/sunxi/README.sunxi64;hb=HEAD
Trusted OS dispatcher
=====================
One can boot Trusted OS(OP-TEE OS, bl32 image) along side bl31 image on Allwinner A64.
In order to include the 'opteed' dispatcher in the image, pass 'SPD=opteed' on the command line
while compiling the bl31 image and make sure the loader (SPL) loads the Trusted OS binary to
the beginning of DRAM (0x40000000).
plat/allwinner/common/include/platform_def.h
View file @
73b1a02f
...
...
@@ -42,4 +42,10 @@
#define PLATFORM_MMAP_REGIONS 4
#define PLATFORM_STACK_SIZE (0x1000 / PLATFORM_CORE_COUNT)
#ifndef SPD_none
#ifndef BL32_BASE
#define BL32_BASE SUNXI_DRAM_BASE
#endif
#endif
#endif
/* __PLATFORM_DEF_H__ */
plat/allwinner/common/sunxi_bl31_setup.c
View file @
73b1a02f
...
...
@@ -18,6 +18,7 @@
#include "sunxi_private.h"
static
entry_point_info_t
bl32_image_ep_info
;
static
entry_point_info_t
bl33_image_ep_info
;
static
console_16550_t
console
;
...
...
@@ -34,6 +35,13 @@ void bl31_early_platform_setup2(u_register_t arg0, u_register_t arg1,
console_16550_register
(
SUNXI_UART0_BASE
,
SUNXI_UART0_CLK_IN_HZ
,
SUNXI_UART0_BAUDRATE
,
&
console
);
#ifdef BL32_BASE
/* Populate entry point information for BL32 */
SET_PARAM_HEAD
(
&
bl32_image_ep_info
,
PARAM_EP
,
VERSION_1
,
0
);
SET_SECURITY_STATE
(
bl32_image_ep_info
.
h
.
attr
,
SECURE
);
bl32_image_ep_info
.
pc
=
BL32_BASE
;
#endif
/* Populate entry point information for BL33 */
SET_PARAM_HEAD
(
&
bl33_image_ep_info
,
PARAM_EP
,
VERSION_1
,
0
);
/*
...
...
@@ -72,7 +80,12 @@ void bl31_platform_setup(void)
entry_point_info_t
*
bl31_plat_get_next_image_ep_info
(
uint32_t
type
)
{
assert
(
sec_state_is_valid
(
type
)
!=
0
);
assert
(
type
==
NON_SECURE
);
return
&
bl33_image_ep_info
;
if
(
type
==
NON_SECURE
)
return
&
bl33_image_ep_info
;
if
((
type
==
SECURE
)
&&
bl32_image_ep_info
.
pc
)
return
&
bl32_image_ep_info
;
return
NULL
;
}
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