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
9f64f7a4
Commit
9f64f7a4
authored
Apr 13, 2015
by
danh-arm
Browse files
Merge pull request #287 from danh-arm/sb/bl2-loading-errors
Panic if platform specific BL3-0 handling fails v2
parents
9c7eecce
bcb79b90
Changes
1
Hide whitespace changes
Inline
Side-by-side
bl2/bl2_main.c
View file @
9f64f7a4
...
...
@@ -205,23 +205,28 @@ static int load_bl30(void)
&
bl30_image_info
,
NULL
);
if
(
e
==
0
)
{
if
(
e
)
return
e
;
#if TRUSTED_BOARD_BOOT
e
=
auth_verify_obj
(
AUTH_BL30_IMG
,
bl30_image_info
.
image_base
,
bl30_image_info
.
image_size
);
if
(
e
)
{
ERROR
(
"Failed to authenticate BL3-0 image.
\n
"
);
panic
()
;
}
/* After working with data, invalidate the data cache */
inv_dcache_range
(
bl30_image_info
.
image_base
,
(
size_t
)
bl30_image_info
.
image_size
);
e
=
auth_verify_obj
(
AUTH_BL30_IMG
,
bl30_image_info
.
image_base
,
bl30_image_info
.
image_size
);
if
(
e
)
{
ERROR
(
"Failed to authenticate BL3-0 image.
\n
"
);
return
e
;
}
/* After working with data, invalidate the data cache */
inv_dcache_range
(
bl30_image_info
.
image_base
,
(
size_t
)
bl30_image_info
.
image_size
);
#endif
/* TRUSTED_BOARD_BOOT */
/* The subsequent handling of BL3-0 is platform specific */
bl2_plat_handle_bl30
(
&
bl30_image_info
);
/* The subsequent handling of BL3-0 is platform specific */
e
=
bl2_plat_handle_bl30
(
&
bl30_image_info
);
if
(
e
)
{
ERROR
(
"Failure in platform-specific handling of BL3-0 image.
\n
"
);
return
e
;
}
#endif
/* BL30_BASE */
...
...
@@ -256,25 +261,25 @@ static int load_bl31(bl31_params_t *bl2_to_bl31_params,
BL31_BASE
,
bl2_to_bl31_params
->
bl31_image_info
,
bl31_ep_info
);
if
(
e
)
return
e
;
if
(
e
==
0
)
{
#if TRUSTED_BOARD_BOOT
e
=
auth_verify_obj
(
AUTH_BL31_IMG
,
bl2_to_bl31_params
->
bl31_image_info
->
image_base
,
bl2_to_bl31_params
->
bl31_image_info
->
image_size
);
if
(
e
)
{
ERROR
(
"Failed to authenticate BL3-1 image.
\n
"
);
panic
()
;
}
/* After working with data, invalidate the data cache */
inv_dcache_range
(
bl2_to_bl31_params
->
bl31_image_info
->
image_base
,
e
=
auth_verify_obj
(
AUTH_BL31_IMG
,
bl2_to_bl31_params
->
bl31_image_info
->
image_base
,
bl2_to_bl31_params
->
bl31_image_info
->
image_size
);
if
(
e
)
{
ERROR
(
"Failed to authenticate BL3-1 image.
\n
"
);
return
e
;
}
/* After working with data, invalidate the data cache */
inv_dcache_range
(
bl2_to_bl31_params
->
bl31_image_info
->
image_base
,
(
size_t
)
bl2_to_bl31_params
->
bl31_image_info
->
image_size
);
#endif
/* TRUSTED_BOARD_BOOT */
bl2_plat_set_bl31_ep_info
(
bl2_to_bl31_params
->
bl31_image_info
,
bl31_ep_info
);
}
bl2_plat_set_bl31_ep_info
(
bl2_to_bl31_params
->
bl31_image_info
,
bl31_ep_info
);
return
e
;
}
...
...
@@ -309,30 +314,31 @@ static int load_bl32(bl31_params_t *bl2_to_bl31_params)
bl2_to_bl31_params
->
bl32_image_info
,
bl2_to_bl31_params
->
bl32_ep_info
);
if
(
e
==
0
)
{
if
(
e
)
return
e
;
#if TRUSTED_BOARD_BOOT
/* Image is present. Check if there is a valid certificate */
if
(
bl32_cert_error
)
{
ERROR
(
"Failed to authenticate BL3-2 certificates.
\n
"
);
panic
()
;
}
e
=
auth_verify_obj
(
AUTH_BL32_IMG
,
bl2_to_bl31_params
->
bl32_image_info
->
image_base
,
bl2_to_bl31_params
->
bl32_image_info
->
image_size
);
if
(
e
)
{
ERROR
(
"Failed to authenticate BL3-2 image.
\n
"
);
panic
()
;
}
/* After working with data, invalidate the data cache */
inv_dcache_range
(
bl2_to_bl31_params
->
bl32_image_info
->
image_base
,
/* Image is present. Check if there is a valid certificate */
if
(
bl32_cert_error
)
{
ERROR
(
"Failed to authenticate BL3-2 certificates.
\n
"
);
return
bl32_cert_error
;
}
e
=
auth_verify_obj
(
AUTH_BL32_IMG
,
bl2_to_bl31_params
->
bl32_image_info
->
image_base
,
bl2_to_bl31_params
->
bl32_image_info
->
image_size
);
if
(
e
)
{
ERROR
(
"Failed to authenticate BL3-2 image.
\n
"
);
return
e
;
}
/* After working with data, invalidate the data cache */
inv_dcache_range
(
bl2_to_bl31_params
->
bl32_image_info
->
image_base
,
(
size_t
)
bl2_to_bl31_params
->
bl32_image_info
->
image_size
);
#endif
/* TRUSTED_BOARD_BOOT */
bl2_plat_set_bl32_ep_info
(
bl2_to_bl31_params
->
bl32_image_info
,
bl2_to_bl31_params
->
bl32_ep_info
);
}
bl2_plat_set_bl32_ep_info
(
bl2_to_bl31_params
->
bl32_image_info
,
bl2_to_bl31_params
->
bl32_ep_info
);
#endif
/* BL32_BASE */
return
e
;
...
...
@@ -361,23 +367,24 @@ static int load_bl33(bl31_params_t *bl2_to_bl31_params)
bl2_to_bl31_params
->
bl33_image_info
,
bl2_to_bl31_params
->
bl33_ep_info
);
if
(
e
==
0
)
{
if
(
e
)
return
e
;
#if TRUSTED_BOARD_BOOT
e
=
auth_verify_obj
(
AUTH_BL33_IMG
,
bl2_to_bl31_params
->
bl33_image_info
->
image_base
,
bl2_to_bl31_params
->
bl33_image_info
->
image_size
);
if
(
e
)
{
ERROR
(
"Failed to authenticate BL3-3 image.
\n
"
);
panic
()
;
}
/* After working with data, invalidate the data cache */
inv_dcache_range
(
bl2_to_bl31_params
->
bl33_image_info
->
image_base
,
e
=
auth_verify_obj
(
AUTH_BL33_IMG
,
bl2_to_bl31_params
->
bl33_image_info
->
image_base
,
bl2_to_bl31_params
->
bl33_image_info
->
image_size
);
if
(
e
)
{
ERROR
(
"Failed to authenticate BL3-3 image.
\n
"
);
return
e
;
}
/* After working with data, invalidate the data cache */
inv_dcache_range
(
bl2_to_bl31_params
->
bl33_image_info
->
image_base
,
(
size_t
)
bl2_to_bl31_params
->
bl33_image_info
->
image_size
);
#endif
/* TRUSTED_BOARD_BOOT */
bl2_plat_set_bl33_ep_info
(
bl2_to_bl31_params
->
bl33_image_info
,
bl2_to_bl31_params
->
bl33_ep_info
);
}
bl2_plat_set_bl33_ep_info
(
bl2_to_bl31_params
->
bl33_image_info
,
bl2_to_bl31_params
->
bl33_ep_info
);
return
e
;
}
...
...
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