aboutsummaryrefslogtreecommitdiff
path: root/platform
diff options
context:
space:
mode:
authorInochi Amaoto <inochiama@outlook.com>2023-10-07 11:06:31 +0800
committerAnup Patel <anup@brainfault.org>2023-11-14 21:53:52 +0530
commit3e21b96003526d00a102ad500990014f1daf5136 (patch)
treeb2ebcd119d22928559af8dac1f6576704889f889 /platform
parent492d9b153d00ec2fc2fec89ded42e71df52e27aa (diff)
downloadopensbi-3e21b96003526d00a102ad500990014f1daf5136.zip
opensbi-3e21b96003526d00a102ad500990014f1daf5136.tar.gz
opensbi-3e21b96003526d00a102ad500990014f1daf5136.tar.bz2
platform: generic: thead: initialize PMU by default in thead generic platform
Since all the SoC with thead c9xx cores need this initialization at now, initialize the c9xx pmu in the thead generic platform by default. Signed-off-by: Inochi Amaoto <inochiama@outlook.com> Reviewed-by: Anup Patel <anup@brainfault.org>
Diffstat (limited to 'platform')
-rw-r--r--platform/generic/Kconfig1
-rw-r--r--platform/generic/thead/thead-generic.c13
2 files changed, 12 insertions, 2 deletions
diff --git a/platform/generic/Kconfig b/platform/generic/Kconfig
index 3be75cf..f9e7ed2 100644
--- a/platform/generic/Kconfig
+++ b/platform/generic/Kconfig
@@ -56,6 +56,7 @@ config PLATFORM_STARFIVE_JH7110
config PLATFORM_THEAD
bool "THEAD C9xx support"
select THEAD_C9XX_ERRATA
+ select THEAD_C9XX_PMU
default n
source "$(OPENSBI_SRC_DIR)/platform/generic/andes/Kconfig"
diff --git a/platform/generic/thead/thead-generic.c b/platform/generic/thead/thead-generic.c
index c77140c..72f4aaa 100644
--- a/platform/generic/thead/thead-generic.c
+++ b/platform/generic/thead/thead-generic.c
@@ -8,6 +8,7 @@
#include <platform_override.h>
#include <thead/c9xx_errata.h>
+#include <thead/c9xx_pmu.h>
#include <sbi/sbi_const.h>
#include <sbi/sbi_platform.h>
#include <sbi/sbi_scratch.h>
@@ -29,6 +30,13 @@ static int thead_generic_early_init(bool cold_boot,
return 0;
}
+static int thead_generic_extensions_init(const struct fdt_match *match,
+ struct sbi_hart_features *hfeatures)
+{
+ thead_c9xx_register_pmu_device();
+ return 0;
+}
+
static struct thead_generic_quirks thead_th1520_quirks = {
.errata = THEAD_QUIRK_ERRATA_TLB_FLUSH,
};
@@ -39,6 +47,7 @@ static const struct fdt_match thead_generic_match[] = {
};
const struct platform_override thead_generic = {
- .match_table = thead_generic_match,
- .early_init = thead_generic_early_init,
+ .match_table = thead_generic_match,
+ .early_init = thead_generic_early_init,
+ .extensions_init = thead_generic_extensions_init,
};