mirror of
https://github.com/riscv-software-src/opensbi.git
synced 2025-08-24 15:31:22 +01:00
lib: sbi: Update sbi_{entry,init}_count() to take a hart index
All callers already have the hartindex available, so this removes a hartid to hartindex conversion. Signed-off-by: Samuel Holland <samuel.holland@sifive.com> Reviewed-by: Anup Patel <anup@brainfault.org>
This commit is contained in:

committed by
Anup Patel

parent
9f86524b58
commit
3962be84d4
@@ -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);
|
||||
|
||||
|
@@ -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;
|
||||
|
@@ -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;
|
||||
|
||||
|
@@ -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);
|
||||
|
Reference in New Issue
Block a user