platform: fu540: Provide a compile time option selective hart booting.

Currently, only hart 1 is enabled for fu540 platform to support U-boot.

Introduce a compile time FU540_ENABLED_HART_MASK option so that specific
harts can be selected for booting. As fu540 is a multicore, we should
boot all cores by default except hart 0.

Signed-off-by: Atish Patra <atish.patra@wdc.com>
This commit is contained in:
Atish Patra 2019-01-24 14:48:45 -08:00 committed by Anup Patel
parent bd98d77298
commit d70f8aab45
2 changed files with 13 additions and 2 deletions

View file

@ -8,3 +8,6 @@
#
platform-objs-y += platform.o
ifdef FU540_ENABLED_HART_MASK
platform-genflags-y += -DFU540_ENABLED_HART_MASK=$(FU540_ENABLED_HART_MASK)
endif

View file

@ -34,7 +34,15 @@
#define FU540_UART1_ADDR 0x10011000
#define FU540_UART_BAUDRATE 115200
#define FU540_HARITD_ENABLED 1
/**
* The FU540 SoC has 5 HARTs but HART ID 0 doesn't have S mode. enable only
* HARTs 1 to 4.
*/
#ifndef FU540_ENABLED_HART_MASK
#define FU540_ENABLED_HART_MASK (1 << 1 | 1 << 2 | 1 << 3 | 1 << 4)
#endif
#define FU540_HARITD_DISABLED ~(FU540_ENABLED_HART_MASK)
/* PRCI clock related macros */
//TODO: Do we need a separate driver for this ?
@ -183,7 +191,7 @@ struct sbi_platform platform = {
.features = SBI_PLATFORM_DEFAULT_FEATURES,
.hart_count = FU540_HART_COUNT,
.hart_stack_size = FU540_HART_STACK_SIZE,
.disabled_hart_mask = ~(1 << FU540_HARITD_ENABLED),
.disabled_hart_mask = FU540_HARITD_DISABLED,
.pmp_region_count = fu540_pmp_region_count,
.pmp_region_info = fu540_pmp_region_info,
.final_init = fu540_final_init,