deleted file mode 100644
@@ -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
deleted file mode 100644
deleted file mode 100644
@@ -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
@@ -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
@@ -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
new file mode 100644
@@ -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
similarity index 82%
rename from platform/fpga/openpiton/platform.c
rename to platform/generic/openhwgroup/openpiton.c
@@ -3,12 +3,12 @@
* 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/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_utils/fdt/fdt_helper.h>
#include <sbi_utils/fdt/fdt_fixup.h>
#include <sbi_utils/ipi/aclint_mswi.h>
@@ -156,25 +156,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,
};
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} | 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%)