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
63a6d09a
Commit
63a6d09a
authored
Mar 16, 2016
by
danh-arm
Browse files
Merge pull request #550 from antonio-nino-diaz-arm/an/dead_loops
Remove all non-configurable dead loops
parents
5cc34831
1c3ea103
Changes
12
Show whitespace changes
Inline
Side-by-side
bl2/aarch64/bl2_entrypoint.S
View file @
63a6d09a
/*
*
Copyright
(
c
)
2013
-
201
5
,
ARM
Limited
and
Contributors
.
All
rights
reserved
.
*
Copyright
(
c
)
2013
-
201
6
,
ARM
Limited
and
Contributors
.
All
rights
reserved
.
*
*
Redistribution
and
use
in
source
and
binary
forms
,
with
or
without
*
modification
,
are
permitted
provided
that
the
following
conditions
are
met
:
...
...
@@ -126,6 +126,11 @@ func bl2_entrypoint
*
---------------------------------------------
*/
bl
bl2_main
_panic
:
b
_panic
/
*
---------------------------------------------
*
Should
never
reach
this
point
.
*
---------------------------------------------
*/
bl
plat_panic_handler
endfunc
bl2_entrypoint
bl2u/aarch64/bl2u_entrypoint.S
View file @
63a6d09a
/*
*
Copyright
(
c
)
2015
,
ARM
Limited
and
Contributors
.
All
rights
reserved
.
*
Copyright
(
c
)
2015
-
2016
,
ARM
Limited
and
Contributors
.
All
rights
reserved
.
*
*
Redistribution
and
use
in
source
and
binary
forms
,
with
or
without
*
modification
,
are
permitted
provided
that
the
following
conditions
are
met
:
...
...
@@ -122,6 +122,10 @@ func bl2u_entrypoint
*/
bl
bl2u_main
_panic
:
b
_panic
/
*
---------------------------------------------
*
Should
never
reach
this
point
.
*
---------------------------------------------
*/
bl
plat_panic_handler
endfunc
bl2u_entrypoint
bl31/aarch64/crash_reporting.S
View file @
63a6d09a
/*
*
Copyright
(
c
)
2014
,
ARM
Limited
and
Contributors
.
All
rights
reserved
.
*
Copyright
(
c
)
2014
-
2016
,
ARM
Limited
and
Contributors
.
All
rights
reserved
.
*
*
Redistribution
and
use
in
source
and
binary
forms
,
with
or
without
*
modification
,
are
permitted
provided
that
the
following
conditions
are
met
:
...
...
@@ -351,17 +351,17 @@ func do_crash_reporting
plat_print_interconnect_regs
/
*
Done
reporting
*/
b
crash_panic
b
l
plat_panic_handler
endfunc
do_crash_reporting
#else /* CRASH_REPORTING */
func
report_unhandled_exception
report_unhandled_interrupt
:
b
crash_panic
b
l
plat_panic_handler
endfunc
report_unhandled_exception
#endif /* CRASH_REPORTING */
func
crash_panic
b
crash_panic
b
l
plat_panic_handler
endfunc
crash_panic
bl32/tsp/aarch64/tsp_entrypoint.S
View file @
63a6d09a
/*
*
Copyright
(
c
)
2013
-
201
5
,
ARM
Limited
and
Contributors
.
All
rights
reserved
.
*
Copyright
(
c
)
2013
-
201
6
,
ARM
Limited
and
Contributors
.
All
rights
reserved
.
*
*
Redistribution
and
use
in
source
and
binary
forms
,
with
or
without
*
modification
,
are
permitted
provided
that
the
following
conditions
are
met
:
...
...
@@ -391,7 +391,7 @@ tsp_sel1_intr_return:
/
*
Should
never
reach
here
*/
tsp_sel1_int_entry_panic
:
b
tsp_sel1_int_entry_panic
b
l
plat_panic_handler
endfunc
tsp_sel1_intr_entry
/*---------------------------------------------
...
...
@@ -407,8 +407,9 @@ endfunc tsp_sel1_intr_entry
func
tsp_cpu_resume_entry
bl
tsp_cpu_resume_main
restore_args_call_smc
tsp_cpu_resume_panic
:
b
tsp_cpu_resume_panic
/
*
Should
never
reach
here
*/
bl
plat_panic_handler
endfunc
tsp_cpu_resume_entry
/*---------------------------------------------
...
...
@@ -419,8 +420,9 @@ endfunc tsp_cpu_resume_entry
func
tsp_fast_smc_entry
bl
tsp_smc_handler
restore_args_call_smc
tsp_fast_smc_entry_panic
:
b
tsp_fast_smc_entry_panic
/
*
Should
never
reach
here
*/
bl
plat_panic_handler
endfunc
tsp_fast_smc_entry
/*---------------------------------------------
...
...
@@ -435,6 +437,7 @@ func tsp_std_smc_entry
bl
tsp_smc_handler
msr
daifset
,
#
DAIF_FIQ_BIT
|
DAIF_IRQ_BIT
restore_args_call_smc
tsp_std_smc_entry_panic
:
b
tsp_std_smc_entry_panic
/
*
Should
never
reach
here
*/
bl
plat_panic_handler
endfunc
tsp_std_smc_entry
bl32/tsp/aarch64/tsp_exceptions.S
View file @
63a6d09a
/*
*
Copyright
(
c
)
2013
-
201
4
,
ARM
Limited
and
Contributors
.
All
rights
reserved
.
*
Copyright
(
c
)
2013
-
201
6
,
ARM
Limited
and
Contributors
.
All
rights
reserved
.
*
*
Redistribution
and
use
in
source
and
binary
forms
,
with
or
without
*
modification
,
are
permitted
provided
that
the
following
conditions
are
met
:
...
...
@@ -108,24 +108,23 @@ tsp_exceptions:
*
-----------------------------------------------------
*/
sync_exception_sp_el0
:
wfi
b
sync_exception_sp_el0
bl
plat_panic_handler
check_vector_size
sync_exception_sp_el0
.
align
7
irq_sp_el0
:
b
irq_sp_el0
b
l
plat_panic_handler
check_vector_size
irq_sp_el0
.
align
7
fiq_sp_el0
:
b
fiq_sp_el0
b
l
plat_panic_handler
check_vector_size
fiq_sp_el0
.
align
7
serror_sp_el0
:
b
serror_sp_el0
b
l
plat_panic_handler
check_vector_size
serror_sp_el0
...
...
@@ -136,8 +135,7 @@ serror_sp_el0:
*/
.
align
7
sync_exception_sp_elx
:
wfi
b
sync_exception_sp_elx
bl
plat_panic_handler
check_vector_size
sync_exception_sp_elx
.
align
7
...
...
@@ -152,7 +150,7 @@ fiq_sp_elx:
.
align
7
serror_sp_elx
:
b
serror_sp_elx
b
l
plat_panic_handler
check_vector_size
serror_sp_elx
...
...
@@ -163,23 +161,22 @@ serror_sp_elx:
*/
.
align
7
sync_exception_aarch64
:
wfi
b
sync_exception_aarch64
bl
plat_panic_handler
check_vector_size
sync_exception_aarch64
.
align
7
irq_aarch64
:
b
irq_aarch64
b
l
plat_panic_handler
check_vector_size
irq_aarch64
.
align
7
fiq_aarch64
:
b
fiq_aarch64
b
l
plat_panic_handler
check_vector_size
fiq_aarch64
.
align
7
serror_aarch64
:
b
serror_aarch64
b
l
plat_panic_handler
check_vector_size
serror_aarch64
...
...
@@ -190,22 +187,21 @@ serror_aarch64:
*/
.
align
7
sync_exception_aarch32
:
wfi
b
sync_exception_aarch32
bl
plat_panic_handler
check_vector_size
sync_exception_aarch32
.
align
7
irq_aarch32
:
b
irq_aarch32
b
l
plat_panic_handler
check_vector_size
irq_aarch32
.
align
7
fiq_aarch32
:
b
fiq_aarch32
b
l
plat_panic_handler
check_vector_size
fiq_aarch32
.
align
7
serror_aarch32
:
b
serror_aarch32
b
l
plat_panic_handler
check_vector_size
serror_aarch32
.
align
7
common/aarch64/debug.S
View file @
63a6d09a
/*
*
Copyright
(
c
)
2014
,
ARM
Limited
and
Contributors
.
All
rights
reserved
.
*
Copyright
(
c
)
2014
-
2016
,
ARM
Limited
and
Contributors
.
All
rights
reserved
.
*
*
Redistribution
and
use
in
source
and
binary
forms
,
with
or
without
*
modification
,
are
permitted
provided
that
the
following
conditions
are
met
:
...
...
@@ -120,7 +120,7 @@ endfunc asm_print_str
/*
*
This
function
prints
a
hexadecimal
number
in
x4
.
*
In
:
x4
=
the
hexadecimal
to
print
.
*
Clobber
:
x30
,
x0
,
x5
,
x
1
,
x
2
,
x3
*
Clobber
:
x30
,
x0
-
x
3
,
x
5
*/
func
asm_print_hex
mov
x3
,
x30
...
...
@@ -178,7 +178,7 @@ el3_panic:
mov
x6
,
x30
bl
plat_crash_console_init
/
*
Check
if
the
console
is
initialized
*/
cbz
x0
,
_panic_
loop
cbz
x0
,
_panic_
handler
/
*
The
console
is
initialized
*/
adr
x4
,
panic_msg
bl
asm_print_str
...
...
@@ -186,7 +186,10 @@ el3_panic:
/
*
The
panic
location
is
lr
-
4
*/
sub
x4
,
x4
,
#
4
bl
asm_print_hex
_panic_loop
:
b
_panic_loop
endfunc
do_panic
_panic_handler
:
/
*
Pass
to
plat_panic_handler
the
address
from
where
el3_panic
was
*
called
,
not
the
address
of
the
call
from
el3_panic
.
*/
mov
x30
,
x6
b
plat_panic_handler
endfunc
do_panic
docs/porting-guide.md
View file @
63a6d09a
...
...
@@ -783,6 +783,20 @@ Possible errors reported by the generic code are:
The default implementation simply spins.
### Function : plat_panic_handler()
Argument : void
Return : void
This API is called when the generic code encounters an unexpected error
situation from which it cannot recover. This function must not return,
and must be implemented in assembly because it may be called before the C
environment is initialized.
Note: The address from where it was called is stored in x30 (Link Register).
The default implementation simply spins.
3. Modifications specific to a Boot Loader stage
-------------------------------------------------
...
...
include/common/el3_common_macros.S
View file @
63a6d09a
...
...
@@ -196,8 +196,7 @@
/
*
This
is
a
cold
boot
on
a
secondary
CPU
*/
bl
plat_secondary_cold_boot_setup
/
*
plat_secondary_cold_boot_setup
()
is
not
supposed
to
return
*/
secondary_panic
:
b
secondary_panic
bl
el3_panic
do_primary_cold_boot
:
.
endif
/*
_secondary_cold_boot
*/
...
...
include/plat/common/platform.h
View file @
63a6d09a
/*
* Copyright (c) 2013-201
5
, ARM Limited and Contributors. All rights reserved.
* Copyright (c) 2013-201
6
, ARM Limited and Contributors. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
...
...
@@ -83,6 +83,7 @@ void plat_report_exception(unsigned long);
int
plat_crash_console_init
(
void
);
int
plat_crash_console_putc
(
int
c
);
void
plat_error_handler
(
int
err
)
__dead2
;
void
plat_panic_handler
(
void
)
__dead2
;
/*******************************************************************************
* Mandatory BL1 functions
...
...
plat/arm/board/fvp/aarch64/fvp_helpers.S
View file @
63a6d09a
/*
*
Copyright
(
c
)
2013
-
201
5
,
ARM
Limited
and
Contributors
.
All
rights
reserved
.
*
Copyright
(
c
)
2013
-
201
6
,
ARM
Limited
and
Contributors
.
All
rights
reserved
.
*
*
Redistribution
and
use
in
source
and
binary
forms
,
with
or
without
*
modification
,
are
permitted
provided
that
the
following
conditions
are
met
:
...
...
@@ -111,8 +111,7 @@ secondary_cold_boot_wait:
*/
dsb
sy
wfi
cb_panic
:
b
cb_panic
bl
plat_panic_handler
#else
mov_imm
x0
,
PLAT_ARM_TRUSTED_MAILBOX_BASE
...
...
@@ -174,7 +173,7 @@ warm_reset:
*/
mov_imm
x0
,
PLAT_ARM_TRUSTED_MAILBOX_BASE
ldr
x0
,
[
x0
]
cbz
x0
,
_panic
cbz
x0
,
_panic
_handler
ret
/
*
---------------------------------------------------------------------
...
...
@@ -182,8 +181,8 @@ warm_reset:
*
is
empty
.
This
should
never
happen
!
*
---------------------------------------------------------------------
*/
_panic
:
b
_panic
_panic
_handler
:
b
l
plat_panic_handler
endfunc
plat_get_my_entrypoint
/
*
-----------------------------------------------------
...
...
plat/arm/board/juno/aarch64/juno_helpers.S
View file @
63a6d09a
/*
*
Copyright
(
c
)
2013
-
201
5
,
ARM
Limited
and
Contributors
.
All
rights
reserved
.
*
Copyright
(
c
)
2013
-
201
6
,
ARM
Limited
and
Contributors
.
All
rights
reserved
.
*
*
Redistribution
and
use
in
source
and
binary
forms
,
with
or
without
*
modification
,
are
permitted
provided
that
the
following
conditions
are
met
:
...
...
@@ -201,8 +201,7 @@ func plat_reset_handler
JUMP_TO_HANDLER_IF_JUNO_R
(2)
/
*
Board
revision
is
not
supported
*/
not_supported
:
b
not_supported
bl
plat_panic_handler
endfunc
plat_reset_handler
...
...
plat/common/aarch64/platform_helpers.S
View file @
63a6d09a
/*
*
Copyright
(
c
)
2013
-
201
4
,
ARM
Limited
and
Contributors
.
All
rights
reserved
.
*
Copyright
(
c
)
2013
-
201
6
,
ARM
Limited
and
Contributors
.
All
rights
reserved
.
*
*
Redistribution
and
use
in
source
and
binary
forms
,
with
or
without
*
modification
,
are
permitted
provided
that
the
following
conditions
are
met
:
...
...
@@ -39,6 +39,7 @@
.
weak
plat_disable_acp
.
weak
bl1_plat_prepare_exit
.
weak
plat_error_handler
.
weak
plat_panic_handler
#if !ENABLE_PLAT_COMPAT
.
globl
platform_get_core_pos
...
...
@@ -131,3 +132,12 @@ endfunc bl1_plat_prepare_exit
func
plat_error_handler
b
plat_error_handler
endfunc
plat_error_handler
/
*
-----------------------------------------------------
*
void
plat_panic_handler
(
void
)
__dead2
;
*
Endless
loop
by
default
.
*
-----------------------------------------------------
*/
func
plat_panic_handler
b
plat_panic_handler
endfunc
plat_panic_handler
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