|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [xen staging] Revert "xen/arm: add i.MX8M platform support"
commit 3ca5ce7cd05de7b1b87f8026527fa03cd3541c42
Author: Michal Orzel <michal.orzel@xxxxxxx>
AuthorDate: Wed Aug 26 08:20:21 2026 +0200
Commit: Michal Orzel <michal.orzel@xxxxxxx>
CommitDate: Wed Aug 26 08:20:21 2026 +0200
Revert "xen/arm: add i.MX8M platform support"
This reverts commit 6febf12df5a1a4721e03af71af0b15e6d2187aa8 as it is
missing a change that was incorrectly committed with a different patch.
---
xen/arch/arm/platforms/Makefile | 1 -
xen/arch/arm/platforms/imx8m.c | 161 ----------------------------------------
2 files changed, 162 deletions(-)
diff --git a/xen/arch/arm/platforms/Makefile b/xen/arch/arm/platforms/Makefile
index cdf936c50d..bec6e55d1f 100644
--- a/xen/arch/arm/platforms/Makefile
+++ b/xen/arch/arm/platforms/Makefile
@@ -9,7 +9,6 @@ obj-$(CONFIG_ALL_PLAT) += sunxi.o
obj-$(CONFIG_ALL64_PLAT) += thunderx.o
obj-$(CONFIG_ALL64_PLAT) += xgene-storm.o
obj-$(CONFIG_ALL64_PLAT) += brcm-raspberry-pi.o
-obj-$(CONFIG_ALL64_PLAT) += imx8m.o
obj-$(CONFIG_ALL64_PLAT) += imx8qm.o
obj-$(CONFIG_MPSOC_PLATFORM) += xilinx-zynqmp.o
obj-$(CONFIG_MPSOC_PLATFORM) += xilinx-zynqmp-eemi.o
diff --git a/xen/arch/arm/platforms/imx8m.c b/xen/arch/arm/platforms/imx8m.c
deleted file mode 100644
index ad76935f5d..0000000000
--- a/xen/arch/arm/platforms/imx8m.c
+++ /dev/null
@@ -1,161 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-/*
- * i.MX 8M family setup
- *
- * Copyright 2026 Open-EP (E-Paper) Community
- */
-
-#include <xen/sched.h>
-#include <asm/platform.h>
-#include <asm/regs.h>
-#include <asm/smccc.h>
-
-static const char * const imx8m_dt_compat[] __initconst =
-{
- "fsl,imx8mp",
- "fsl,imx8mq",
- "fsl,imx8mm",
- "fsl,imx8mn",
- NULL
-};
-
-#define IMX_SIP_FID(fid) \
- ARM_SMCCC_CALL_VAL(ARM_SMCCC_FAST_CALL, \
- ARM_SMCCC_CONV_64, \
- ARM_SMCCC_OWNER_SIP, \
- (fid))
-
-/*
- * SiP SMC function IDs used by the i.MX8M Linux drivers. There is no
- * public specification for these; the IDs and their subfunctions are
- * extracted from the vendor kernel call sites (see drivers/soc/imx,
- * drivers/devfreq, drivers/remoteproc).
- */
-#define IMX_SIP_F_GPC 0x0 /* GPC power-domain control */
-#define IMX_SIP_F_CPUFREQ 0x1 /* CPU frequency scaling */
-#define IMX_SIP_F_DDR_DVFS 0x4 /* DRAM frequency scaling */
-#define IMX_SIP_F_SRC 0x5 /* SRC: M-core remoteproc start/stop */
-#define IMX_SIP_F_SOC_INFO 0x6 /* read-only SoC info query */
-#define IMX_SIP_F_NOC 0x8 /* NoC QoS priority setup */
-
-#define IMX_SIP_GPC_SF_PM_DOMAIN 0x03
-
-#define IMX_SIP_SRC_SF_M4_START 0x00
-#define IMX_SIP_SRC_SF_M4_STARTED 0x01
-#define IMX_SIP_SRC_SF_M4_STOP 0x02
-
-#define IMX_SIP_NOC_SF_PRIORITY 0x01
-
-static bool imx8m_smc(struct cpu_user_regs *regs)
-{
- uint32_t function_id = get_user_reg(regs, 0);
- uint32_t subfunction_id = get_user_reg(regs, 1);
- struct arm_smccc_res res;
-
- if ( !cpus_have_const_cap(ARM_SMCCC_1_1) )
- {
- printk_once(XENLOG_WARNING
- "imx8m: smc: no SMCCC 1.1 support. Disabling firmware
calls\n");
-
- return false;
- }
-
- /* Only the hardware domain may use the SiP calls */
- if ( !is_hardware_domain(current->domain) )
- {
- gprintk(XENLOG_WARNING, "imx8m: smc: No access\n");
- return false;
- }
-
- /*
- * Forward only the subfunctions the dom0 kernel actually issues. All
- * of these manage hardware that belongs to the hardware domain (power
- * domains, M-core, NoC) or are read-only queries.
- */
- switch ( function_id )
- {
- case IMX_SIP_FID(IMX_SIP_F_GPC):
- if ( subfunction_id != IMX_SIP_GPC_SF_PM_DOMAIN )
- return false;
- break;
-
- /*
- * CPU and DRAM frequency scaling: the hardware domain does not see the
- * whole system and cannot make an informed decision about resources
- * shared with the other domains, so deny both (CPU frequency scaling
- * is denied on the i.MX8QM platform for the same reason).
- */
- case IMX_SIP_FID(IMX_SIP_F_CPUFREQ):
- case IMX_SIP_FID(IMX_SIP_F_DDR_DVFS):
- return false;
-
- case IMX_SIP_FID(IMX_SIP_F_SRC):
- /* SRC: M-core remoteproc start, poll-started and stop. */
- switch ( subfunction_id )
- {
- case IMX_SIP_SRC_SF_M4_START:
- case IMX_SIP_SRC_SF_M4_STARTED:
- case IMX_SIP_SRC_SF_M4_STOP:
- break;
-
- default:
- return false;
- }
- break;
-
- case IMX_SIP_FID(IMX_SIP_F_SOC_INFO):
- break;
-
- case IMX_SIP_FID(IMX_SIP_F_NOC):
- /*
- * NoC QoS priority setup. Only i.MX8MQ issues this at boot;
- * i.MX8MP issues no NoC call, but the platform covers both.
- */
- switch ( subfunction_id )
- {
- case IMX_SIP_NOC_SF_PRIORITY:
- break;
-
- default:
- return false;
- }
- break;
-
- default:
- gprintk(XENLOG_WARNING,
- "imx8m: smc: Unknown function id %x subfunction id %x\n",
- function_id, subfunction_id);
- return false;
- }
-
- arm_smccc_1_1_smc(function_id,
- subfunction_id,
- get_user_reg(regs, 2),
- get_user_reg(regs, 3),
- get_user_reg(regs, 4),
- get_user_reg(regs, 5),
- get_user_reg(regs, 6),
- get_user_reg(regs, 7),
- &res);
-
- set_user_reg(regs, 0, res.a0);
- set_user_reg(regs, 1, res.a1);
- set_user_reg(regs, 2, res.a2);
- set_user_reg(regs, 3, res.a3);
-
- return true;
-}
-
-PLATFORM_START(imx8m, "i.MX 8M")
- .compatible = imx8m_dt_compat,
- .smc = imx8m_smc,
-PLATFORM_END
-
-/*
- * Local variables:
- * mode: C
- * c-file-style: "BSD"
- * c-basic-offset: 4
- * indent-tabs-mode: nil
- * End:
- */
--
generated by git-patchbot for /home/xen/git/xen.git#staging
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |