回复: [EXT] Re: [PATCH v1 4/8] imx9: scmi: Update the files under arch/arm/mach-imx/imx9/scmi/ to support i.MX94
Alice Guo (OSS)
alice.guo at oss.nxp.com
Thu Sep 11 08:42:22 CEST 2025
> -----邮件原件-----
> 发件人: E Shattow <e at freeshell.de>
> 发送时间: 2025年9月11日 9:57
> 收件人: Alice Guo (OSS) <alice.guo at oss.nxp.com>; Stefano Babic
> <sbabic at nabladev.com>; Fabio Estevam <festevam at gmail.com>;
> dl-uboot-imx <uboot-imx at nxp.com>; Tom Rini <trini at konsulko.com>; Alice
> Guo <alice.guo at nxp.com>
> 抄送: u-boot at lists.denx.de; Ye Li <ye.li at nxp.com>; Peng Fan
> <peng.fan at nxp.com>; Jacky Bai <ping.bai at nxp.com>
> 主题: [EXT] Re: [PATCH v1 4/8] imx9: scmi: Update the files under
> arch/arm/mach-imx/imx9/scmi/ to support i.MX94
> > --- a/arch/arm/mach-imx/imx9/scmi/clock.c
> > +++ b/arch/arm/mach-imx/imx9/scmi/clock.c
> > @@ -6,16 +6,18 @@
> > #include <asm/arch/clock.h>
> > #include <dm/uclass.h>
> > #include <scmi_agent.h>
> > +#include <scmi_nxp_protocols.h>
>
> > #include "../../../../../dts/upstream/src/arm64/freescale/imx95-clock.h"
>
> What is this? I asked and it was suggested to send a patch upstream, but they
> said no. Ref:
> https://lore.ker/
> nel.org%2Flkml%2FPAXPR04MB845970863A16718967270D1A880EA%40PAX
> PR04MB8459.eurprd04.prod.outlook.com%2F&data=05%7C02%7Calice.guo%
> 40nxp.com%7C35789f31bec8404e95ac08ddf0d67aea%7C686ea1d3bc2b4c6f
> a92cd99c5c301635%7C0%7C0%7C638931526200310361%7CUnknown%7CT
> WFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXa
> W4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=BLR6u
> pUWK8XEkHMAt5m0X%2BAn8gfONvDqwL6gULQZ2Oc%3D&reserved=0
This line of code is unnecessary and can be deleted.
> > +#include "common.h"
> >
> > u32 get_arm_core_clk(void)
> > {
> > u32 val;
> >
> > - val = imx_clk_scmi_get_rate(IMX95_CLK_SEL_A55C0);
> > + val = imx_clk_scmi_get_rate(SCMI_CLK(SEL_A55C0));
> > if (val)
> > return val;
> > - return imx_clk_scmi_get_rate(IMX95_CLK_A55);
> > + return imx_clk_scmi_get_rate(SCMI_CLK(A55));
> > }
> >
> > void init_uart_clk(u32 index)
> > @@ -24,13 +26,13 @@ void init_uart_clk(u32 index)
> >
> > switch (index) {
> > case 0:
> > - clock_id = IMX95_CLK_LPUART1;
> > + clock_id = SCMI_CLK(LPUART1);
> > break;
> > case 1:
> > - clock_id = IMX95_CLK_LPUART2;
> > + clock_id = SCMI_CLK(LPUART2);
> > break;
> > case 2:
> > - clock_id = IMX95_CLK_LPUART3;
> > + clock_id = SCMI_CLK(LPUART3);
> > break;
> > default:
> > return;
> > @@ -38,7 +40,7 @@ void init_uart_clk(u32 index)
> >
> > /* 24MHz */
> > imx_clk_scmi_enable(clock_id, false);
> > - imx_clk_scmi_set_parent(clock_id, IMX95_CLK_24M);
> > + imx_clk_scmi_set_parent(clock_id, SCMI_CLK(24M));
> > imx_clk_scmi_set_rate(clock_id, 24000000);
> > imx_clk_scmi_enable(clock_id, true); } @@ -49,19 +51,19 @@
> > unsigned int mxc_get_clock(enum mxc_clock clk)
> > case MXC_ARM_CLK:
> > return get_arm_core_clk();
> > case MXC_IPG_CLK:
> > - return imx_clk_scmi_get_rate(IMX95_CLK_BUSWAKEUP);
> > + return imx_clk_scmi_get_rate(SCMI_CLK(BUSWAKEUP));
> > case MXC_CSPI_CLK:
> > - return imx_clk_scmi_get_rate(IMX95_CLK_LPSPI1);
> > + return imx_clk_scmi_get_rate(SCMI_CLK(LPSPI1));
> > case MXC_ESDHC_CLK:
> > - return imx_clk_scmi_get_rate(IMX95_CLK_USDHC1);
> > + return imx_clk_scmi_get_rate(SCMI_CLK(USDHC1));
> > case MXC_ESDHC2_CLK:
> > - return imx_clk_scmi_get_rate(IMX95_CLK_USDHC2);
> > + return imx_clk_scmi_get_rate(SCMI_CLK(USDHC2));
> > case MXC_ESDHC3_CLK:
> > - return imx_clk_scmi_get_rate(IMX95_CLK_USDHC3);
> > + return imx_clk_scmi_get_rate(SCMI_CLK(USDHC3));
> > case MXC_UART_CLK:
> > - return imx_clk_scmi_get_rate(IMX95_CLK_LPUART1);
> > + return imx_clk_scmi_get_rate(SCMI_CLK(LPUART1));
> > case MXC_FLEXSPI_CLK:
> > - return imx_clk_scmi_get_rate(IMX95_CLK_FLEXSPI1);
> > + return imx_clk_scmi_get_rate(SCMI_CLK(FLEXSPI1));
> > default:
> > return -1;
> > };
> > diff --git a/arch/arm/mach-imx/imx9/scmi/common.h
> > b/arch/arm/mach-imx/imx9/scmi/common.h
> > new file mode 100644
> > index 00000000000..df26ecff3e4
> > --- /dev/null
> > +++ b/arch/arm/mach-imx/imx9/scmi/common.h
> > @@ -0,0 +1,41 @@
> > +/* SPDX-License-Identifier: GPL-2.0+ */
> > +/*
> > + * Copyright 2025 NXP
> > + */
> > +
> > +#ifndef _SCMI_CLOCK_COMMON_H_
> > +#define _SCMI_CLOCK_COMMON_H_
> > +
>
> > +#ifdef CONFIG_IMX94
> > +#define IMX_PLAT 94
> > +#include <../dts/upstream/src/arm64/freescale/imx94-clock.h>
> > +#include <../dts/upstream/src/arm64/freescale/imx94-power.h>
> > +
> > +#define IMX94_CLK_FLEXSPI1 IMX94_CLK_XSPI1 #endif
> > +
> > +#ifdef CONFIG_IMX95
> > +#define IMX_PLAT 95
> > +#include <../dts/upstream/src/arm64/freescale/imx95-clock.h>
> > +#include <../dts/upstream/src/arm64/freescale/imx95-power.h>
> > +
> > +#define IMX95_PD_M70 IMX95_PD_M7
> > +#endif
>
> Again this weird include relative-global path... not good.
>
> I don't know what it should be, sorry. It is fragile and we should do something
> better.
>
These files are derived from the Linux source code.
Best Regards,
Alice Guo
More information about the U-Boot
mailing list