summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/platform/fpga-ariane.md4
-rw-r--r--docs/platform/generic.md2
-rw-r--r--docs/platform/platform.md5
-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
-rwxr-xr-xscripts/create-binary-archive.sh1
11 files changed, 29 insertions, 83 deletions
diff --git a/docs/platform/fpga-ariane.md b/docs/platform/fpga-ariane.md
index 9b1e1566..720cb172 100644
--- a/docs/platform/fpga-ariane.md
+++ b/docs/platform/fpga-ariane.md
@@ -13,7 +13,7 @@ The FPGA SoC currently contains the following peripherals:
- Bootrom containing zero stage bootloader and device tree.
To build platform specific library and firmwares, provide the
-*PLATFORM=fpga/ariane* parameter to the top level `make` command.
+*PLATFORM=generic* parameter to the top level `make` command.
Platform Options
----------------
@@ -26,7 +26,7 @@ Building Ariane FPGA Platform
**Linux Kernel Payload**
```
-make PLATFORM=fpga/ariane FW_PAYLOAD_PATH=<linux_build_directory>/arch/riscv/boot/Image
+make PLATFORM=generic FW_PAYLOAD_PATH=<linux_build_directory>/arch/riscv/boot/Image
```
Booting Ariane FPGA Platform
diff --git a/docs/platform/generic.md b/docs/platform/generic.md
index 495baa73..c48d6a9a 100644
--- a/docs/platform/generic.md
+++ b/docs/platform/generic.md
@@ -48,6 +48,7 @@ RISC-V Platforms Using Generic Platform
* **Spike** (*[spike.md]*)
* **T-HEAD C9xx series Processors** (*[thead-c9xx.md]*)
* **OpenPiton FPGA SoC** (*[fpga-openpiton.md]*)
+* **Ariane FPGA SoC** (*[fpga-ariane.md]*)
[andes-ae350.md]: andes-ae350.md
[qemu_virt.md]: qemu_virt.md
@@ -57,3 +58,4 @@ RISC-V Platforms Using Generic Platform
[spike.md]: spike.md
[thead-c9xx.md]: thead-c9xx.md
[fpga-openpiton.md]: fpga-openpiton.md
+[fpga-ariane.md]: fpga-ariane.md
diff --git a/docs/platform/platform.md b/docs/platform/platform.md
index 048c2c4f..b77112ff 100644
--- a/docs/platform/platform.md
+++ b/docs/platform/platform.md
@@ -21,10 +21,6 @@ OpenSBI currently supports the following virtual and hardware platforms:
* **Kendryte K210 SoC**: Platform support for the Kendryte K210 SoC used on
boards such as the Kendryte KD233 or the Sipeed MAIX Dock.
-* **Ariane FPGA SoC**: Platform support for the Ariane FPGA SoC used on
- Genesys 2 board. More details on this platform can be found in the file
- *[fpga-ariane.md]*.
-
* **Andes AE350 SoC**: Platform support for the Andes's SoC (AE350). More
details on this platform can be found in the file *[andes-ae350.md]*.
@@ -48,7 +44,6 @@ comments to facilitate the implementation.
[generic.md]: generic.md
[qemu_virt.md]: qemu_virt.md
[sifive_fu540.md]: sifive_fu540.md
-[fpga-ariane.md]: fpga-ariane.md
[andes-ae350.md]: andes-ae350.md
[thead-c910.md]: thead-c910.md
[spike.md]: spike.md
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
diff --git a/scripts/create-binary-archive.sh b/scripts/create-binary-archive.sh
index 19ae9045..6ea4c9c5 100755
--- a/scripts/create-binary-archive.sh
+++ b/scripts/create-binary-archive.sh
@@ -101,7 +101,6 @@ build_opensbi() {
# Setup 64-bit platform list
BUILD_PLATFORM_SUBDIR+=("nuclei/ux600")
BUILD_PLATFORM_SUBDIR+=("kendryte/k210")
- BUILD_PLATFORM_SUBDIR+=("fpga/ariane")
BUILD_PLATFORM_SUBDIR+=("generic")
;;
*)