diff options
| author | Samuel Holland <[email protected]> | 2025-02-20 10:42:30 -0800 |
|---|---|---|
| committer | Anup Patel <[email protected]> | 2025-03-24 17:57:20 +0530 |
| commit | 949c83a799e91cb57903932a84ec63fd14de5dc6 (patch) | |
| tree | 189090d89cf1be9bec3f277c7d50e267d8d4d415 /lib/utils | |
| parent | 757f7acafdd25e0ff71a444bbe9f670bc33a3b7f (diff) | |
lib: sbi: Use sbi_hart_count() and sbi_for_each_hartindex()
Simplify the code and improve consistency by using the new macros where
possible. sbi_hart_count() obsoletes sbi_scratch_last_hartindex().
Signed-off-by: Samuel Holland <[email protected]>
Reviewed-by: Anup Patel <[email protected]>
Diffstat (limited to 'lib/utils')
| -rw-r--r-- | lib/utils/irqchip/fdt_irqchip_plic.c | 5 | ||||
| -rw-r--r-- | lib/utils/irqchip/plic.c | 8 | ||||
| -rw-r--r-- | lib/utils/reset/fdt_reset_atcwdt200.c | 5 |
3 files changed, 6 insertions, 12 deletions
diff --git a/lib/utils/irqchip/fdt_irqchip_plic.c b/lib/utils/irqchip/fdt_irqchip_plic.c index 494358d8..65a9de15 100644 --- a/lib/utils/irqchip/fdt_irqchip_plic.c +++ b/lib/utils/irqchip/fdt_irqchip_plic.c @@ -12,7 +12,6 @@ #include <sbi/riscv_io.h> #include <sbi/sbi_error.h> #include <sbi/sbi_heap.h> -#include <sbi/sbi_platform.h> #include <sbi/sbi_scratch.h> #include <sbi_utils/fdt/fdt_helper.h> #include <sbi_utils/irqchip/fdt_irqchip.h> @@ -66,12 +65,10 @@ static int irqchip_plic_update_context_map(const void *fdt, int nodeoff, static int irqchip_plic_cold_init(const void *fdt, int nodeoff, const struct fdt_match *match) { - struct sbi_scratch *scratch = sbi_scratch_thishart_ptr(); - const struct sbi_platform *plat = sbi_platform_ptr(scratch); int rc; struct plic_data *pd; - pd = sbi_zalloc(PLIC_DATA_SIZE(plat->hart_count)); + pd = sbi_zalloc(PLIC_DATA_SIZE(sbi_hart_count())); if (!pd) return SBI_ENOMEM; diff --git a/lib/utils/irqchip/plic.c b/lib/utils/irqchip/plic.c index 8b2190f8..581a41bb 100644 --- a/lib/utils/irqchip/plic.c +++ b/lib/utils/irqchip/plic.c @@ -135,7 +135,7 @@ void plic_suspend(void) if (!data_word) return; - for (u32 h = 0; h <= sbi_scratch_last_hartindex(); h++) { + sbi_for_each_hartindex(h) { u32 context_id = plic->context_map[h][PLIC_S_CONTEXT]; if (context_id < 0) @@ -166,7 +166,7 @@ void plic_resume(void) if (!data_word) return; - for (u32 h = 0; h <= sbi_scratch_last_hartindex(); h++) { + sbi_for_each_hartindex(h) { u32 context_id = plic->context_map[h][PLIC_S_CONTEXT]; if (context_id < 0) @@ -236,7 +236,7 @@ int plic_cold_irqchip_init(struct plic_data *plic) if (plic->flags & PLIC_FLAG_ENABLE_PM) { unsigned long data_size = 0; - for (u32 i = 0; i <= sbi_scratch_last_hartindex(); i++) { + sbi_for_each_hartindex(i) { if (plic->context_map[i][PLIC_S_CONTEXT] < 0) continue; @@ -270,7 +270,7 @@ int plic_cold_irqchip_init(struct plic_data *plic) if (ret) return ret; - for (u32 i = 0; i <= sbi_scratch_last_hartindex(); i++) { + sbi_for_each_hartindex(i) { if (plic->context_map[i][PLIC_M_CONTEXT] < 0 && plic->context_map[i][PLIC_S_CONTEXT] < 0) continue; diff --git a/lib/utils/reset/fdt_reset_atcwdt200.c b/lib/utils/reset/fdt_reset_atcwdt200.c index 97ec7431..2304582a 100644 --- a/lib/utils/reset/fdt_reset_atcwdt200.c +++ b/lib/utils/reset/fdt_reset_atcwdt200.c @@ -12,7 +12,6 @@ #include <sbi/sbi_ecall_interface.h> #include <sbi/sbi_error.h> #include <sbi/sbi_hart.h> -#include <sbi/sbi_platform.h> #include <sbi/sbi_system.h> #include <sbi_utils/fdt/fdt_driver.h> #include <sbi_utils/fdt/fdt_helper.h> @@ -59,9 +58,7 @@ static int ae350_system_reset_check(u32 type, u32 reason) static void ae350_system_reset(u32 type, u32 reason) { - const struct sbi_platform *plat = sbi_platform_thishart_ptr(); - - for (int i = 0; i < sbi_platform_hart_count(plat); i++) + sbi_for_each_hartindex(i) if (smu_set_reset_vector(&smu, FLASH_BASE, i)) goto fail; |
