public inbox for opensbi@lists.infradead.org
 help / color / mirror / Atom feed
From: "Manuel Hernández Méndez" <maherme.dev@gmail.com>
To: opensbi@lists.infradead.org
Cc: "Manuel Hernández Méndez" <maherme.dev@gmail.com>
Subject: [PATCH v2] platform: openpiton: Move openpiton platform from fpga to generic
Date: Wed, 13 Aug 2025 12:47:59 +0200	[thread overview]
Message-ID: <20250813104759.33276-1-maherme.dev@gmail.com> (raw)
In-Reply-To: <42fb18cc-d579-490f-b7db-89cb8d228ee8@sifive.com>

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 <maherme.dev@gmail.com>
---
 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%)

diff --git a/platform/fpga/openpiton/Kconfig b/platform/fpga/openpiton/Kconfig
deleted file mode 100644
index bc9c86ee..00000000
--- a/platform/fpga/openpiton/Kconfig
+++ /dev/null
@@ -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
diff --git a/platform/fpga/openpiton/configs/defconfig b/platform/fpga/openpiton/configs/defconfig
deleted file mode 100644
index e69de29b..00000000
diff --git a/platform/fpga/openpiton/objects.mk b/platform/fpga/openpiton/objects.mk
deleted file mode 100644
index 1a0ce0c7..00000000
--- a/platform/fpga/openpiton/objects.mk
+++ /dev/null
@@ -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=0x1000
diff --git a/platform/generic/Kconfig b/platform/generic/Kconfig
index a24d6ab2..7559a4bd 100644
--- a/platform/generic/Kconfig
+++ b/platform/generic/Kconfig
@@ -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
diff --git a/platform/generic/configs/defconfig b/platform/generic/configs/defconfig
index c7a6531e..4b93d0bc 100644
--- a/platform/generic/configs/defconfig
+++ b/platform/generic/configs/defconfig
@@ -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
diff --git a/platform/generic/openhwgroup/objects.mk b/platform/generic/openhwgroup/objects.mk
new file mode 100644
index 00000000..ab6ca79d
--- /dev/null
+++ b/platform/generic/openhwgroup/objects.mk
@@ -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
diff --git a/platform/fpga/openpiton/platform.c b/platform/generic/openhwgroup/openpiton.c
similarity index 82%
rename from platform/fpga/openpiton/platform.c
rename to platform/generic/openhwgroup/openpiton.c
index faa299ce..94567abb 100644
--- a/platform/fpga/openpiton/platform.c
+++ b/platform/generic/openhwgroup/openpiton.c
@@ -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
opensbi@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/opensbi

  parent reply	other threads:[~2025-08-13 11:31 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-07-21 16:09 [PATCH] platform: openpiton: Add PMU initialization Manuel Hernández Méndez
2025-07-21 18:36 ` Samuel Holland
2025-08-13 10:42   ` [PATCH] platform: openpiton: Move openpiton platform from fpga to generic Manuel Hernández Méndez
2025-08-13 10:47   ` Manuel Hernández Méndez [this message]
2025-08-26 11:25     ` [PATCH v2] " Anup Patel
2025-08-26 11:42       ` Anup Patel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20250813104759.33276-1-maherme.dev@gmail.com \
    --to=maherme.dev@gmail.com \
    --cc=opensbi@lists.infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox