mirror of
https://github.com/Fishwaldo/opensbi.git
synced 2025-03-15 19:31:32 +00:00
lib: utils: Fix sbi_hartid_to_scratch() usage in ACLINT drivers
The cold_init() functions of ACLINT drivers should skip the HART if sbi_hartid_to_scratch() returns NULL because we might be dealing with a HART that is disabled in the device tree. Signed-off-by: Anup Patel <apatel@ventanamicro.com> Reviewed-by: Xiang W <wxjstz@126.com>
This commit is contained in:
parent
7828eebaaa
commit
c6a35733b7
2 changed files with 12 additions and 2 deletions
|
@ -101,8 +101,13 @@ int aclint_mswi_cold_init(struct aclint_mswi_data *mswi)
|
|||
/* Update MSWI pointer in scratch space */
|
||||
for (i = 0; i < mswi->hart_count; i++) {
|
||||
scratch = sbi_hartid_to_scratch(mswi->first_hartid + i);
|
||||
/*
|
||||
* We don't need to fail if scratch pointer is not available
|
||||
* because we might be dealing with hartid of a HART disabled
|
||||
* in the device tree.
|
||||
*/
|
||||
if (!scratch)
|
||||
return SBI_ENOENT;
|
||||
continue;
|
||||
mswi_set_hart_data_ptr(scratch, mswi);
|
||||
}
|
||||
|
||||
|
|
|
@ -219,8 +219,13 @@ int aclint_mtimer_cold_init(struct aclint_mtimer_data *mt,
|
|||
/* Update MTIMER pointer in scratch space */
|
||||
for (i = 0; i < mt->hart_count; i++) {
|
||||
scratch = sbi_hartid_to_scratch(mt->first_hartid + i);
|
||||
/*
|
||||
* We don't need to fail if scratch pointer is not available
|
||||
* because we might be dealing with hartid of a HART disabled
|
||||
* in the device tree.
|
||||
*/
|
||||
if (!scratch)
|
||||
return SBI_ENOENT;
|
||||
continue;
|
||||
mtimer_set_hart_data_ptr(scratch, mt);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue