-
Notifications
You must be signed in to change notification settings - Fork 44
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Allow custom boot flow for PolarFire boards
To use prominent open-source bootloaders (such as U-Boot SPL, Coreboot, and EDK2) on PolarFire boards, we need a mechanism to boot all HARTs (both E51 and U54s) at same entry point in M-mode. This patch extends HSS boot flow to support booting all HARTs (both E51 and U54s) in M-mode at commong entry point. We call this mechanism as custom boot flow and it is enabled via kconfig option. The first image in HSS payload will be loaded by default and the entry point of the first image owner HART will be used as common entry point. Signed-off-by: Anup Patel <anup.patel@wdc.com>
- Loading branch information
Showing
6 changed files
with
314 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,103 @@ | ||
# Generated by Kconfiglib (https://github.com/ulfalizer/Kconfiglib) | ||
|
||
# | ||
# Services | ||
# | ||
CONFIG_SERVICE_BOOT=y | ||
|
||
# | ||
# Boot Service | ||
# | ||
CONFIG_SERVICE_BOOT_SETS_SUPPORT=y | ||
CONFIG_SERVICE_BOOT_DDR_TARGET_ADDR=0xB0000000 | ||
# CONFIG_SERVICE_BOOT_USE_PAYLOAD is not set | ||
CONFIG_SERVICE_BOOT_CUSTOM_FLOW=y | ||
CONFIG_SERVICE_BOOT_MMC_USE_GPT=y | ||
CONFIG_SERVICE_DDR=y | ||
CONFIG_SERVICE_GOTO=y | ||
# CONFIG_SERVICE_CRYPTO is not set | ||
# CONFIG_SERVICE_FLASHFREEZE is not set | ||
# CONFIG_SERVICE_POWERMODE is not set | ||
CONFIG_SERVICE_MMC=y | ||
|
||
# | ||
# MMC Mode | ||
# | ||
CONFIG_SERVICE_MMC_MODE_EMMC=y | ||
# CONFIG_SERVICE_MMC_MODE_SDCARD is not set | ||
|
||
# | ||
# MMC Voltage | ||
# | ||
# CONFIG_SERVICE_MMC_BUS_VOLTAGE_1V8 is not set | ||
CONFIG_SERVICE_MMC_BUS_VOLTAGE_3V3=y | ||
# CONFIG_SERVICE_QSPI is not set | ||
CONFIG_SERVICE_SGDMA=y | ||
# CONFIG_SERVICE_SPI is not set | ||
# CONFIG_SERVICE_UART is not set | ||
# CONFIG_SERVICE_WDOG is not set | ||
CONFIG_SERVICE_IPI_POLL=y | ||
CONFIG_SERVICE_OPENSBI=y | ||
# CONFIG_SERVICE_YMODEM is not set | ||
CONFIG_SERVICE_USBDMSC=y | ||
|
||
# | ||
# USB Device Mass Storage Class | ||
# | ||
CONFIG_SERVICE_USBDMSC_REGISTER=y | ||
CONFIG_SERVICE_TINYCLI=y | ||
|
||
# | ||
# Tiny Command Line Interface | ||
# | ||
CONFIG_SERVICE_TINYCLI_TIMEOUT=5 | ||
# CONFIG_SERVICE_TINYCLI_REGISTER is not set | ||
|
||
# | ||
# Compression | ||
# | ||
# CONFIG_COMPRESSION is not set | ||
|
||
# | ||
# General Configuration Options | ||
# | ||
CONFIG_OPENSBI=y | ||
|
||
# | ||
# OpenSBI | ||
# | ||
# CONFIG_PROVIDE_DTB is not set | ||
# CONFIG_SUPERLOOP_IN_U_MODE is not set | ||
|
||
# | ||
# Memory Options | ||
# | ||
CONFIG_MEMTEST=y | ||
CONFIG_IPI_MAX_NUM_QUEUE_MESSAGES=16 | ||
# CONFIG_IPI_FIXED_BASE is not set | ||
CONFIG_USE_PDMA=y | ||
# CONFIG_INITIALIZE_MEMORIES is not set | ||
|
||
# | ||
# Build Options | ||
# | ||
CONFIG_COLOR_OUTPUT=y | ||
CONFIG_USE_LOGO=y | ||
CONFIG_CC_STACKPROTECTOR_STRONG=y | ||
# CONFIG_CC_DUMP_STACKSIZE is not set | ||
# CONFIG_LD_RELAX is not set | ||
CONFIG_CC_USE_MAKEDEP=y | ||
CONFIG_CC_USE_GNU_BUILD_ID=y | ||
CONFIG_CC_HAS_INTTYPES=y | ||
CONFIG_DISPLAY_TOOL_VERSIONS=y | ||
|
||
# | ||
# Debug Options | ||
# | ||
CONFIG_DEBUG_LOG_STATE_TRANSITIONS=y | ||
# CONFIG_DEBUG_LOOP_TIMES is not set | ||
CONFIG_DEBUG_LOOP_TIMES_THRESHOLD=2500000 | ||
# CONFIG_DEBUG_IPI_STATS is not set | ||
# CONFIG_DEBUG_CHUNK_DOWNLOADS is not set | ||
# CONFIG_DEBUG_MSCGEN_IPI is not set | ||
# CONFIG_DEBUG_PROFILING_SUPPORT is not set |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,103 @@ | ||
# Generated by Kconfiglib (https://github.com/ulfalizer/Kconfiglib) | ||
|
||
# | ||
# Services | ||
# | ||
CONFIG_SERVICE_BOOT=y | ||
|
||
# | ||
# Boot Service | ||
# | ||
CONFIG_SERVICE_BOOT_SETS_SUPPORT=y | ||
CONFIG_SERVICE_BOOT_DDR_TARGET_ADDR=0xB0000000 | ||
# CONFIG_SERVICE_BOOT_USE_PAYLOAD is not set | ||
CONFIG_SERVICE_BOOT_CUSTOM_FLOW=y | ||
CONFIG_SERVICE_BOOT_MMC_USE_GPT=y | ||
CONFIG_SERVICE_DDR=y | ||
CONFIG_SERVICE_GOTO=y | ||
# CONFIG_SERVICE_CRYPTO is not set | ||
# CONFIG_SERVICE_FLASHFREEZE is not set | ||
# CONFIG_SERVICE_POWERMODE is not set | ||
CONFIG_SERVICE_MMC=y | ||
|
||
# | ||
# MMC Mode | ||
# | ||
# CONFIG_SERVICE_MMC_MODE_EMMC is not set | ||
CONFIG_SERVICE_MMC_MODE_SDCARD=y | ||
|
||
# | ||
# MMC Voltage | ||
# | ||
# CONFIG_SERVICE_MMC_BUS_VOLTAGE_1V8 is not set | ||
CONFIG_SERVICE_MMC_BUS_VOLTAGE_3V3=y | ||
# CONFIG_SERVICE_QSPI is not set | ||
CONFIG_SERVICE_SGDMA=y | ||
# CONFIG_SERVICE_SPI is not set | ||
# CONFIG_SERVICE_UART is not set | ||
# CONFIG_SERVICE_WDOG is not set | ||
CONFIG_SERVICE_IPI_POLL=y | ||
CONFIG_SERVICE_OPENSBI=y | ||
# CONFIG_SERVICE_YMODEM is not set | ||
CONFIG_SERVICE_USBDMSC=y | ||
|
||
# | ||
# USB Device Mass Storage Class | ||
# | ||
CONFIG_SERVICE_USBDMSC_REGISTER=y | ||
CONFIG_SERVICE_TINYCLI=y | ||
|
||
# | ||
# Tiny Command Line Interface | ||
# | ||
CONFIG_SERVICE_TINYCLI_TIMEOUT=5 | ||
# CONFIG_SERVICE_TINYCLI_REGISTER is not set | ||
|
||
# | ||
# Compression | ||
# | ||
# CONFIG_COMPRESSION is not set | ||
|
||
# | ||
# General Configuration Options | ||
# | ||
CONFIG_OPENSBI=y | ||
|
||
# | ||
# OpenSBI | ||
# | ||
# CONFIG_PROVIDE_DTB is not set | ||
# CONFIG_SUPERLOOP_IN_U_MODE is not set | ||
|
||
# | ||
# Memory Options | ||
# | ||
CONFIG_MEMTEST=y | ||
CONFIG_IPI_MAX_NUM_QUEUE_MESSAGES=16 | ||
# CONFIG_IPI_FIXED_BASE is not set | ||
CONFIG_USE_PDMA=y | ||
# CONFIG_INITIALIZE_MEMORIES is not set | ||
|
||
# | ||
# Build Options | ||
# | ||
CONFIG_COLOR_OUTPUT=y | ||
CONFIG_USE_LOGO=y | ||
CONFIG_CC_STACKPROTECTOR_STRONG=y | ||
# CONFIG_CC_DUMP_STACKSIZE is not set | ||
# CONFIG_LD_RELAX is not set | ||
CONFIG_CC_USE_MAKEDEP=y | ||
CONFIG_CC_USE_GNU_BUILD_ID=y | ||
CONFIG_CC_HAS_INTTYPES=y | ||
CONFIG_DISPLAY_TOOL_VERSIONS=y | ||
|
||
# | ||
# Debug Options | ||
# | ||
CONFIG_DEBUG_LOG_STATE_TRANSITIONS=y | ||
# CONFIG_DEBUG_LOOP_TIMES is not set | ||
CONFIG_DEBUG_LOOP_TIMES_THRESHOLD=2500000 | ||
# CONFIG_DEBUG_IPI_STATS is not set | ||
# CONFIG_DEBUG_CHUNK_DOWNLOADS is not set | ||
# CONFIG_DEBUG_MSCGEN_IPI is not set | ||
# CONFIG_DEBUG_PROFILING_SUPPORT is not set |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters