diff --git a/include/sbi/sbi_init.h b/include/sbi/sbi_init.h index 9640fee9..c9013ea4 100644 --- a/include/sbi/sbi_init.h +++ b/include/sbi/sbi_init.h @@ -16,9 +16,9 @@ struct sbi_scratch; void __noreturn sbi_init(struct sbi_scratch *scratch); -unsigned long sbi_entry_count(u32 hartid); +unsigned long sbi_entry_count(u32 hartindex); -unsigned long sbi_init_count(u32 hartid); +unsigned long sbi_init_count(u32 hartindex); void __noreturn sbi_exit(struct sbi_scratch *scratch); diff --git a/lib/sbi/sbi_hsm.c b/lib/sbi/sbi_hsm.c index e7e31ad5..5679819c 100644 --- a/lib/sbi/sbi_hsm.c +++ b/lib/sbi/sbi_hsm.c @@ -324,8 +324,8 @@ int sbi_hsm_hart_start(struct sbi_scratch *scratch, if (!hsm_start_ticket_acquire(hdata)) return SBI_EINVAL; - init_count = sbi_init_count(hartid); - entry_count = sbi_entry_count(hartid); + init_count = sbi_init_count(hartindex); + entry_count = sbi_entry_count(hartindex); rscratch->next_arg1 = arg1; rscratch->next_addr = saddr; diff --git a/lib/sbi/sbi_init.c b/lib/sbi/sbi_init.c index 7443010e..18d33088 100644 --- a/lib/sbi/sbi_init.c +++ b/lib/sbi/sbi_init.c @@ -551,7 +551,7 @@ void __noreturn sbi_init(struct sbi_scratch *scratch) init_warmboot(scratch, hartid); } -unsigned long sbi_entry_count(u32 hartid) +unsigned long sbi_entry_count(u32 hartindex) { struct sbi_scratch *scratch; unsigned long *entry_count; @@ -559,7 +559,7 @@ unsigned long sbi_entry_count(u32 hartid) if (!entry_count_offset) return 0; - scratch = sbi_hartid_to_scratch(hartid); + scratch = sbi_hartindex_to_scratch(hartindex); if (!scratch) return 0; @@ -568,7 +568,7 @@ unsigned long sbi_entry_count(u32 hartid) return *entry_count; } -unsigned long sbi_init_count(u32 hartid) +unsigned long sbi_init_count(u32 hartindex) { struct sbi_scratch *scratch; unsigned long *init_count; @@ -576,7 +576,7 @@ unsigned long sbi_init_count(u32 hartid) if (!init_count_offset) return 0; - scratch = sbi_hartid_to_scratch(hartid); + scratch = sbi_hartindex_to_scratch(hartindex); if (!scratch) return 0; diff --git a/platform/generic/andes/ae350.c b/platform/generic/andes/ae350.c index 3ad6c856..0da3ae51 100644 --- a/platform/generic/andes/ae350.c +++ b/platform/generic/andes/ae350.c @@ -27,13 +27,15 @@ extern void __ae350_disable_coherency(void); static int ae350_hart_start(u32 hartid, ulong saddr) { + u32 hartindex = sbi_hartid_to_hartindex(hartid); + /* * Don't send wakeup command when: * 1) boot-time * 2) the target hart is non-sleepable 25-series hart0 */ - if (!sbi_init_count(hartid) || (is_andes(25) && hartid == 0)) - return sbi_ipi_raw_send(sbi_hartid_to_hartindex(hartid)); + if (!sbi_init_count(hartindex) || (is_andes(25) && hartid == 0)) + return sbi_ipi_raw_send(hartindex); /* Write wakeup command to the sleep hart */ smu_set_command(&smu, WAKEUP_CMD, hartid);