[PATCH v3 4/4] platform: generic: thead: initialize PMU by default in thead generic platform
Inochi Amaoto
inochiama at outlook.com
Fri Oct 6 20:06:31 PDT 2023
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 at outlook.com>
---
platform/generic/Kconfig | 1 +
platform/generic/thead/thead-generic.c | 13 +++++++++++--
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,
};
--
2.42.0
More information about the opensbi
mailing list