Message ID | 20201125051647.295472-3-anup.patel@wdc.com |
---|---|
State | Accepted |
Headers | show |
Series | Implement System Reset (SRST) SBI extension | expand |
On Wed, 2020-11-25 at 10:46 +0530, Anup Patel wrote: > We can now use the standard SBI SRST extension reset types instead > of the opensbi specific (SBI_PLATFORM_RESET_xyz) reset types hence > remove related opensbi specific defines. The "platform_" prefix of > the reset type parameter of sbi_system_reset() function should also > be removed. > > Signed-off-by: Anup Patel <anup.patel@wdc.com> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Alistair > --- > include/sbi/sbi_platform.h | 4 +--- > include/sbi/sbi_system.h | 2 +- > lib/sbi/sbi_ecall_legacy.c | 2 +- > lib/sbi/sbi_system.c | 4 ++-- > lib/utils/sys/sifive_test.c | 6 +++--- > 5 files changed, 8 insertions(+), 10 deletions(-) > > diff --git a/include/sbi/sbi_platform.h b/include/sbi/sbi_platform.h > index 7a8c113..3f4a733 100644 > --- a/include/sbi/sbi_platform.h > +++ b/include/sbi/sbi_platform.h > @@ -40,6 +40,7 @@ > > #ifndef __ASSEMBLY__ > > +#include <sbi/sbi_ecall_interface.h> > #include <sbi/sbi_error.h> > #include <sbi/sbi_scratch.h> > #include <sbi/sbi_version.h> > @@ -139,9 +140,6 @@ struct sbi_platform_operations { > int (*hart_stop)(void); > > /** Reset the platform */ > -#define SBI_PLATFORM_RESET_SHUTDOWN 0 > -#define SBI_PLATFORM_RESET_COLD 1 > -#define SBI_PLATFORM_RESET_WARM 2 > int (*system_reset)(u32 reset_type); > > /** platform specific SBI extension implementation probe > function */ > diff --git a/include/sbi/sbi_system.h b/include/sbi/sbi_system.h > index d44ef12..309e263 100644 > --- a/include/sbi/sbi_system.h > +++ b/include/sbi/sbi_system.h > @@ -12,6 +12,6 @@ > > #include <sbi/sbi_types.h> > > -void __noreturn sbi_system_reset(u32 platform_reset_type); > +void __noreturn sbi_system_reset(u32 reset_type); > > #endif > diff --git a/lib/sbi/sbi_ecall_legacy.c b/lib/sbi/sbi_ecall_legacy.c > index 909cbe3..683b8dc 100644 > --- a/lib/sbi/sbi_ecall_legacy.c > +++ b/lib/sbi/sbi_ecall_legacy.c > @@ -103,7 +103,7 @@ static int sbi_ecall_legacy_handler(unsigned long > extid, unsigned long funcid, > } > break; > case SBI_EXT_0_1_SHUTDOWN: > - sbi_system_reset(SBI_PLATFORM_RESET_SHUTDOWN); > + sbi_system_reset(SBI_SRST_RESET_TYPE_SHUTDOWN); > break; > default: > ret = SBI_ENOTSUPP; > diff --git a/lib/sbi/sbi_system.c b/lib/sbi/sbi_system.c > index 96290b3..2f1b7fb 100644 > --- a/lib/sbi/sbi_system.c > +++ b/lib/sbi/sbi_system.c > @@ -18,7 +18,7 @@ > #include <sbi/sbi_ipi.h> > #include <sbi/sbi_init.h> > > -void __noreturn sbi_system_reset(u32 platform_reset_type) > +void __noreturn sbi_system_reset(u32 reset_type) > { > ulong hbase = 0, hmask; > u32 cur_hartid = current_hartid(); > @@ -40,7 +40,7 @@ void __noreturn sbi_system_reset(u32 > platform_reset_type) > /* Platform specific reset if domain allowed system reset */ > if (dom->system_reset_allowed) > sbi_platform_system_reset(sbi_platform_ptr(scratch), > - platform_reset_type); > + reset_type); > > /* If platform specific reset did not work then do sbi_exit() > */ > sbi_exit(scratch); > diff --git a/lib/utils/sys/sifive_test.c > b/lib/utils/sys/sifive_test.c > index 15369da..06fbfb2 100644 > --- a/lib/utils/sys/sifive_test.c > +++ b/lib/utils/sys/sifive_test.c > @@ -24,11 +24,11 @@ int sifive_test_system_reset(u32 type) > * was successful so that QEMU exits > */ > switch (type) { > - case SBI_PLATFORM_RESET_SHUTDOWN: > + case SBI_SRST_RESET_TYPE_SHUTDOWN: > writew(FINISHER_PASS, sifive_test_base); > break; > - case SBI_PLATFORM_RESET_COLD: > - case SBI_PLATFORM_RESET_WARM: > + case SBI_SRST_RESET_TYPE_COLD_REBOOT: > + case SBI_SRST_RESET_TYPE_WARM_REBOOT: > writew(FINISHER_RESET, sifive_test_base); > break; > }
On Tue, Nov 24, 2020 at 9:17 PM Anup Patel <anup.patel@wdc.com> wrote: > > We can now use the standard SBI SRST extension reset types instead > of the opensbi specific (SBI_PLATFORM_RESET_xyz) reset types hence > remove related opensbi specific defines. The "platform_" prefix of > the reset type parameter of sbi_system_reset() function should also > be removed. > > Signed-off-by: Anup Patel <anup.patel@wdc.com> > --- > include/sbi/sbi_platform.h | 4 +--- > include/sbi/sbi_system.h | 2 +- > lib/sbi/sbi_ecall_legacy.c | 2 +- > lib/sbi/sbi_system.c | 4 ++-- > lib/utils/sys/sifive_test.c | 6 +++--- > 5 files changed, 8 insertions(+), 10 deletions(-) > > diff --git a/include/sbi/sbi_platform.h b/include/sbi/sbi_platform.h > index 7a8c113..3f4a733 100644 > --- a/include/sbi/sbi_platform.h > +++ b/include/sbi/sbi_platform.h > @@ -40,6 +40,7 @@ > > #ifndef __ASSEMBLY__ > > +#include <sbi/sbi_ecall_interface.h> > #include <sbi/sbi_error.h> > #include <sbi/sbi_scratch.h> > #include <sbi/sbi_version.h> > @@ -139,9 +140,6 @@ struct sbi_platform_operations { > int (*hart_stop)(void); > > /** Reset the platform */ > -#define SBI_PLATFORM_RESET_SHUTDOWN 0 > -#define SBI_PLATFORM_RESET_COLD 1 > -#define SBI_PLATFORM_RESET_WARM 2 > int (*system_reset)(u32 reset_type); > > /** platform specific SBI extension implementation probe function */ > diff --git a/include/sbi/sbi_system.h b/include/sbi/sbi_system.h > index d44ef12..309e263 100644 > --- a/include/sbi/sbi_system.h > +++ b/include/sbi/sbi_system.h > @@ -12,6 +12,6 @@ > > #include <sbi/sbi_types.h> > > -void __noreturn sbi_system_reset(u32 platform_reset_type); > +void __noreturn sbi_system_reset(u32 reset_type); > > #endif > diff --git a/lib/sbi/sbi_ecall_legacy.c b/lib/sbi/sbi_ecall_legacy.c > index 909cbe3..683b8dc 100644 > --- a/lib/sbi/sbi_ecall_legacy.c > +++ b/lib/sbi/sbi_ecall_legacy.c > @@ -103,7 +103,7 @@ static int sbi_ecall_legacy_handler(unsigned long extid, unsigned long funcid, > } > break; > case SBI_EXT_0_1_SHUTDOWN: > - sbi_system_reset(SBI_PLATFORM_RESET_SHUTDOWN); > + sbi_system_reset(SBI_SRST_RESET_TYPE_SHUTDOWN); > break; > default: > ret = SBI_ENOTSUPP; > diff --git a/lib/sbi/sbi_system.c b/lib/sbi/sbi_system.c > index 96290b3..2f1b7fb 100644 > --- a/lib/sbi/sbi_system.c > +++ b/lib/sbi/sbi_system.c > @@ -18,7 +18,7 @@ > #include <sbi/sbi_ipi.h> > #include <sbi/sbi_init.h> > > -void __noreturn sbi_system_reset(u32 platform_reset_type) > +void __noreturn sbi_system_reset(u32 reset_type) > { > ulong hbase = 0, hmask; > u32 cur_hartid = current_hartid(); > @@ -40,7 +40,7 @@ void __noreturn sbi_system_reset(u32 platform_reset_type) > /* Platform specific reset if domain allowed system reset */ > if (dom->system_reset_allowed) > sbi_platform_system_reset(sbi_platform_ptr(scratch), > - platform_reset_type); > + reset_type); > > /* If platform specific reset did not work then do sbi_exit() */ > sbi_exit(scratch); > diff --git a/lib/utils/sys/sifive_test.c b/lib/utils/sys/sifive_test.c > index 15369da..06fbfb2 100644 > --- a/lib/utils/sys/sifive_test.c > +++ b/lib/utils/sys/sifive_test.c > @@ -24,11 +24,11 @@ int sifive_test_system_reset(u32 type) > * was successful so that QEMU exits > */ > switch (type) { > - case SBI_PLATFORM_RESET_SHUTDOWN: > + case SBI_SRST_RESET_TYPE_SHUTDOWN: > writew(FINISHER_PASS, sifive_test_base); > break; > - case SBI_PLATFORM_RESET_COLD: > - case SBI_PLATFORM_RESET_WARM: > + case SBI_SRST_RESET_TYPE_COLD_REBOOT: > + case SBI_SRST_RESET_TYPE_WARM_REBOOT: > writew(FINISHER_RESET, sifive_test_base); > break; > } > -- > 2.25.1 > > > -- > opensbi mailing list > opensbi@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/opensbi Reviewed-by: Atish Patra <atish.patra@wdc.com>
> -----Original Message----- > From: Atish Patra <atishp@atishpatra.org> > Sent: 01 December 2020 13:14 > To: Anup Patel <Anup.Patel@wdc.com> > Cc: Atish Patra <Atish.Patra@wdc.com>; Alistair Francis > <Alistair.Francis@wdc.com>; Anup Patel <anup@brainfault.org>; OpenSBI > <opensbi@lists.infradead.org> > Subject: Re: [PATCH v3 2/5] include: sbi: Remove opensbi specific reset type > defines > > On Tue, Nov 24, 2020 at 9:17 PM Anup Patel <anup.patel@wdc.com> wrote: > > > > We can now use the standard SBI SRST extension reset types instead of > > the opensbi specific (SBI_PLATFORM_RESET_xyz) reset types hence > remove > > related opensbi specific defines. The "platform_" prefix of the reset > > type parameter of sbi_system_reset() function should also be removed. > > > > Signed-off-by: Anup Patel <anup.patel@wdc.com> > > --- > > include/sbi/sbi_platform.h | 4 +--- > > include/sbi/sbi_system.h | 2 +- > > lib/sbi/sbi_ecall_legacy.c | 2 +- > > lib/sbi/sbi_system.c | 4 ++-- > > lib/utils/sys/sifive_test.c | 6 +++--- > > 5 files changed, 8 insertions(+), 10 deletions(-) > > > > diff --git a/include/sbi/sbi_platform.h b/include/sbi/sbi_platform.h > > index 7a8c113..3f4a733 100644 > > --- a/include/sbi/sbi_platform.h > > +++ b/include/sbi/sbi_platform.h > > @@ -40,6 +40,7 @@ > > > > #ifndef __ASSEMBLY__ > > > > +#include <sbi/sbi_ecall_interface.h> > > #include <sbi/sbi_error.h> > > #include <sbi/sbi_scratch.h> > > #include <sbi/sbi_version.h> > > @@ -139,9 +140,6 @@ struct sbi_platform_operations { > > int (*hart_stop)(void); > > > > /** Reset the platform */ > > -#define SBI_PLATFORM_RESET_SHUTDOWN 0 > > -#define SBI_PLATFORM_RESET_COLD 1 > > -#define SBI_PLATFORM_RESET_WARM 2 > > int (*system_reset)(u32 reset_type); > > > > /** platform specific SBI extension implementation probe > > function */ diff --git a/include/sbi/sbi_system.h > > b/include/sbi/sbi_system.h index d44ef12..309e263 100644 > > --- a/include/sbi/sbi_system.h > > +++ b/include/sbi/sbi_system.h > > @@ -12,6 +12,6 @@ > > > > #include <sbi/sbi_types.h> > > > > -void __noreturn sbi_system_reset(u32 platform_reset_type); > > +void __noreturn sbi_system_reset(u32 reset_type); > > > > #endif > > diff --git a/lib/sbi/sbi_ecall_legacy.c b/lib/sbi/sbi_ecall_legacy.c > > index 909cbe3..683b8dc 100644 > > --- a/lib/sbi/sbi_ecall_legacy.c > > +++ b/lib/sbi/sbi_ecall_legacy.c > > @@ -103,7 +103,7 @@ static int sbi_ecall_legacy_handler(unsigned long > extid, unsigned long funcid, > > } > > break; > > case SBI_EXT_0_1_SHUTDOWN: > > - sbi_system_reset(SBI_PLATFORM_RESET_SHUTDOWN); > > + sbi_system_reset(SBI_SRST_RESET_TYPE_SHUTDOWN); > > break; > > default: > > ret = SBI_ENOTSUPP; > > diff --git a/lib/sbi/sbi_system.c b/lib/sbi/sbi_system.c index > > 96290b3..2f1b7fb 100644 > > --- a/lib/sbi/sbi_system.c > > +++ b/lib/sbi/sbi_system.c > > @@ -18,7 +18,7 @@ > > #include <sbi/sbi_ipi.h> > > #include <sbi/sbi_init.h> > > > > -void __noreturn sbi_system_reset(u32 platform_reset_type) > > +void __noreturn sbi_system_reset(u32 reset_type) > > { > > ulong hbase = 0, hmask; > > u32 cur_hartid = current_hartid(); @@ -40,7 +40,7 @@ void > > __noreturn sbi_system_reset(u32 platform_reset_type) > > /* Platform specific reset if domain allowed system reset */ > > if (dom->system_reset_allowed) > > sbi_platform_system_reset(sbi_platform_ptr(scratch), > > - platform_reset_type); > > + reset_type); > > > > /* If platform specific reset did not work then do sbi_exit() */ > > sbi_exit(scratch); > > diff --git a/lib/utils/sys/sifive_test.c b/lib/utils/sys/sifive_test.c > > index 15369da..06fbfb2 100644 > > --- a/lib/utils/sys/sifive_test.c > > +++ b/lib/utils/sys/sifive_test.c > > @@ -24,11 +24,11 @@ int sifive_test_system_reset(u32 type) > > * was successful so that QEMU exits > > */ > > switch (type) { > > - case SBI_PLATFORM_RESET_SHUTDOWN: > > + case SBI_SRST_RESET_TYPE_SHUTDOWN: > > writew(FINISHER_PASS, sifive_test_base); > > break; > > - case SBI_PLATFORM_RESET_COLD: > > - case SBI_PLATFORM_RESET_WARM: > > + case SBI_SRST_RESET_TYPE_COLD_REBOOT: > > + case SBI_SRST_RESET_TYPE_WARM_REBOOT: > > writew(FINISHER_RESET, sifive_test_base); > > break; > > } > > -- > > 2.25.1 > > > > > > -- > > opensbi mailing list > > opensbi@lists.infradead.org > > http://lists.infradead.org/mailman/listinfo/opensbi > > > Reviewed-by: Atish Patra <atish.patra@wdc.com> Applied this patch to the riscv/opensbi repo Regards, Anup
diff --git a/include/sbi/sbi_platform.h b/include/sbi/sbi_platform.h index 7a8c113..3f4a733 100644 --- a/include/sbi/sbi_platform.h +++ b/include/sbi/sbi_platform.h @@ -40,6 +40,7 @@ #ifndef __ASSEMBLY__ +#include <sbi/sbi_ecall_interface.h> #include <sbi/sbi_error.h> #include <sbi/sbi_scratch.h> #include <sbi/sbi_version.h> @@ -139,9 +140,6 @@ struct sbi_platform_operations { int (*hart_stop)(void); /** Reset the platform */ -#define SBI_PLATFORM_RESET_SHUTDOWN 0 -#define SBI_PLATFORM_RESET_COLD 1 -#define SBI_PLATFORM_RESET_WARM 2 int (*system_reset)(u32 reset_type); /** platform specific SBI extension implementation probe function */ diff --git a/include/sbi/sbi_system.h b/include/sbi/sbi_system.h index d44ef12..309e263 100644 --- a/include/sbi/sbi_system.h +++ b/include/sbi/sbi_system.h @@ -12,6 +12,6 @@ #include <sbi/sbi_types.h> -void __noreturn sbi_system_reset(u32 platform_reset_type); +void __noreturn sbi_system_reset(u32 reset_type); #endif diff --git a/lib/sbi/sbi_ecall_legacy.c b/lib/sbi/sbi_ecall_legacy.c index 909cbe3..683b8dc 100644 --- a/lib/sbi/sbi_ecall_legacy.c +++ b/lib/sbi/sbi_ecall_legacy.c @@ -103,7 +103,7 @@ static int sbi_ecall_legacy_handler(unsigned long extid, unsigned long funcid, } break; case SBI_EXT_0_1_SHUTDOWN: - sbi_system_reset(SBI_PLATFORM_RESET_SHUTDOWN); + sbi_system_reset(SBI_SRST_RESET_TYPE_SHUTDOWN); break; default: ret = SBI_ENOTSUPP; diff --git a/lib/sbi/sbi_system.c b/lib/sbi/sbi_system.c index 96290b3..2f1b7fb 100644 --- a/lib/sbi/sbi_system.c +++ b/lib/sbi/sbi_system.c @@ -18,7 +18,7 @@ #include <sbi/sbi_ipi.h> #include <sbi/sbi_init.h> -void __noreturn sbi_system_reset(u32 platform_reset_type) +void __noreturn sbi_system_reset(u32 reset_type) { ulong hbase = 0, hmask; u32 cur_hartid = current_hartid(); @@ -40,7 +40,7 @@ void __noreturn sbi_system_reset(u32 platform_reset_type) /* Platform specific reset if domain allowed system reset */ if (dom->system_reset_allowed) sbi_platform_system_reset(sbi_platform_ptr(scratch), - platform_reset_type); + reset_type); /* If platform specific reset did not work then do sbi_exit() */ sbi_exit(scratch); diff --git a/lib/utils/sys/sifive_test.c b/lib/utils/sys/sifive_test.c index 15369da..06fbfb2 100644 --- a/lib/utils/sys/sifive_test.c +++ b/lib/utils/sys/sifive_test.c @@ -24,11 +24,11 @@ int sifive_test_system_reset(u32 type) * was successful so that QEMU exits */ switch (type) { - case SBI_PLATFORM_RESET_SHUTDOWN: + case SBI_SRST_RESET_TYPE_SHUTDOWN: writew(FINISHER_PASS, sifive_test_base); break; - case SBI_PLATFORM_RESET_COLD: - case SBI_PLATFORM_RESET_WARM: + case SBI_SRST_RESET_TYPE_COLD_REBOOT: + case SBI_SRST_RESET_TYPE_WARM_REBOOT: writew(FINISHER_RESET, sifive_test_base); break; }
We can now use the standard SBI SRST extension reset types instead of the opensbi specific (SBI_PLATFORM_RESET_xyz) reset types hence remove related opensbi specific defines. The "platform_" prefix of the reset type parameter of sbi_system_reset() function should also be removed. Signed-off-by: Anup Patel <anup.patel@wdc.com> --- include/sbi/sbi_platform.h | 4 +--- include/sbi/sbi_system.h | 2 +- lib/sbi/sbi_ecall_legacy.c | 2 +- lib/sbi/sbi_system.c | 4 ++-- lib/utils/sys/sifive_test.c | 6 +++--- 5 files changed, 8 insertions(+), 10 deletions(-)