platform: openpiton: Add PMU initialization
PATCH 1/1 platform: openpiton: Add PMU initialization
The OpenPiton framework has a generic PMU that is not used by OpenSBI. Due to OpenSBI’s build system we cannot directly reuse the generic platform functions, so simply copy them to the OpenPiton platform.
--- platform/fpga/openpiton/platform.c | 39 ++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+)
platform/fpga/openpiton/platform.c +39 -0
@@ -11,6 +11,7 @@#include <sbi/sbi_platform.h> #include <sbi_utils/fdt/fdt_helper.h> #include <sbi_utils/fdt/fdt_fixup.h> +#include <sbi_utils/fdt/fdt_pmu.h> #include <sbi_utils/ipi/aclint_mswi.h> #include <sbi_utils/irqchip/plic.h> #include <sbi_utils/serial/uart8250.h>
@@ -156,6 +157,42 @@ static int openpiton_timer_init(void)return aclint_mtimer_cold_init (&mtimer,NULL ); } +/* +* Initialize openpiton pmu during cold boot. +*/ +int openpiton_pmu_init (void ) +{ +int rc; + + rc =fdt_pmu_setup (fdt_get_address ()); +if (rc && rc !=SBI_ENOENT ) +return rc; + +return 0 ; +} + +uint64_t openpiton_pmu_xlate_to_mhpmevent (uint32_t event_idx,uint64_t data) +{ +uint64_t evt_val =0 ; + +/* data is valid only for raw events and is equal to event selector */ +if (event_idx ==SBI_PMU_EVENT_RAW_IDX || + event_idx ==SBI_PMU_EVENT_RAW_V2_IDX ) + evt_val = data; +else { +/** +* Generic platform follows the SBI specification recommendation +* i.e. zero extended event_idx is used as mhpmevent value for +* hardware general/cache events if platform does't define one. +*/ + evt_val =fdt_pmu_get_select_value (event_idx); +if (!evt_val) + evt_val = (uint64_t )event_idx; + } + +return evt_val; +} +/* * Platform descriptor. */
@@ -165,6 +202,8 @@ const struct sbi_platform_operations platform_ops = { .irqchip_init = openpiton_irqchip_init, .ipi_init = openpiton_ipi_init, .timer_init = openpiton_timer_init, + .pmu_init = openpiton_pmu_init, + .pmu_xlate_to_mhpmevent = openpiton_pmu_xlate_to_mhpmevent, };const struct sbi_platform platform = {
Signature · 7 lines
2.34.1 -- opensbi mailing list [email protected] http://lists.infradead.org/mailman/listinfo/opensbi
Hi,
Quoted 3 lines · Manuel Hernández Méndez
The OpenPiton framework has a generic PMU that is not used by OpenSBI. Due to OpenSBI’s build system we cannot directly reuse the generic platform functions, so simply copy them to the OpenPiton platform.
Since you must be using a FDT for the new PMU functions to work, is there anything preventing you from using that FDT with the generic platform? The generic platform is where new features are added; the other platforms get only minimal maintenance and testing. So it might be better to migrate OpenPiton to the generic platform if possible.
If firmware size is a concern, we can create a slimmed-down defconfig -- a generic platform build with a limited set of drivers is only about 13 KiB larger than a fpga/openpiton build.
Quoted 19 lines
Signed-off-by Manuel Hernández Méndez <[email protected]>--- platform/fpga/openpiton/platform.c | 39 ++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+)platform/fpga/openpiton/platform.c +1
-0@@ -11,6 +11,7 @@#include <sbi/sbi_platform.h> #include <sbi_utils/fdt/fdt_helper.h> #include <sbi_utils/fdt/fdt_fixup.h> +#include <sbi_utils/fdt/fdt_pmu.h> #include <sbi_utils/ipi/aclint_mswi.h> #include <sbi_utils/irqchip/plic.h> #include <sbi_utils/serial/uart8250.h> @@ -156,6 +157,42 @@ static int openpiton_timer_init(void)return aclint_mtimer_cold_init (&mtimer,NULL );
platform/fpga/openpiton/platform.c static int openpiton_timer_init(void) · line 167
Quoted 10 lines
platform/fpga/openpiton/platform.c +8
-0} +/* +* Initialize openpiton pmu during cold boot. +*/ +int openpiton_pmu_init (void ) +{ +int rc; + + rc =fdt_pmu_setup (fdt_get_address ());
You would also need a defconfig change enabling CONFIG_FDT_PMU for this function call to do anything.
Regards,
Samuel
Quoted 40 lines
platform/fpga/openpiton/platform.c +30
-0+if (rc && rc !=SBI_ENOENT ) +return rc; + +return 0 ; +} + +uint64_t openpiton_pmu_xlate_to_mhpmevent (uint32_t event_idx,uint64_t data) +{ +uint64_t evt_val =0 ; + +/* data is valid only for raw events and is equal to event selector */ +if (event_idx ==SBI_PMU_EVENT_RAW_IDX || + event_idx ==SBI_PMU_EVENT_RAW_V2_IDX ) + evt_val = data; +else { +/** +* Generic platform follows the SBI specification recommendation +* i.e. zero extended event_idx is used as mhpmevent value for +* hardware general/cache events if platform does't define one. +*/ + evt_val =fdt_pmu_get_select_value (event_idx); +if (!evt_val) + evt_val = (uint64_t )event_idx; + } + +return evt_val; +} +/* * Platform descriptor. */ @@ -165,6 +202,8 @@ const struct sbi_platform_operations platform_ops = { .irqchip_init = openpiton_irqchip_init, .ipi_init = openpiton_ipi_init, .timer_init = openpiton_timer_init, + .pmu_init = openpiton_pmu_init, + .pmu_xlate_to_mhpmevent = openpiton_pmu_xlate_to_mhpmevent, };const struct sbi_platform platform = {
Signature · 3 lines
opensbi mailing list [email protected] http://lists.infradead.org/mailman/listinfo/opensbi
PATCH 1/1 platform: openpiton: Move openpiton platform from fpga to generic
The OpenPiton framework has a generic PMU that is not used by OpenSBI. Due to OpenSBI’s build system we cannot directly reuse the generic platform functions, so move the OpenPiton platform to generic. Also due to the generic platform is where new features are added.
---
platform/fpga/openpiton/Kconfig | 10 ----
platform/fpga/openpiton/configs/defconfig | 0
platform/fpga/openpiton/objects.mk | 41 ----------------
platform/generic/Kconfig | 4 ++
platform/generic/configs/defconfig | 1 +
platform/generic/openhwgroup/objects.mk | 8 ++++
.../openhwgroup/openpiton.c} | 48 +++++++++----------
7 files changed, 36 insertions(+), 76 deletions(-)
delete mode 100644 platform/fpga/openpiton/Kconfig
delete mode 100644 platform/fpga/openpiton/configs/defconfig
delete mode 100644 platform/fpga/openpiton/objects.mk
create mode 100644 platform/generic/openhwgroup/objects.mk
rename platform/{fpga/openpiton/platform.c => generic/openhwgroup/openpiton.c} (82%)platform/fpga/openpiton/Kconfig deleted +0 -10
@@ -1,10 +0,0 @@ -# SPDX-License-Identifier: BSD-2-Clause - -config PLATFORM_OPENPITON_FPGA - bool - select FDT - select IPI_MSWI - select IRQCHIP_PLIC - select SERIAL_UART8250 - select TIMER_MTIMER - default y
platform/fpga/openpiton/configs/defconfig deleted +0 -0
platform/fpga/openpiton/objects.mk deleted +0 -41
41 lines not on this page · raw message
platform/generic/Kconfig +4 -0
@@ -36,6 +36,10 @@ config PLATFORM_ANDES_AE350 select ANDES_PMA default n +config PLATFORM_OPENHWGROUP_OPENPITON + bool "OpenHWGroup Openpiton support" + default n + config PLATFORM_RENESAS_RZFIVE bool "Renesas RZ/Five support" select ANDES_PMA
platform/generic/configs/defconfig +1 -0
@@ -7,6 +7,7 @@ CONFIG_PLATFORM_SOPHGO_SG2042=y CONFIG_PLATFORM_STARFIVE_JH7110=y CONFIG_PLATFORM_THEAD=y CONFIG_PLATFORM_MIPS_P8700=y +CONFIG_PLATFORM_OPENHWGROUP_OPENPITON=y CONFIG_FDT_CPPC=y CONFIG_FDT_CPPC_RPMI=y CONFIG_FDT_GPIO=y
platform/generic/openhwgroup/objects.mk new file +8 -0
@@ -0,0 +1,8 @@ +# +# SPDX-License-Identifier: BSD-2-Clause +# +# Copyright (c) 2020 Western Digital Corporation or its affiliates. +# + +carray-platform_override_modules-$(CONFIG_PLATFORM_OPENHWGROUP_OPENPITON) += openhwgroup_openpiton +platform-objs-$(CONFIG_PLATFORM_OPENHWGROUP_OPENPITON) += openhwgroup/openpiton.o
platform/generic/openhwgroup/openpiton.c renamed from platform/fpga/openpiton/platform.c +23 -25
60 lines not on this page · raw message
Signature · 7 lines
2.34.1 -- opensbi mailing list [email protected] http://lists.infradead.org/mailman/listinfo/opensbi
PATCH v2 1/1 platform: openpiton: Move openpiton platform from fpga to generic
In reply to Samuel HollandThe OpenPiton framework has a generic PMU that is not used by OpenSBI. Due to OpenSBI’s build system we cannot directly reuse the generic platform functions, so move the OpenPiton platform to generic. Also due to the generic platform is where new features are added.
---
platform/fpga/openpiton/Kconfig | 10 -----
platform/fpga/openpiton/configs/defconfig | 0
platform/fpga/openpiton/objects.mk | 41 ------------------
platform/generic/Kconfig | 4 ++
platform/generic/configs/defconfig | 1 +
platform/generic/openhwgroup/objects.mk | 8 ++++
.../openhwgroup/openpiton.c} | 43 ++++++++-----------
7 files changed, 31 insertions(+), 76 deletions(-)
delete mode 100644 platform/fpga/openpiton/Kconfig
delete mode 100644 platform/fpga/openpiton/configs/defconfig
delete mode 100644 platform/fpga/openpiton/objects.mk
create mode 100644 platform/generic/openhwgroup/objects.mk
rename platform/{fpga/openpiton/platform.c => generic/openhwgroup/openpiton.c} (82%)platform/fpga/openpiton/Kconfig deleted +0 -10
@@ -1,10 +0,0 @@ -# SPDX-License-Identifier: BSD-2-Clause - -config PLATFORM_OPENPITON_FPGA - bool - select FDT - select IPI_MSWI - select IRQCHIP_PLIC - select SERIAL_UART8250 - select TIMER_MTIMER - default y
platform/fpga/openpiton/configs/defconfig deleted +0 -0
platform/fpga/openpiton/objects.mk deleted +0 -41
41 lines not on this page · raw message
platform/generic/Kconfig +4 -0
@@ -36,6 +36,10 @@ config PLATFORM_ANDES_AE350 select ANDES_PMA default n +config PLATFORM_OPENHWGROUP_OPENPITON + bool "OpenHWGroup Openpiton support" + default n + config PLATFORM_RENESAS_RZFIVE bool "Renesas RZ/Five support" select ANDES_PMA
platform/generic/configs/defconfig +1 -0
@@ -7,6 +7,7 @@ CONFIG_PLATFORM_SOPHGO_SG2042=y CONFIG_PLATFORM_STARFIVE_JH7110=y CONFIG_PLATFORM_THEAD=y CONFIG_PLATFORM_MIPS_P8700=y +CONFIG_PLATFORM_OPENHWGROUP_OPENPITON=y CONFIG_FDT_CPPC=y CONFIG_FDT_CPPC_RPMI=y CONFIG_FDT_GPIO=y
platform/generic/openhwgroup/objects.mk new file +8 -0
@@ -0,0 +1,8 @@ +# +# SPDX-License-Identifier: BSD-2-Clause +# +# Copyright (c) 2020 Western Digital Corporation or its affiliates. +# + +carray-platform_override_modules-$(CONFIG_PLATFORM_OPENHWGROUP_OPENPITON) += openhwgroup_openpiton +platform-objs-$(CONFIG_PLATFORM_OPENHWGROUP_OPENPITON) += openhwgroup/openpiton.o
platform/generic/openhwgroup/openpiton.c renamed from platform/fpga/openpiton/platform.c +18 -25
55 lines not on this page · raw message
Signature · 7 lines
2.34.1 -- opensbi mailing list [email protected] http://lists.infradead.org/mailman/listinfo/opensbi
Re: [PATCH v2] platform: openpiton: Move openpiton platform from fpga to generic
Quoted 7 lines · Manuel Hernández Méndez
The OpenPiton framework has a generic PMU that is not used by OpenSBI. Due to OpenSBI’s build system we cannot directly reuse the generic platform functions, so move the OpenPiton platform to generic. Also due to the generic platform is where new features are added.
Signed-off-by Manuel Hernández Méndez <[email protected]>
Overall, this movement is in right direction. If you already have DT nodes for timer, clint, and plic in the OpenPiton FDT passed to OpenSBI then generic/openhwgroup/openpiton.c can be further simplified but this can be done as separate patch.
Applied this patch to the riscv/opensbi repo.
Thanks,
Anup
Quoted 194 lines
--- platform/fpga/openpiton/Kconfig | 10 ----- platform/fpga/openpiton/configs/defconfig | 0 platform/fpga/openpiton/objects.mk | 41 ------------------ platform/generic/Kconfig | 4 ++ platform/generic/configs/defconfig | 1 + platform/generic/openhwgroup/objects.mk | 8 ++++ .../openhwgroup/openpiton.c} | 43 ++++++++----------- 7 files changed, 31 insertions(+), 76 deletions(-) delete mode 100644 platform/fpga/openpiton/Kconfig delete mode 100644 platform/fpga/openpiton/configs/defconfig delete mode 100644 platform/fpga/openpiton/objects.mk create mode 100644 platform/generic/openhwgroup/objects.mk rename platform/{fpga/openpiton/platform.c => generic/openhwgroup/openpiton.c} (82%)platform/fpga/openpiton/Kconfig deleted +0
-10@@ -1,10 +0,0 @@ -# SPDX-License-Identifier: BSD-2-Clause - -config PLATFORM_OPENPITON_FPGA - bool - select FDT - select IPI_MSWI - select IRQCHIP_PLIC - select SERIAL_UART8250 - select TIMER_MTIMER - default yplatform/fpga/openpiton/configs/defconfig deleted +0
-0platform/fpga/openpiton/objects.mk deleted +0
-41@@ -1,41 +0,0 @@ -# -# SPDX-License-Identifier: BSD-2-Clause -# -# Copyright (c) 2020 Western Digital Corporation or its affiliates. -# - -# Compiler flags -platform-cppflags-y = -platform-cflags-y = -platform-asflags-y = -platform-ldflags-y = - -# Objects to build -platform-objs-y += platform.o - -PLATFORM_RISCV_XLEN = 64 - -# Blobs to build -FW_JUMP=n - -ifeq ($(PLATFORM_RISCV_XLEN), 32) - # This needs to be 4MB aligned for 32-bit support - FW_JUMP_ADDR=0x80400000 - else - # This needs to be 2MB aligned for 64-bit support - FW_JUMP_ADDR=0x80200000 - endif -FW_JUMP_FDT_ADDR=0x82200000 - -# Firmware with payload configuration. -FW_PAYLOAD=y - -ifeq ($(PLATFORM_RISCV_XLEN), 32) -# This needs to be 4MB aligned for 32-bit support - FW_PAYLOAD_OFFSET=0x400000 -else -# This needs to be 2MB aligned for 64-bit support - FW_PAYLOAD_OFFSET=0x200000 -endif -FW_PAYLOAD_FDT_ADDR=0x82200000 -FW_PAYLOAD_ALIGN=0x1000platform/generic/Kconfig +4
-0@@ -36,6 +36,10 @@ config PLATFORM_ANDES_AE350 select ANDES_PMA default n +config PLATFORM_OPENHWGROUP_OPENPITON + bool "OpenHWGroup Openpiton support" + default n + config PLATFORM_RENESAS_RZFIVE bool "Renesas RZ/Five support" select ANDES_PMAplatform/generic/configs/defconfig +1
-0@@ -7,6 +7,7 @@ CONFIG_PLATFORM_SOPHGO_SG2042=y CONFIG_PLATFORM_STARFIVE_JH7110=y CONFIG_PLATFORM_THEAD=y CONFIG_PLATFORM_MIPS_P8700=y +CONFIG_PLATFORM_OPENHWGROUP_OPENPITON=y CONFIG_FDT_CPPC=y CONFIG_FDT_CPPC_RPMI=y CONFIG_FDT_GPIO=yplatform/generic/openhwgroup/objects.mk new file +8
-0@@ -0,0 +1,8 @@ +# +# SPDX-License-Identifier: BSD-2-Clause +# +# Copyright (c) 2020 Western Digital Corporation or its affiliates. +# + +carray-platform_override_modules-$(CONFIG_PLATFORM_OPENHWGROUP_OPENPITON) += openhwgroup_openpiton +platform-objs-$(CONFIG_PLATFORM_OPENHWGROUP_OPENPITON) += openhwgroup/openpiton.oplatform/generic/openhwgroup/openpiton.c renamed from platform/fpga/openpiton/platform.c +18
-26@@ -3,12 +3,7 @@* Copyright (c) 2020 Western Digital Corporation or its affiliates. */ -#include <sbi/riscv_asm.h> -#include <sbi/riscv_encoding.h> -#include <sbi/riscv_io.h> -#include <sbi/sbi_const.h> -#include <sbi/sbi_hart.h> -#include <sbi/sbi_platform.h> +#include <platform_override.h> #include <sbi_utils/fdt/fdt_helper.h> #include <sbi_utils/fdt/fdt_fixup.h> #include <sbi_utils/ipi/aclint_mswi.h> @@ -156,25 +151,23 @@ static int openpiton_timer_init(void)return aclint_mtimer_cold_init (&mtimer,NULL ); } -/* -* Platform descriptor. -*/ -const struct sbi_platform_operations platform_ops = { - .early_init = openpiton_early_init, - .final_init = openpiton_final_init, - .irqchip_init = openpiton_irqchip_init, - .ipi_init = openpiton_ipi_init, - .timer_init = openpiton_timer_init, +static int openhwgroup_openpiton_platform_init (const void *fdt,int nodeoff,const struct fdt_match *match) +{ + generic_platform_ops.early_init = openpiton_early_init; + generic_platform_ops.timer_init = openpiton_timer_init; + generic_platform_ops.ipi_init = openpiton_ipi_init; + generic_platform_ops.irqchip_init = openpiton_irqchip_init; + generic_platform_ops.final_init = openpiton_final_init; + +return 0 ; +} + +static const struct fdt_match openhwgroup_openpiton_match[] = { + { .compatible ="openpiton,cva6platform" }, + { }, }; -const struct sbi_platform platform = { - .opensbi_version =OPENSBI_VERSION , - .platform_version =SBI_PLATFORM_VERSION (0x0 ,0x01 ), - .name ="OPENPITON RISC-V" , - .features =SBI_PLATFORM_DEFAULT_FEATURES , - .hart_count =OPENPITON_DEFAULT_HART_COUNT , - .hart_stack_size =SBI_PLATFORM_DEFAULT_HART_STACK_SIZE , - .heap_size = -SBI_PLATFORM_DEFAULT_HEAP_SIZE (OPENPITON_DEFAULT_HART_COUNT ), - .platform_ops_addr = (unsigned long )&platform_ops +const struct fdt_driver openhwgroup_openpiton = { + .match_table = openhwgroup_openpiton_match, + .init = openhwgroup_openpiton_platform_init, }; --2.34.1
--
opensbi mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/opensbi
Signature · 3 lines
opensbi mailing list [email protected] http://lists.infradead.org/mailman/listinfo/opensbi
Re: [PATCH v2] platform: openpiton: Move openpiton platform from fpga to generic
Quoted 11 lines · Anup Patel
Quoted 7 lines · Manuel Hernández Méndez
The OpenPiton framework has a generic PMU that is not used by OpenSBI. Due to OpenSBI’s build system we cannot directly reuse the generic platform functions, so move the OpenPiton platform to generic. Also due to the generic platform is where new features are added.
Signed-off-by Manuel Hernández Méndez <[email protected]>
Quoted 8 lines
Overall, this movement is in right direction. If you already have DT nodes for timer, clint, and plic in the OpenPiton FDT passed to OpenSBI then
generic/openhwgroup/openpiton.ccan be further simplified but this can be done as separate patch.Reviewed-by Anup Patel <[email protected]>Applied this patch to the riscv/opensbi repo.
I forgot to mention. I have taken care of generic platform compilation error for RV32 with this patch and also updated documentation to reflect the platform movement.
Thanks,
Anup
Quoted 198 lines
Thanks,
AnupQuoted 194 lines
--- platform/fpga/openpiton/Kconfig | 10 ----- platform/fpga/openpiton/configs/defconfig | 0 platform/fpga/openpiton/objects.mk | 41 ------------------ platform/generic/Kconfig | 4 ++ platform/generic/configs/defconfig | 1 + platform/generic/openhwgroup/objects.mk | 8 ++++ .../openhwgroup/openpiton.c} | 43 ++++++++----------- 7 files changed, 31 insertions(+), 76 deletions(-) delete mode 100644 platform/fpga/openpiton/Kconfig delete mode 100644 platform/fpga/openpiton/configs/defconfig delete mode 100644 platform/fpga/openpiton/objects.mk create mode 100644 platform/generic/openhwgroup/objects.mk rename platform/{fpga/openpiton/platform.c => generic/openhwgroup/openpiton.c} (82%)platform/fpga/openpiton/Kconfig deleted +0
-10@@ -1,10 +0,0 @@ -# SPDX-License-Identifier: BSD-2-Clause - -config PLATFORM_OPENPITON_FPGA - bool - select FDT - select IPI_MSWI - select IRQCHIP_PLIC - select SERIAL_UART8250 - select TIMER_MTIMER - default yplatform/fpga/openpiton/configs/defconfig deleted +0
-0platform/fpga/openpiton/objects.mk deleted +0
-41@@ -1,41 +0,0 @@ -# -# SPDX-License-Identifier: BSD-2-Clause -# -# Copyright (c) 2020 Western Digital Corporation or its affiliates. -# - -# Compiler flags -platform-cppflags-y = -platform-cflags-y = -platform-asflags-y = -platform-ldflags-y = - -# Objects to build -platform-objs-y += platform.o - -PLATFORM_RISCV_XLEN = 64 - -# Blobs to build -FW_JUMP=n - -ifeq ($(PLATFORM_RISCV_XLEN), 32) - # This needs to be 4MB aligned for 32-bit support - FW_JUMP_ADDR=0x80400000 - else - # This needs to be 2MB aligned for 64-bit support - FW_JUMP_ADDR=0x80200000 - endif -FW_JUMP_FDT_ADDR=0x82200000 - -# Firmware with payload configuration. -FW_PAYLOAD=y - -ifeq ($(PLATFORM_RISCV_XLEN), 32) -# This needs to be 4MB aligned for 32-bit support - FW_PAYLOAD_OFFSET=0x400000 -else -# This needs to be 2MB aligned for 64-bit support - FW_PAYLOAD_OFFSET=0x200000 -endif -FW_PAYLOAD_FDT_ADDR=0x82200000 -FW_PAYLOAD_ALIGN=0x1000platform/generic/Kconfig +4
-0@@ -36,6 +36,10 @@ config PLATFORM_ANDES_AE350 select ANDES_PMA default n +config PLATFORM_OPENHWGROUP_OPENPITON + bool "OpenHWGroup Openpiton support" + default n + config PLATFORM_RENESAS_RZFIVE bool "Renesas RZ/Five support" select ANDES_PMAplatform/generic/configs/defconfig +1
-0@@ -7,6 +7,7 @@ CONFIG_PLATFORM_SOPHGO_SG2042=y CONFIG_PLATFORM_STARFIVE_JH7110=y CONFIG_PLATFORM_THEAD=y CONFIG_PLATFORM_MIPS_P8700=y +CONFIG_PLATFORM_OPENHWGROUP_OPENPITON=y CONFIG_FDT_CPPC=y CONFIG_FDT_CPPC_RPMI=y CONFIG_FDT_GPIO=yplatform/generic/openhwgroup/objects.mk new file +8
-0@@ -0,0 +1,8 @@ +# +# SPDX-License-Identifier: BSD-2-Clause +# +# Copyright (c) 2020 Western Digital Corporation or its affiliates. +# + +carray-platform_override_modules-$(CONFIG_PLATFORM_OPENHWGROUP_OPENPITON) += openhwgroup_openpiton +platform-objs-$(CONFIG_PLATFORM_OPENHWGROUP_OPENPITON) += openhwgroup/openpiton.oplatform/generic/openhwgroup/openpiton.c renamed from platform/fpga/openpiton/platform.c +18
-26@@ -3,12 +3,7 @@* Copyright (c) 2020 Western Digital Corporation or its affiliates. */ -#include <sbi/riscv_asm.h> -#include <sbi/riscv_encoding.h> -#include <sbi/riscv_io.h> -#include <sbi/sbi_const.h> -#include <sbi/sbi_hart.h> -#include <sbi/sbi_platform.h> +#include <platform_override.h> #include <sbi_utils/fdt/fdt_helper.h> #include <sbi_utils/fdt/fdt_fixup.h> #include <sbi_utils/ipi/aclint_mswi.h> @@ -156,25 +151,23 @@ static int openpiton_timer_init(void)return aclint_mtimer_cold_init (&mtimer,NULL ); } -/* -* Platform descriptor. -*/ -const struct sbi_platform_operations platform_ops = { - .early_init = openpiton_early_init, - .final_init = openpiton_final_init, - .irqchip_init = openpiton_irqchip_init, - .ipi_init = openpiton_ipi_init, - .timer_init = openpiton_timer_init, +static int openhwgroup_openpiton_platform_init (const void *fdt,int nodeoff,const struct fdt_match *match) +{ + generic_platform_ops.early_init = openpiton_early_init; + generic_platform_ops.timer_init = openpiton_timer_init; + generic_platform_ops.ipi_init = openpiton_ipi_init; + generic_platform_ops.irqchip_init = openpiton_irqchip_init; + generic_platform_ops.final_init = openpiton_final_init; + +return 0 ; +} + +static const struct fdt_match openhwgroup_openpiton_match[] = { + { .compatible ="openpiton,cva6platform" }, + { }, }; -const struct sbi_platform platform = { - .opensbi_version =OPENSBI_VERSION , - .platform_version =SBI_PLATFORM_VERSION (0x0 ,0x01 ), - .name ="OPENPITON RISC-V" , - .features =SBI_PLATFORM_DEFAULT_FEATURES , - .hart_count =OPENPITON_DEFAULT_HART_COUNT , - .hart_stack_size =SBI_PLATFORM_DEFAULT_HART_STACK_SIZE , - .heap_size = -SBI_PLATFORM_DEFAULT_HEAP_SIZE (OPENPITON_DEFAULT_HART_COUNT ), - .platform_ops_addr = (unsigned long )&platform_ops +const struct fdt_driver openhwgroup_openpiton = { + .match_table = openhwgroup_openpiton_match, + .init = openhwgroup_openpiton_platform_init, }; --2.34.1
--
opensbi mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/opensbi
Signature · 3 lines
opensbi mailing list [email protected] http://lists.infradead.org/mailman/listinfo/opensbi