From 3e14df6f63303adb134d525b373ec7f08c1b1dc6 Mon Sep 17 00:00:00 2001 From: Manish V Badarkhe Date: Tue, 21 Feb 2023 11:13:34 +0000 Subject: [PATCH] fix(bl31): avoid clearing of argument registers in RESET_TO_BL31 case It was assumed that BL31 is the first bootloader to run so there's no argument to relay from a previous bootloader in RESET_TO_BL31 case, however this is not true for every platform with a non-TF-A bootloader that might get executed before BL31 while compiling in RESET_TO_BL31 feature. Thus, by avoiding zeroing registers, the arguments passed from the previous bootloader to BL31 are preserved. Change-Id: I7bb66a10d1fd551ba3fd59a7a38ab5bde3197f72 Signed-off-by: Manish V Badarkhe --- bl31/aarch64/bl31_entrypoint.S | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/bl31/aarch64/bl31_entrypoint.S b/bl31/aarch64/bl31_entrypoint.S index ed058648f..dfb14e924 100644 --- a/bl31/aarch64/bl31_entrypoint.S +++ b/bl31/aarch64/bl31_entrypoint.S @@ -66,17 +66,6 @@ func bl31_entrypoint _init_c_runtime=1 \ _exception_vectors=runtime_exceptions \ _pie_fixup_size=BL31_LIMIT - BL31_BASE - - /* --------------------------------------------------------------------- - * For RESET_TO_BL31 systems, BL31 is the first bootloader to run so - * there's no argument to relay from a previous bootloader. Zero the - * arguments passed to the platform layer to reflect that. - * --------------------------------------------------------------------- - */ - mov x20, 0 - mov x21, 0 - mov x22, 0 - mov x23, 0 #endif /* RESET_TO_BL31 */ /* -------------------------------------------------------------------- -- 2.39.5