diff options
author | Liu Yibin <yibin_liu@c-sky.com> | 2020-03-27 06:31:48 +0300 |
---|---|---|
committer | Anup Patel <anup@brainfault.org> | 2020-03-28 11:11:03 +0300 |
commit | e5a7f556ce22984128bed0a336551a968c818450 (patch) | |
tree | 36abb2e127ce4d9680f934bf9169f5bdb23bddcb /platform/thead | |
parent | 648507a86791d4558e96c9876e757cee2c30b203 (diff) | |
download | opensbi-e5a7f556ce22984128bed0a336551a968c818450.tar.xz |
platform: thead/c910: Use HSM extension to boot secondary cores
Remove custom vendor extension and use HSM extension
to boot secondary cores
Signed-off-by: Liu Yibin <yibin_liu@c-sky.com>
Reviewed-by: Anup Patel <anup.patel@wdc.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Diffstat (limited to 'platform/thead')
-rw-r--r-- | platform/thead/c910/platform.c | 20 | ||||
-rw-r--r-- | platform/thead/c910/platform.h | 5 |
2 files changed, 5 insertions, 20 deletions
diff --git a/platform/thead/c910/platform.c b/platform/thead/c910/platform.c index 9d98a31..adb1a20 100644 --- a/platform/thead/c910/platform.c +++ b/platform/thead/c910/platform.c @@ -106,25 +106,11 @@ static int c910_system_shutdown(u32 type) return 0; } -void sbi_boot_other_core(int hartid) +int c910_hart_start(u32 hartid, ulong saddr) { - csr_write(CSR_MRVBR, FW_TEXT_START); + csr_write(CSR_MRVBR, saddr); csr_write(CSR_MRMR, csr_read(CSR_MRMR) | (1 << hartid)); -} -static int c910_vendor_ext_provider(long extid, long funcid, - unsigned long *args, - unsigned long *out_value, - struct sbi_trap_info *out_trap) -{ - switch (extid) { - case SBI_EXT_VENDOR_C910_BOOT_OTHER_CORE: - sbi_boot_other_core((int)args[0]); - break; - default: - sbi_printf("Unsupported private sbi call: %ld\n", extid); - asm volatile ("ebreak"); - } return 0; } @@ -143,7 +129,7 @@ const struct sbi_platform_operations platform_ops = { .system_shutdown = c910_system_shutdown, - .vendor_ext_provider = c910_vendor_ext_provider, + .hart_start = c910_hart_start, }; const struct sbi_platform platform = { diff --git a/platform/thead/c910/platform.h b/platform/thead/c910/platform.h index 5e74128..0faf2af 100644 --- a/platform/thead/c910/platform.h +++ b/platform/thead/c910/platform.h @@ -10,7 +10,8 @@ #define SBI_THEAD_FEATURES \ (SBI_PLATFORM_HAS_SCOUNTEREN | \ SBI_PLATFORM_HAS_MCOUNTEREN | \ - SBI_PLATFORM_HAS_MFAULTS_DELEGATION) + SBI_PLATFORM_HAS_MFAULTS_DELEGATION | \ + SBI_PLATFORM_HAS_HART_SECONDARY_BOOT) #define CSR_MCOR 0x7c2 #define CSR_MHCR 0x7c1 @@ -21,8 +22,6 @@ #define CSR_MRMR 0x7c6 #define CSR_MRVBR 0x7c7 -#define SBI_EXT_VENDOR_C910_BOOT_OTHER_CORE 0x09000003 - #define C910_PLIC_CLINT_OFFSET 0x04000000 /* 64M */ #define C910_PLIC_DELEG_OFFSET 0x001ffffc #define C910_PLIC_DELEG_ENABLE 0x1 |