u-boot-brain/common
Lukas Auer 0e1233ce90 spl: opensbi: wait for ack from secondary harts before entering OpenSBI
At the start, OpenSBI relocates itself to its link address. If the link
address ranges of U-Boot SPL and OpenSBI overlap, the relocation can
lead to code corruption if a hart is still running U-Boot SPL during
relocation. To avoid this problem, the main hart is specified as the
preferred boot hart to perform the relocation. This fixes the code
corruption problems based on the assumption that since the main hart
schedules the secondary harts to enter OpenSBI, it will be the last to
enter OpenSBI. However it was reported that this assumption is not
always correct.

To make sure the assumption always holds true, wait for all secondary
harts to acknowledge the call-function request before entering OpenSBI
on the main hart.

Reported-by: Rick Chen <rick@andestech.com>
Signed-off-by: Lukas Auer <lukas.auer@aisec.fraunhofer.de>
Reviewed-by: Rick Chen <rick@andestech.com>
Tested-by: Rick Chen <rick@andestech.com>
Reviewed-by: Anup Patel <anup.patel@wdc.com>
2019-12-10 08:23:10 +08:00
..
eeprom SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
init spl: implement stack usage check 2019-08-11 16:43:41 -04:00
spl spl: opensbi: wait for ack from secondary harts before entering OpenSBI 2019-12-10 08:23:10 +08:00
Kconfig mtd: rename CONFIG_NAND -> CONFIG_MTD_RAW_NAND 2019-12-03 23:04:10 -05:00
Makefile common: Implement A/B metadata 2019-07-24 13:16:29 -04:00
android_ab.c crc32: Use the crc.h header for crc functions 2019-12-02 18:23:08 -05:00
autoboot.c common: Move command functions out of common.h 2019-12-02 18:25:02 -05:00
avb_verify.c common: Move ARM cache operations out of common.h 2019-12-02 18:24:58 -05:00
bedbug.c Consolidate bool type 2013-04-01 16:33:52 -04:00
bloblist.c crc32: Use the crc.h header for crc functions 2019-12-02 18:23:08 -05:00
board_f.c common: Move board_get_usable_ram_top() out of common.h 2019-12-02 18:25:04 -05:00
board_info.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
board_r.c common: Move enable/disable_interrupts out of common.h 2019-12-02 18:25:01 -05:00
boot_fit.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
bootm.c common: Move enable/disable_interrupts out of common.h 2019-12-02 18:25:01 -05:00
bootm_os.c bootm: vxworks: Support Linux compatible standard DTB for ARM and PPC 2019-12-03 08:43:23 -05:00
bootretry.c common: Move get_ticks() function out of common.h 2019-12-02 18:23:13 -05:00
bootstage.c common: Move sorting functions to their own header file 2019-12-02 18:23:08 -05:00
bouncebuf.c common: Move ARM cache operations out of common.h 2019-12-02 18:24:58 -05:00
cli.c common: Move command functions out of common.h 2019-12-02 18:25:02 -05:00
cli_hush.c hush: re-sequence includes 2019-11-07 18:01:13 -05:00
cli_readline.c common: Move get_ticks() function out of common.h 2019-12-02 18:23:13 -05:00
cli_simple.c common: Move command functions out of common.h 2019-12-02 18:25:02 -05:00
command.c common: command: Fix manual relocation for repeatable command 2019-10-24 13:37:03 +02:00
common_fit.c common: Compile error with CONFIG_MULTI_DTB_FIT and not SPL 2018-11-09 10:44:50 -05:00
console.c common/console.c: Fix unused warning with console_doenv() 2019-11-06 22:54:28 -05:00
cros_ec.c sandbox: cros_ec: exynos: Drop use of cros_ec_get_error() 2018-11-20 19:14:22 -07:00
ddr_spd.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
dfu.c usb: gadget: Do not call board_usb_xxx() directly in USB gadget drivers 2018-12-07 16:31:45 +01:00
dlmalloc.c dlmalloc: calloc: fix zeroing early allocations 2019-11-07 18:01:13 -05:00
dlmalloc.src Consolidate bool type 2013-04-01 16:33:52 -04:00
edid.c edid: fix edid_get_timing_validate() mode_valid lookup 2019-07-29 19:14:58 +02:00
exports.c board/ls2085rdb: Export functions for standalone AQ FW load apps 2015-07-20 11:44:37 -07:00
fdt_support.c common: fdt_support: add support for setting usable memory 2019-12-06 12:09:25 +01:00
flash.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
hash.c crc32: Use the crc.h header for crc functions 2019-12-02 18:23:08 -05:00
hwconfig.c env: Move env_set() to env.h 2019-08-11 16:43:41 -04:00
image-android-dt.c common: image-android-dt: Fix logic in print fdt info routine 2019-08-07 15:31:05 -04:00
image-android.c image: android: Support boot image v1 and v2 2019-10-15 09:56:04 -04:00
image-fdt.c image: fdt: copy possible optee nodes to a loaded devicetree 2019-11-14 07:09:34 -06:00
image-fit.c crc32: Use the crc.h header for crc functions 2019-12-02 18:23:08 -05:00
image-sig.c common: image-sig.c: Add manual relocation 2019-10-24 13:37:02 +02:00
image.c common: Move ARM cache operations out of common.h 2019-12-02 18:24:58 -05:00
iomux.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
iotrace.c common: Move get_ticks() function out of common.h 2019-12-02 18:23:13 -05:00
kallsyms.c Add support for Linux-like kallsysms 2009-06-12 20:45:48 +02:00
kgdb.c Fix spelling of "occurred". 2016-05-02 18:37:09 -04:00
kgdb_stubs.c common: Move some cache and MMU functions out of common.h 2019-12-02 18:23:55 -05:00
lcd.c common: Move ARM cache operations out of common.h 2019-12-02 18:24:58 -05:00
lcd_console.c common: Move serial functions out of common.h 2019-12-02 18:23:11 -05:00
lcd_console_rotation.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
lcd_simplefb.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
log.c log: Add a Kconfig option to set the default log level 2019-02-20 15:21:44 +08:00
log_console.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
lynxkdi.c Remove unnecessary instances of DECLARE_GLOBAL_DATA_PTR 2018-04-27 14:54:48 -04:00
main.c common: Move command functions out of common.h 2019-12-02 18:25:02 -05:00
malloc_simple.c malloc_simple: Add logging of allocations 2018-11-29 09:30:05 -07:00
memsize.c common/memsize.c: Increase save array for supporting memory size > 4GB 2018-07-10 16:55:59 -04:00
menu.c menu: don't bother going interactive with just one menu item 2019-07-24 13:16:29 -04:00
miiphyutil.c miiphy: Add function to retrieve MDIO bus list head 2018-10-24 14:45:36 -05:00
s_record.c SPDX: Convert all of our single license tags to Linux Kernel style 2018-05-07 09:34:12 -04:00
splash.c splash: fix build breakage with newer llvm-7 2019-10-31 09:10:34 +01:00
splash_source.c common: Move command functions out of common.h 2019-12-02 18:25:02 -05:00
stdio.c splash: display splash in DM_VIDEO configurations 2019-06-04 23:20:43 +02:00
system_map.c Add support for Linux-like kallsysms 2009-06-12 20:45:48 +02:00
update.c common: Move ARM cache operations out of common.h 2019-12-02 18:24:58 -05:00
usb.c usb: Add nonblock argument to submit_int_msg 2019-09-11 10:11:29 +02:00
usb_hub.c env: Move env_get() to env.h 2019-08-11 16:43:41 -04:00
usb_kbd.c usb: kbd: move USB_KBD_BOOT_REPORT_SIZE to usb.h 2019-11-25 13:28:53 +01:00
usb_storage.c usb: storage: Only clear READY flag on error 2019-10-31 12:13:40 +01:00
xyzModem.c spl: Allow tiny printf() to be controlled in SPL and TPL 2019-10-08 13:57:45 +08:00