[PATCH v2 06/11] platform: rzfive: Enable Andes PMU for RZ/Five
Yu Chien Peter Lin
peterlin at andestech.com
Thu Oct 19 04:37:08 PDT 2023
Enable Andes PMU extension support for RZ/Five.
This patch also staticize renesas_rzfive_early_init() as
it is not used outside of this unit.
Signed-off-by: Yu Chien Peter Lin <peterlin at andestech.com>
Reviewed-by: Leo Yu-Chi Liang <ycliang at andestech.com>
---
Changes v1 -> v2:
- Implement renesas_rzfive_extensions_init()
- staticize renesas_rzfive_early_init()
---
platform/generic/Kconfig | 1 +
platform/generic/renesas/rzfive/rzfive.c | 16 +++++++++++++++-
2 files changed, 16 insertions(+), 1 deletion(-)
diff --git a/platform/generic/Kconfig b/platform/generic/Kconfig
index 9b2f9c7..d6dafef 100644
--- a/platform/generic/Kconfig
+++ b/platform/generic/Kconfig
@@ -38,6 +38,7 @@ config PLATFORM_RENESAS_RZFIVE
bool "Renesas RZ/Five support"
select ANDES45_PMA
select ANDES_SBI
+ select ANDES_PMU
default n
config PLATFORM_SIFIVE_FU540
diff --git a/platform/generic/renesas/rzfive/rzfive.c b/platform/generic/renesas/rzfive/rzfive.c
index a69797b..2f772c8 100644
--- a/platform/generic/renesas/rzfive/rzfive.c
+++ b/platform/generic/renesas/rzfive/rzfive.c
@@ -5,9 +5,11 @@
*/
#include <andes/andes45_pma.h>
+#include <andes/andes_pmu.h>
#include <andes/andes_sbi.h>
#include <platform_override.h>
#include <sbi/sbi_domain.h>
+#include <sbi/sbi_error.h>
#include <sbi_utils/fdt/fdt_helper.h>
static const struct andes45_pma_region renesas_rzfive_pma_regions[] = {
@@ -29,7 +31,7 @@ static int renesas_rzfive_final_init(bool cold_boot, const struct fdt_match *mat
array_size(renesas_rzfive_pma_regions));
}
-int renesas_rzfive_early_init(bool cold_boot, const struct fdt_match *match)
+static int renesas_rzfive_early_init(bool cold_boot, const struct fdt_match *match)
{
/*
* Renesas RZ/Five RISC-V SoC has Instruction local memory and
@@ -47,6 +49,17 @@ int renesas_rzfive_early_init(bool cold_boot, const struct fdt_match *match)
SBI_DOMAIN_MEMREGION_M_RWX);
}
+static int renesas_rzfive_extensions_init(const struct fdt_match *match,
+ struct sbi_hart_features *hfeatures)
+{
+ int rc;
+ rc = andes_pmu_init();
+ if (rc && rc != SBI_ENOTSUPP)
+ return rc;
+
+ return 0;
+}
+
static const struct fdt_match renesas_rzfive_match[] = {
{ .compatible = "renesas,r9a07g043f01" },
{ /* sentinel */ }
@@ -57,4 +70,5 @@ const struct platform_override renesas_rzfive = {
.early_init = renesas_rzfive_early_init,
.final_init = renesas_rzfive_final_init,
.vendor_ext_provider = andes_sbi_vendor_ext_provider,
+ .extensions_init = renesas_rzfive_extensions_init,
};
--
2.34.1
More information about the opensbi
mailing list