summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTekkaman Ninja <tekkamanninja@163.com>2021-01-24 17:46:44 +0300
committerTekkaman Ninja <tekkamanninja@163.com>2021-04-28 16:59:10 +0300
commitfb50238d6e8665fdd637a95d95ed6f26fdc6e671 (patch)
tree9bf5dd3e8296939437f38243346ae8cd6ab2fddd
parent56850b495bc1818d4a02312f27613411ab67c69b (diff)
downloadopensbi-fb50238d6e8665fdd637a95d95ed6f26fdc6e671.tar.xz
add starfive_vic7100 support in generic
-rw-r--r--platform/generic/objects.mk1
-rw-r--r--platform/generic/platform.c2
-rw-r--r--platform/generic/starfive_vic7100.c38
3 files changed, 41 insertions, 0 deletions
diff --git a/platform/generic/objects.mk b/platform/generic/objects.mk
index d6c8a42..81f2333 100644
--- a/platform/generic/objects.mk
+++ b/platform/generic/objects.mk
@@ -8,4 +8,5 @@
#
platform-objs-y += platform.o
+platform-objs-y += starfive_vic7100.o
platform-objs-y += sifive_fu540.o
diff --git a/platform/generic/platform.c b/platform/generic/platform.c
index 8c1e06f..62c4a8e 100644
--- a/platform/generic/platform.c
+++ b/platform/generic/platform.c
@@ -23,9 +23,11 @@
#include <sbi_utils/reset/fdt_reset.h>
extern const struct platform_override sifive_fu540;
+extern const struct platform_override starfive_vic7100;
static const struct platform_override *special_platforms[] = {
&sifive_fu540,
+ &starfive_vic7100,
};
static const struct platform_override *generic_plat = NULL;
diff --git a/platform/generic/starfive_vic7100.c b/platform/generic/starfive_vic7100.c
new file mode 100644
index 0000000..812f221
--- /dev/null
+++ b/platform/generic/starfive_vic7100.c
@@ -0,0 +1,38 @@
+/*
+ * SPDX-License-Identifier: BSD-2-Clause
+ *
+ * Copyright (c) 2020 Western Digital Corporation or its affiliates.
+ *
+ * Authors:
+ * Anup Patel <anup.patel@wdc.com>
+ */
+
+#include <sbi/sbi_domain.h>
+#include <sbi/sbi_math.h>
+#include <platform_override.h>
+#include <sbi_utils/fdt/fdt_helper.h>
+#include <sbi_utils/fdt/fdt_fixup.h>
+
+static u64 starfive_vic7100_tlbr_flush_limit(const struct fdt_match *match)
+{
+ return 0;
+}
+
+static int starfive_vic7100_fdt_fixup(void *fdt, const struct fdt_match *match)
+{
+ fdt_reserved_memory_nomap_fixup(fdt);
+
+ return 0;
+}
+
+static const struct fdt_match starfive_vic7100_match[] = {
+ { .compatible = "starfive,fu74-g000" },
+ { .compatible = "sifive,freedom-u74-arty" },
+ { },
+};
+
+const struct platform_override starfive_vic7100 = {
+ .match_table = starfive_vic7100_match,
+ .tlbr_flush_limit = starfive_vic7100_tlbr_flush_limit,
+ .fdt_fixup = starfive_vic7100_fdt_fixup,
+};