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
dd64d425
Commit
dd64d425
authored
Nov 04, 2015
by
Achin Gupta
Browse files
Merge pull request #421 from sandrine-bailleux/sb/improve-display_boot_progress
Improve images transitions debugging messages
parents
55608066
ee5c2b13
Changes
5
Hide whitespace changes
Inline
Side-by-side
bl1/aarch64/bl1_exceptions.S
View file @
dd64d425
...
@@ -195,7 +195,7 @@ func smc_handler64
...
@@ -195,7 +195,7 @@ func smc_handler64
b.ne
unexpected_sync_exception
b.ne
unexpected_sync_exception
mov
x0
,
x20
mov
x0
,
x20
bl
display_boot_progress
bl
bl1_print_bl31_ep_info
ldp
x0
,
x1
,
[
x20
,
#
ENTRY_POINT_INFO_PC_OFFSET
]
ldp
x0
,
x1
,
[
x20
,
#
ENTRY_POINT_INFO_PC_OFFSET
]
msr
elr_el3
,
x0
msr
elr_el3
,
x0
...
...
bl1/bl1_main.c
View file @
dd64d425
...
@@ -57,6 +57,9 @@ static void __dead2 bl1_run_bl2(entry_point_info_t *bl2_ep)
...
@@ -57,6 +57,9 @@ static void __dead2 bl1_run_bl2(entry_point_info_t *bl2_ep)
write_spsr_el3
(
bl2_ep
->
spsr
);
write_spsr_el3
(
bl2_ep
->
spsr
);
write_elr_el3
(
bl2_ep
->
pc
);
write_elr_el3
(
bl2_ep
->
pc
);
NOTICE
(
"BL1: Booting BL2
\n
"
);
print_entry_point_info
(
bl2_ep
);
eret
(
bl2_ep
->
args
.
arg0
,
eret
(
bl2_ep
->
args
.
arg0
,
bl2_ep
->
args
.
arg1
,
bl2_ep
->
args
.
arg1
,
bl2_ep
->
args
.
arg2
,
bl2_ep
->
args
.
arg2
,
...
@@ -190,31 +193,18 @@ void bl1_main(void)
...
@@ -190,31 +193,18 @@ void bl1_main(void)
bl1_plat_set_bl2_ep_info
(
&
bl2_image_info
,
&
bl2_ep
);
bl1_plat_set_bl2_ep_info
(
&
bl2_image_info
,
&
bl2_ep
);
bl2_ep
.
args
.
arg1
=
(
unsigned
long
)
bl2_tzram_layout
;
bl2_ep
.
args
.
arg1
=
(
unsigned
long
)
bl2_tzram_layout
;
NOTICE
(
"BL1: Booting BL2
\n
"
);
INFO
(
"BL1: BL2 address = 0x%llx
\n
"
,
(
unsigned
long
long
)
bl2_ep
.
pc
);
INFO
(
"BL1: BL2 spsr = 0x%x
\n
"
,
bl2_ep
.
spsr
);
VERBOSE
(
"BL1: BL2 memory layout address = 0x%llx
\n
"
,
(
unsigned
long
long
)
bl2_tzram_layout
);
bl1_run_bl2
(
&
bl2_ep
);
bl1_run_bl2
(
&
bl2_ep
);
return
;
return
;
}
}
/*******************************************************************************
/*******************************************************************************
* Temporary function to print the fact that BL2 has done its job and BL31 is
* Function called just before handing over to BL31 to inform the user about
* about to be loaded. This is needed as long as printfs cannot be used
* the boot progress. In debug mode, also print details about the BL31 image's
* execution context.
******************************************************************************/
******************************************************************************/
void
display_boot_progress
(
entry_point_info_t
*
bl31_ep_info
)
void
bl1_print_bl31_ep_info
(
const
entry_point_info_t
*
bl31_ep_info
)
{
{
NOTICE
(
"BL1: Booting BL3-1
\n
"
);
NOTICE
(
"BL1: Booting BL3-1
\n
"
);
INFO
(
"BL1: BL3-1 address = 0x%llx
\n
"
,
print_entry_point_info
(
bl31_ep_info
);
(
unsigned
long
long
)
bl31_ep_info
->
pc
);
INFO
(
"BL1: BL3-1 spsr = 0x%llx
\n
"
,
(
unsigned
long
long
)
bl31_ep_info
->
spsr
);
INFO
(
"BL1: BL3-1 params address = 0x%llx
\n
"
,
(
unsigned
long
long
)
bl31_ep_info
->
args
.
arg0
);
INFO
(
"BL1: BL3-1 plat params address = 0x%llx
\n
"
,
(
unsigned
long
long
)
bl31_ep_info
->
args
.
arg1
);
}
}
bl31/bl31_main.c
View file @
dd64d425
...
@@ -149,9 +149,7 @@ void bl31_prepare_next_image_entry(void)
...
@@ -149,9 +149,7 @@ void bl31_prepare_next_image_entry(void)
INFO
(
"BL3-1: Preparing for EL3 exit to %s world
\n
"
,
INFO
(
"BL3-1: Preparing for EL3 exit to %s world
\n
"
,
(
image_type
==
SECURE
)
?
"secure"
:
"normal"
);
(
image_type
==
SECURE
)
?
"secure"
:
"normal"
);
INFO
(
"BL3-1: Next image address = 0x%llx
\n
"
,
print_entry_point_info
(
next_image_info
);
(
unsigned
long
long
)
next_image_info
->
pc
);
INFO
(
"BL3-1: Next image spsr = 0x%x
\n
"
,
next_image_info
->
spsr
);
cm_init_my_context
(
next_image_info
);
cm_init_my_context
(
next_image_info
);
cm_prepare_el3_exit
(
image_type
);
cm_prepare_el3_exit
(
image_type
);
}
}
...
...
common/bl_common.c
View file @
dd64d425
...
@@ -352,3 +352,27 @@ int load_auth_image(meminfo_t *mem_layout,
...
@@ -352,3 +352,27 @@ int load_auth_image(meminfo_t *mem_layout,
return
0
;
return
0
;
}
}
/*******************************************************************************
* Print the content of an entry_point_info_t structure.
******************************************************************************/
void
print_entry_point_info
(
const
entry_point_info_t
*
ep_info
)
{
INFO
(
"Entry point address = 0x%llx
\n
"
,
(
unsigned
long
long
)
ep_info
->
pc
);
INFO
(
"SPSR = 0x%lx
\n
"
,
(
unsigned
long
)
ep_info
->
spsr
);
#define PRINT_IMAGE_ARG(n) \
VERBOSE("Argument #" #n " = 0x%llx\n", \
(unsigned long long) ep_info->args.arg##n)
PRINT_IMAGE_ARG
(
0
);
PRINT_IMAGE_ARG
(
1
);
PRINT_IMAGE_ARG
(
2
);
PRINT_IMAGE_ARG
(
3
);
PRINT_IMAGE_ARG
(
4
);
PRINT_IMAGE_ARG
(
5
);
PRINT_IMAGE_ARG
(
6
);
PRINT_IMAGE_ARG
(
7
);
#undef PRINT_IMAGE_ARG
}
include/common/bl_common.h
View file @
dd64d425
...
@@ -242,6 +242,8 @@ extern const char version_string[];
...
@@ -242,6 +242,8 @@ extern const char version_string[];
void
reserve_mem
(
uint64_t
*
free_base
,
size_t
*
free_size
,
void
reserve_mem
(
uint64_t
*
free_base
,
size_t
*
free_size
,
uint64_t
addr
,
size_t
size
);
uint64_t
addr
,
size_t
size
);
void
print_entry_point_info
(
const
entry_point_info_t
*
ep_info
);
#endif
/*__ASSEMBLY__*/
#endif
/*__ASSEMBLY__*/
#endif
/* __BL_COMMON_H__ */
#endif
/* __BL_COMMON_H__ */
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