summaryrefslogtreecommitdiff
path: root/platform
diff options
context:
space:
mode:
authorManuel Hernández Méndez <[email protected]>2025-10-23 11:03:47 +0200
committerAnup Patel <[email protected]>2025-11-05 21:22:41 +0530
commite8dfa55f3d6ada2e1f71671213bd3a68ec96ea76 (patch)
treeb3270a19fcaf47c3e6636aaf0b22ecb288b38ff8 /platform
parent834d0d9f2678170efdcef50960013584000e0a43 (diff)
platform: ariane: Move ariane platform from fpga to generic
The Ariane 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 Ariane 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]> Reviewed-by: Anup Patel <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Anup Patel <[email protected]>
Diffstat (limited to 'platform')
-rw-r--r--platform/fpga/ariane/Kconfig10
-rw-r--r--platform/fpga/ariane/configs/defconfig0
-rw-r--r--platform/fpga/ariane/objects.mk42
-rw-r--r--platform/generic/Kconfig4
-rw-r--r--platform/generic/configs/defconfig1
-rw-r--r--platform/generic/openhwgroup/ariane.c (renamed from platform/fpga/ariane/platform.c)40
-rw-r--r--platform/generic/openhwgroup/objects.mk3
7 files changed, 25 insertions, 75 deletions
diff --git a/platform/fpga/ariane/Kconfig b/platform/fpga/ariane/Kconfig
deleted file mode 100644
index e1f118b6..00000000
--- a/platform/fpga/ariane/Kconfig
+++ /dev/null
@@ -1,10 +0,0 @@
-# SPDX-License-Identifier: BSD-2-Clause
-
-config PLATFORM_ARIANE_FPGA
- bool
- select FDT
- select IPI_MSWI
- select IRQCHIP_PLIC
- select SERIAL_UART8250
- select TIMER_MTIMER
- default y
diff --git a/platform/fpga/ariane/configs/defconfig b/platform/fpga/ariane/configs/defconfig
deleted file mode 100644
index e69de29b..00000000
--- a/platform/fpga/ariane/configs/defconfig
+++ /dev/null
diff --git a/platform/fpga/ariane/objects.mk b/platform/fpga/ariane/objects.mk
deleted file mode 100644
index d1177f41..00000000
--- a/platform/fpga/ariane/objects.mk
+++ /dev/null
@@ -1,42 +0,0 @@
-#
-# SPDX-License-Identifier: BSD-2-Clause
-#
-# Copyright (C) 2019 FORTH-ICS/CARV
-# Panagiotis Peristerakis <[email protected]>
-#
-
-# Compiler flags
-platform-cppflags-y =
-platform-cflags-y =
-platform-asflags-y =
-platform-ldflags-y =
-
-# Object 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 aedc59a5..25b8886b 100644
--- a/platform/generic/Kconfig
+++ b/platform/generic/Kconfig
@@ -47,6 +47,10 @@ config PLATFORM_OPENHWGROUP_OPENPITON
bool "OpenHWGroup Openpiton support"
default n
+config PLATFORM_OPENHWGROUP_ARIANE
+ bool "OpenHWGroup Ariane 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 9e040ac3..3896b0e0 100644
--- a/platform/generic/configs/defconfig
+++ b/platform/generic/configs/defconfig
@@ -1,6 +1,7 @@
CONFIG_PLATFORM_ALLWINNER_D1=y
CONFIG_PLATFORM_ANDES_AE350=y
CONFIG_PLATFORM_ANDES_QILAI=y
+CONFIG_PLATFORM_OPENHWGROUP_ARIANE=y
CONFIG_PLATFORM_OPENHWGROUP_OPENPITON=y
CONFIG_PLATFORM_RENESAS_RZFIVE=y
CONFIG_PLATFORM_SIFIVE_FU540=y
diff --git a/platform/fpga/ariane/platform.c b/platform/generic/openhwgroup/ariane.c
index 1b6b052f..6931e3f0 100644
--- a/platform/fpga/ariane/platform.c
+++ b/platform/generic/openhwgroup/ariane.c
@@ -4,12 +4,7 @@
* Panagiotis Peristerakis <[email protected]>
*/
-#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>
@@ -121,23 +116,22 @@ static int ariane_timer_init(void)
return aclint_mtimer_cold_init(&mtimer, NULL);
}
-/*
- * Platform descriptor.
- */
-const struct sbi_platform_operations platform_ops = {
- .early_init = ariane_early_init,
- .final_init = ariane_final_init,
- .irqchip_init = ariane_irqchip_init,
- .timer_init = ariane_timer_init,
+static int openhwgroup_ariane_platform_init(const void *fdt, int nodeoff, const struct fdt_match *match)
+{
+ generic_platform_ops.early_init = ariane_early_init;
+ generic_platform_ops.timer_init = ariane_timer_init;
+ generic_platform_ops.irqchip_init = ariane_irqchip_init;
+ generic_platform_ops.final_init = ariane_final_init;
+
+ return 0;
+}
+
+static const struct fdt_match openhwgroup_ariane_match[] = {
+ { .compatible = "eth,ariane-bare-dev" },
+ { },
};
-const struct sbi_platform platform = {
- .opensbi_version = OPENSBI_VERSION,
- .platform_version = SBI_PLATFORM_VERSION(0x0, 0x01),
- .name = "ARIANE RISC-V",
- .features = SBI_PLATFORM_DEFAULT_FEATURES,
- .hart_count = ARIANE_HART_COUNT,
- .hart_stack_size = SBI_PLATFORM_DEFAULT_HART_STACK_SIZE,
- .heap_size = SBI_PLATFORM_DEFAULT_HEAP_SIZE(ARIANE_HART_COUNT),
- .platform_ops_addr = (unsigned long)&platform_ops
+const struct fdt_driver openhwgroup_ariane = {
+ .match_table = openhwgroup_ariane_match,
+ .init = openhwgroup_ariane_platform_init,
};
diff --git a/platform/generic/openhwgroup/objects.mk b/platform/generic/openhwgroup/objects.mk
index ab6ca79d..2906dd9b 100644
--- a/platform/generic/openhwgroup/objects.mk
+++ b/platform/generic/openhwgroup/objects.mk
@@ -6,3 +6,6 @@
carray-platform_override_modules-$(CONFIG_PLATFORM_OPENHWGROUP_OPENPITON) += openhwgroup_openpiton
platform-objs-$(CONFIG_PLATFORM_OPENHWGROUP_OPENPITON) += openhwgroup/openpiton.o
+
+carray-platform_override_modules-$(CONFIG_PLATFORM_OPENHWGROUP_ARIANE) += openhwgroup_ariane
+platform-objs-$(CONFIG_PLATFORM_OPENHWGROUP_ARIANE) += openhwgroup/ariane.o