diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/sbi/sbi_ecall_legacy.c | 2 | ||||
-rw-r--r-- | lib/sbi/sbi_init.c | 8 | ||||
-rw-r--r-- | lib/sbi/sbi_system.c | 26 |
3 files changed, 9 insertions, 27 deletions
diff --git a/lib/sbi/sbi_ecall_legacy.c b/lib/sbi/sbi_ecall_legacy.c index 32183cb..36d6f17 100644 --- a/lib/sbi/sbi_ecall_legacy.c +++ b/lib/sbi/sbi_ecall_legacy.c @@ -102,7 +102,7 @@ static int sbi_ecall_legacy_handler(unsigned long extid, unsigned long funcid, } break; case SBI_EXT_0_1_SHUTDOWN: - sbi_system_shutdown(scratch, 0); + sbi_system_shutdown(0); break; default: ret = SBI_ENOTSUPP; diff --git a/lib/sbi/sbi_init.c b/lib/sbi/sbi_init.c index f448b79..b01bff1 100644 --- a/lib/sbi/sbi_init.c +++ b/lib/sbi/sbi_init.c @@ -160,7 +160,7 @@ static void __noreturn init_coldboot(struct sbi_scratch *scratch, u32 hartid) if (rc) sbi_hart_hang(); - rc = sbi_system_early_init(scratch, TRUE); + rc = sbi_platform_early_init(plat, TRUE); if (rc) sbi_hart_hang(); @@ -192,7 +192,7 @@ static void __noreturn init_coldboot(struct sbi_scratch *scratch, u32 hartid) if (rc) sbi_hart_hang(); - rc = sbi_system_final_init(scratch, TRUE); + rc = sbi_platform_final_init(plat, TRUE); if (rc) sbi_hart_hang(); @@ -224,7 +224,7 @@ static void __noreturn init_warmboot(struct sbi_scratch *scratch, u32 hartid) if (rc) sbi_hart_hang(); - rc = sbi_system_early_init(scratch, FALSE); + rc = sbi_platform_early_init(plat, FALSE); if (rc) sbi_hart_hang(); @@ -248,7 +248,7 @@ static void __noreturn init_warmboot(struct sbi_scratch *scratch, u32 hartid) if (rc) sbi_hart_hang(); - rc = sbi_system_final_init(scratch, FALSE); + rc = sbi_platform_final_init(plat, FALSE); if (rc) sbi_hart_hang(); diff --git a/lib/sbi/sbi_system.c b/lib/sbi/sbi_system.c index ffe0b41..5d4c7de 100644 --- a/lib/sbi/sbi_system.c +++ b/lib/sbi/sbi_system.c @@ -17,30 +17,11 @@ #include <sbi/sbi_ipi.h> #include <sbi/sbi_init.h> -int sbi_system_early_init(struct sbi_scratch *scratch, bool cold_boot) -{ - return sbi_platform_early_init(sbi_platform_ptr(scratch), cold_boot); -} - -int sbi_system_final_init(struct sbi_scratch *scratch, bool cold_boot) -{ - return sbi_platform_final_init(sbi_platform_ptr(scratch), cold_boot); -} - -void sbi_system_early_exit(struct sbi_scratch *scratch) -{ - sbi_platform_early_exit(sbi_platform_ptr(scratch)); -} - -void sbi_system_final_exit(struct sbi_scratch *scratch) -{ - sbi_platform_final_exit(sbi_platform_ptr(scratch)); -} - -void __noreturn sbi_system_reboot(struct sbi_scratch *scratch, u32 type) +void __noreturn sbi_system_reboot(u32 type) { ulong hbase = 0, hmask; u32 cur_hartid = current_hartid(); + struct sbi_scratch *scratch = sbi_scratch_thishart_ptr(); /* Send HALT IPI to every hart other than the current hart */ while (!sbi_hsm_hart_started_mask(hbase, &hmask)) { @@ -61,10 +42,11 @@ void __noreturn sbi_system_reboot(struct sbi_scratch *scratch, u32 type) sbi_exit(scratch); } -void __noreturn sbi_system_shutdown(struct sbi_scratch *scratch, u32 type) +void __noreturn sbi_system_shutdown(u32 type) { ulong hbase = 0, hmask; u32 cur_hartid = current_hartid(); + struct sbi_scratch *scratch = sbi_scratch_thishart_ptr(); /* Send HALT IPI to every hart other than the current hart */ while (!sbi_hsm_hart_started_mask(hbase, &hmask)) { |