Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
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
4dc74ca3
Commit
4dc74ca3
authored
5 years ago
by
Soby Mathew
Committed by
TrustedFirmware Code Review
5 years ago
Browse files
Options
Download
Plain Diff
Merge "arm: Shorten the Firmware Update (FWU) process" into integration
parents
4f979db3
37b70031
master
v2.5
v2.5-rc1
v2.5-rc0
v2.4
v2.4-rc2
v2.4-rc1
v2.4-rc0
v2.3
v2.3-rc2
v2.3-rc1
v2.3-rc0
v2.2
v2.2-rc2
v2.2-rc1
v2.2-rc0
arm_cca_v0.2
arm_cca_v0.1
No related merge requests found
Changes
20
Hide whitespace changes
Inline
Side-by-side
Showing
20 changed files
include/plat/arm/common/plat_arm.h
+1
-1
include/plat/arm/common/plat_arm.h
plat/arm/board/a5ds/a5ds_err.c
+17
-0
plat/arm/board/a5ds/a5ds_err.c
plat/arm/board/a5ds/platform.mk
+2
-0
plat/arm/board/a5ds/platform.mk
plat/arm/board/fvp/fvp_bl1_setup.c
+9
-0
plat/arm/board/fvp/fvp_bl1_setup.c
plat/arm/board/fvp/fvp_err.c
+48
-0
plat/arm/board/fvp/fvp_err.c
plat/arm/board/fvp/platform.mk
+4
-1
plat/arm/board/fvp/platform.mk
plat/arm/board/fvp_ve/fvp_ve_err.c
+17
-0
plat/arm/board/fvp_ve/fvp_ve_err.c
plat/arm/board/fvp_ve/platform.mk
+2
-0
plat/arm/board/fvp_ve/platform.mk
plat/arm/board/juno/juno_bl1_setup.c
+3
-0
plat/arm/board/juno/juno_bl1_setup.c
plat/arm/board/juno/juno_err.c
+4
-1
plat/arm/board/juno/juno_err.c
plat/arm/board/juno/platform.mk
+2
-1
plat/arm/board/juno/platform.mk
plat/arm/board/rde1edge/platform.mk
+3
-1
plat/arm/board/rde1edge/platform.mk
plat/arm/board/rde1edge/rde1edge_err.c
+17
-0
plat/arm/board/rde1edge/rde1edge_err.c
plat/arm/board/rdn1edge/platform.mk
+3
-1
plat/arm/board/rdn1edge/platform.mk
plat/arm/board/rdn1edge/rdn1edge_err.c
+17
-0
plat/arm/board/rdn1edge/rdn1edge_err.c
plat/arm/board/sgi575/platform.mk
+4
-2
plat/arm/board/sgi575/platform.mk
plat/arm/board/sgi575/sgi575_err.c
+17
-0
plat/arm/board/sgi575/sgi575_err.c
plat/arm/board/sgm775/platform.mk
+4
-1
plat/arm/board/sgm775/platform.mk
plat/arm/board/sgm775/sgm775_err.c
+17
-0
plat/arm/board/sgm775/sgm775_err.c
plat/arm/common/arm_err.c
+1
-42
plat/arm/common/arm_err.c
with
192 additions
and
51 deletions
+192
-51
include/plat/arm/common/plat_arm.h
View file @
4dc74ca3
...
...
@@ -252,7 +252,7 @@ void plat_arm_interconnect_enter_coherency(void);
void
plat_arm_interconnect_exit_coherency
(
void
);
void
plat_arm_program_trusted_mailbox
(
uintptr_t
address
);
int
plat_arm_bl1_fwu_needed
(
void
);
void
plat_arm_error_handler
(
int
err
);
__dead2
void
plat_arm_error_handler
(
int
err
);
#if ARM_PLAT_MT
unsigned
int
plat_arm_get_cpu_pe_count
(
u_register_t
mpidr
);
...
...
This diff is collapsed.
Click to expand it.
plat/arm/board/a5ds/a5ds_err.c
0 → 100644
View file @
4dc74ca3
/*
* Copyright (c) 2019, Arm Limited. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#include <plat/arm/common/plat_arm.h>
/*
* a5ds error handler
*/
void
__dead2
plat_arm_error_handler
(
int
err
)
{
while
(
1
)
{
wfi
();
}
}
This diff is collapsed.
Click to expand it.
plat/arm/board/a5ds/platform.mk
View file @
4dc74ca3
...
...
@@ -36,6 +36,7 @@ BL1_SOURCES += drivers/io/io_fip.c \
drivers/cfi/v2m/v2m_flash.c
\
plat/arm/common/arm_bl1_setup.c
\
plat/arm/common/arm_err.c
\
plat/arm/board/a5ds/a5ds_err.c
\
plat/arm/common/arm_io_storage.c
\
plat/arm/board/a5ds/
${ARCH}
/a5ds_helpers.S
\
plat/arm/board/a5ds/a5ds_bl1_setup.c
\
...
...
@@ -55,6 +56,7 @@ BL2_SOURCES += lib/aarch32/arm32_aeabi_divmod.c \
plat/arm/board/a5ds/a5ds_bl2_setup.c
\
plat/arm/common/arm_bl2_setup.c
\
plat/arm/common/arm_err.c
\
plat/arm/board/a5ds/a5ds_err.c
\
plat/arm/common/arm_io_storage.c
\
plat/arm/common/
${ARCH}
/arm_bl2_mem_params_desc.c
\
plat/arm/common/arm_image_load.c
\
...
...
This diff is collapsed.
Click to expand it.
plat/arm/board/fvp/fvp_bl1_setup.c
View file @
4dc74ca3
...
...
@@ -52,3 +52,12 @@ void bl1_platform_setup(void)
if
((
arm_config
.
flags
&
ARM_CONFIG_FVP_HAS_SMMUV3
)
!=
0U
)
smmuv3_security_init
(
PLAT_FVP_SMMUV3_BASE
);
}
__dead2
void
bl1_plat_fwu_done
(
void
*
client_cookie
,
void
*
reserved
)
{
/* Setup the watchdog to reset the system as soon as possible */
sp805_refresh
(
ARM_SP805_TWDG_BASE
,
1U
);
while
(
1
)
wfi
();
}
This diff is collapsed.
Click to expand it.
plat/arm/board/fvp/fvp_err.c
0 → 100644
View file @
4dc74ca3
/*
* Copyright (c) 2019, Arm Limited. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#include <errno.h>
#include <common/debug.h>
#include <drivers/arm/sp805.h>
#include <drivers/cfi/v2m_flash.h>
#include <plat/arm/common/plat_arm.h>
#include <plat/common/platform.h>
#include <platform_def.h>
/*
* FVP error handler
*/
__dead2
void
plat_arm_error_handler
(
int
err
)
{
int
ret
;
switch
(
err
)
{
case
-
ENOENT
:
case
-
EAUTH
:
/* Image load or authentication error. Erase the ToC */
INFO
(
"Erasing FIP ToC from flash...
\n
"
);
(
void
)
nor_unlock
(
PLAT_ARM_FIP_BASE
);
ret
=
nor_word_program
(
PLAT_ARM_FIP_BASE
,
0
);
if
(
ret
!=
0
)
{
ERROR
(
"Cannot erase ToC
\n
"
);
}
else
{
INFO
(
"Done
\n
"
);
}
break
;
default:
/* Unexpected error */
break
;
}
(
void
)
console_flush
();
/* Setup the watchdog to reset the system as soon as possible */
sp805_refresh
(
ARM_SP805_TWDG_BASE
,
1U
);
for
(;;)
wfi
();
}
This diff is collapsed.
Click to expand it.
plat/arm/board/fvp/platform.mk
View file @
4dc74ca3
...
...
@@ -132,17 +132,20 @@ BL1_SOURCES += drivers/arm/smmu/smmu_v3.c \
lib/semihosting/
${ARCH}
/semihosting_call.S
\
plat/arm/board/fvp/
${ARCH}
/fvp_helpers.S
\
plat/arm/board/fvp/fvp_bl1_setup.c
\
plat/arm/board/fvp/fvp_err.c
\
plat/arm/board/fvp/fvp_io_storage.c
\
plat/arm/board/fvp/fvp_trusted_boot.c
\
${FVP_CPU_LIBS}
\
${FVP_INTERCONNECT_SOURCES}
BL2_SOURCES
+=
drivers/io/io_semihosting.c
\
BL2_SOURCES
+=
drivers/arm/sp805/sp805.c
\
drivers/io/io_semihosting.c
\
lib/utils/mem_region.c
\
lib/semihosting/semihosting.c
\
lib/semihosting/
${ARCH}
/semihosting_call.S
\
plat/arm/board/fvp/fvp_bl2_setup.c
\
plat/arm/board/fvp/fvp_err.c
\
plat/arm/board/fvp/fvp_io_storage.c
\
plat/arm/board/fvp/fvp_trusted_boot.c
\
plat/arm/common/arm_nor_psci_mem_protect.c
\
...
...
This diff is collapsed.
Click to expand it.
plat/arm/board/fvp_ve/fvp_ve_err.c
0 → 100644
View file @
4dc74ca3
/*
* Copyright (c) 2019, Arm Limited. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#include <plat/arm/common/plat_arm.h>
/*
* FVP VE error handler
*/
void
__dead2
plat_arm_error_handler
(
int
err
)
{
while
(
1
)
{
wfi
();
}
}
This diff is collapsed.
Click to expand it.
plat/arm/board/fvp_ve/platform.mk
View file @
4dc74ca3
...
...
@@ -40,6 +40,7 @@ BL1_SOURCES += drivers/arm/sp805/sp805.c \
drivers/io/io_storage.c
\
plat/arm/common/arm_bl1_setup.c
\
plat/arm/common/arm_err.c
\
plat/arm/board/fvp_ve/fvp_ve_err.c
\
plat/arm/common/arm_io_storage.c
\
drivers/cfi/v2m/v2m_flash.c
\
plat/arm/board/fvp_ve/
${ARCH}
/fvp_ve_helpers.S
\
...
...
@@ -60,6 +61,7 @@ BL2_SOURCES += plat/arm/board/fvp_ve/fvp_ve_bl2_setup.c \
drivers/io/io_storage.c
\
plat/arm/common/arm_bl2_setup.c
\
plat/arm/common/arm_err.c
\
plat/arm/board/fvp_ve/fvp_ve_err.c
\
plat/arm/common/arm_io_storage.c
\
plat/arm/common/
${ARCH}
/arm_bl2_mem_params_desc.c
\
plat/arm/common/arm_image_load.c
\
...
...
This diff is collapsed.
Click to expand it.
plat/arm/board/juno/juno_bl1_setup.c
View file @
4dc74ca3
...
...
@@ -98,6 +98,9 @@ __dead2 void bl1_plat_fwu_done(void *client_cookie, void *reserved)
/* Clear the NV flags register. */
*
nv_flags_clr
=
*
nv_flags_ptr
;
/* Setup the watchdog to reset the system as soon as possible */
sp805_refresh
(
ARM_SP805_TWDG_BASE
,
1U
);
while
(
1
)
wfi
();
}
...
...
This diff is collapsed.
Click to expand it.
plat/arm/board/juno/juno_err.c
View file @
4dc74ca3
...
...
@@ -7,6 +7,7 @@
#include <errno.h>
#include <arch_helpers.h>
#include <drivers/arm/sp805.h>
#include <plat/arm/common/plat_arm.h>
#include <plat/common/platform.h>
#include <platform_def.h>
...
...
@@ -21,7 +22,9 @@ void __dead2 plat_arm_error_handler(int err)
/* Propagate the err code in the NV-flags register */
*
flags_ptr
=
err
;
/* Loop until the watchdog resets the system */
/* Setup the watchdog to reset the system as soon as possible */
sp805_refresh
(
ARM_SP805_TWDG_BASE
,
1U
);
for
(;;)
wfi
();
}
This diff is collapsed.
Click to expand it.
plat/arm/board/juno/platform.mk
View file @
4dc74ca3
...
...
@@ -66,7 +66,8 @@ BL1_SOURCES += lib/cpus/aarch64/cortex_a53.S \
${JUNO_INTERCONNECT_SOURCES}
\
${JUNO_SECURITY_SOURCES}
BL2_SOURCES
+=
lib/utils/mem_region.c
\
BL2_SOURCES
+=
drivers/arm/sp805/sp805.c
\
lib/utils/mem_region.c
\
plat/arm/board/juno/juno_err.c
\
plat/arm/board/juno/juno_bl2_setup.c
\
plat/arm/common/arm_nor_psci_mem_protect.c
\
...
...
This diff is collapsed.
Click to expand it.
plat/arm/board/rde1edge/platform.mk
View file @
4dc74ca3
...
...
@@ -12,10 +12,12 @@ PLAT_INCLUDES += -I${RDE1EDGE_BASE}/include/
SGI_CPU_SOURCES
:=
lib/cpus/aarch64/neoverse_e1.S
BL1_SOURCES
+=
${SGI_CPU_SOURCES}
BL1_SOURCES
+=
${SGI_CPU_SOURCES}
\
${RDE1EDGE_BASE}
/rde1edge_err.c
BL2_SOURCES
+=
${RDE1EDGE_BASE}
/rde1edge_plat.c
\
${RDE1EDGE_BASE}
/rde1edge_security.c
\
${RDE1EDGE_BASE}
/rde1edge_err.c
\
drivers/arm/tzc/tzc_dmc620.c
\
lib/utils/mem_region.c
\
plat/arm/common/arm_nor_psci_mem_protect.c
...
...
This diff is collapsed.
Click to expand it.
plat/arm/board/rde1edge/rde1edge_err.c
0 → 100644
View file @
4dc74ca3
/*
* Copyright (c) 2019, Arm Limited. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#include <plat/arm/common/plat_arm.h>
/*
* rde1edge error handler
*/
void
__dead2
plat_arm_error_handler
(
int
err
)
{
while
(
1
)
{
wfi
();
}
}
This diff is collapsed.
Click to expand it.
plat/arm/board/rdn1edge/platform.mk
View file @
4dc74ca3
...
...
@@ -12,10 +12,12 @@ PLAT_INCLUDES += -I${RDN1EDGE_BASE}/include/
SGI_CPU_SOURCES
:=
lib/cpus/aarch64/neoverse_n1.S
BL1_SOURCES
+=
${SGI_CPU_SOURCES}
BL1_SOURCES
+=
${SGI_CPU_SOURCES}
\
${RDN1EDGE_BASE}
/rdn1edge_err.c
BL2_SOURCES
+=
${RDN1EDGE_BASE}
/rdn1edge_plat.c
\
${RDN1EDGE_BASE}
/rdn1edge_security.c
\
${RDN1EDGE_BASE}
/rdn1edge_err.c
\
drivers/arm/tzc/tzc_dmc620.c
\
lib/utils/mem_region.c
\
plat/arm/common/arm_nor_psci_mem_protect.c
...
...
This diff is collapsed.
Click to expand it.
plat/arm/board/rdn1edge/rdn1edge_err.c
0 → 100644
View file @
4dc74ca3
/*
* Copyright (c) 2019, Arm Limited. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#include <plat/arm/common/plat_arm.h>
/*
* rdn1edge error handler
*/
void
__dead2
plat_arm_error_handler
(
int
err
)
{
while
(
1
)
{
wfi
();
}
}
This diff is collapsed.
Click to expand it.
plat/arm/board/sgi575/platform.mk
View file @
4dc74ca3
#
# Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
# Copyright (c) 2018
-2019
, ARM Limited and Contributors. All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause
#
...
...
@@ -12,10 +12,12 @@ PLAT_INCLUDES += -I${SGI575_BASE}/include/
SGI_CPU_SOURCES
:=
lib/cpus/aarch64/cortex_a75.S
BL1_SOURCES
+=
${SGI_CPU_SOURCES}
BL1_SOURCES
+=
${SGI_CPU_SOURCES}
\
${SGI575_BASE}
/sgi575_err.c
BL2_SOURCES
+=
${SGI575_BASE}
/sgi575_plat.c
\
${SGI575_BASE}
/sgi575_security.c
\
${SGI575_BASE}
/sgi575_err.c
\
drivers/arm/tzc/tzc_dmc620.c
\
lib/utils/mem_region.c
\
plat/arm/common/arm_nor_psci_mem_protect.c
...
...
This diff is collapsed.
Click to expand it.
plat/arm/board/sgi575/sgi575_err.c
0 → 100644
View file @
4dc74ca3
/*
* Copyright (c) 2019, Arm Limited. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#include <plat/arm/common/plat_arm.h>
/*
* sgi575 error handler
*/
void
__dead2
plat_arm_error_handler
(
int
err
)
{
while
(
1
)
{
wfi
();
}
}
This diff is collapsed.
Click to expand it.
plat/arm/board/sgm775/platform.mk
View file @
4dc74ca3
#
# Copyright (c) 2018, ARM Limited and Contributors. All rights reserved.
# Copyright (c) 2018
-2019
, ARM Limited and Contributors. All rights reserved.
#
# SPDX-License-Identifier: BSD-3-Clause
#
...
...
@@ -12,7 +12,10 @@ FDT_SOURCES += ${SGM775_BASE}/fdts/sgm775_tb_fw_config.dts
PLAT_INCLUDES
+=
-I
${SGM775_BASE}
/include/
BL1_SOURCES
+=
${SGM775_BASE}
/sgm775_err.c
BL2_SOURCES
+=
lib/utils/mem_region.c
\
${SGM775_BASE}
/sgm775_err.c
\
plat/arm/common/arm_nor_psci_mem_protect.c
BL31_SOURCES
+=
drivers/cfi/v2m/v2m_flash.c
\
...
...
This diff is collapsed.
Click to expand it.
plat/arm/board/sgm775/sgm775_err.c
0 → 100644
View file @
4dc74ca3
/*
* Copyright (c) 2019, Arm Limited. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#include <plat/arm/common/plat_arm.h>
/*
* sgm775 error handler
*/
void
__dead2
plat_arm_error_handler
(
int
err
)
{
while
(
1
)
{
wfi
();
}
}
This diff is collapsed.
Click to expand it.
plat/arm/common/arm_err.c
View file @
4dc74ca3
/*
* Copyright (c) 2015-201
8
, ARM Limited and Contributors. All rights reserved.
* Copyright (c) 2015-201
9
, ARM Limited and Contributors. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
#include <errno.h>
#include <stdint.h>
#include <platform_def.h>
#include <arch_helpers.h>
#include <common/debug.h>
#include <drivers/cfi/v2m_flash.h>
#include <drivers/console.h>
#include <plat/arm/common/plat_arm.h>
#include <plat/common/platform.h>
#pragma weak plat_arm_error_handler
/*
* ARM common implementation for error handler
*/
void
__dead2
plat_arm_error_handler
(
int
err
)
{
int
ret
;
switch
(
err
)
{
case
-
ENOENT
:
case
-
EAUTH
:
/* Image load or authentication error. Erase the ToC */
INFO
(
"Erasing FIP ToC from flash...
\n
"
);
(
void
)
nor_unlock
(
PLAT_ARM_FIP_BASE
);
ret
=
nor_word_program
(
PLAT_ARM_FIP_BASE
,
0
);
if
(
ret
!=
0
)
{
ERROR
(
"Cannot erase ToC
\n
"
);
}
else
{
INFO
(
"Done
\n
"
);
}
break
;
default:
/* Unexpected error */
break
;
}
(
void
)
console_flush
();
/* Loop until the watchdog resets the system */
for
(;;)
wfi
();
}
void
__dead2
plat_error_handler
(
int
err
)
{
plat_arm_error_handler
(
err
);
...
...
This diff is collapsed.
Click to expand it.
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
Menu
Projects
Groups
Snippets
Help