forked from Mirrors/opensbi
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 <samuel.holland@sifive.com> Reviewed-by: Anup Patel <anup@brainfault.org>
This commit is contained in:

committed by
Anup Patel

parent
757f7acafd
commit
949c83a799
@@ -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;
|
||||
|
||||
|
@@ -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;
|
||||
|
@@ -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;
|
||||
|
||||
|
Reference in New Issue
Block a user