回复: 回复: [EXT] Re: [PATCH v3 02/17] firmware: scmi: smt: Interrupt communication enable

Alice Guo (OSS) alice.guo at oss.nxp.com
Tue Jan 7 04:24:15 CET 2025


> 主题: Re: 回复: [EXT] Re: [PATCH v3 02/17] firmware: scmi: smt: Interrupt
> communication enable
> 
> On 1/6/25 7:17 AM, Alice Guo (OSS) wrote:
> >> On 1/3/25 7:45 AM, Alice Guo wrote:
> >>> From: Viorel Suman <viorel.suman at nxp.com>
> >>>
> >>> When interrupt driven communication is supported
> >>
> >> U-Boot does not use interrupts.
> >>
> >>> , the transport allows
> >>> the caller to choose between interrupt and polling driven
> >>> communications. To make the choice, the channel flags are used.
> >>> i.MX95 uses interrupt driven communication so that Channel flags
> >>> should be set to 1.
> >>
> >> How does this work in U-Boot, which does not use interrupts ?
> >
> > Hi Marek,
> >
> > The clearer explanation will be added in the commit log.
> >
> > This is based on Arm® System Control and Management Interface Platform
> Design Document Version 3.2 (Document number: DEN0056E) 5.1.2. When
> Bit[0] of Channel flags is 1, the System Manager runs on M core will trigger
> general-purpose interrupts to A core. U-Boot polls General-purpose Status (GSR)
> until GIPn is set.
> If U-Boot does polling, why does this bit need to be set, shouldn't the bit be
> cleared instead ?

My commit log may have caused your misunderstanding. If the bit is not set, the System Manager will not request doorbell interrupt. The following is the code from imx-sm:

            if (callee)
            {
                /* Generate completion interrupt */
                if ((buf->channelFlags & SMT_COMP_INT) != 0U)
                {
                    status = RPC_SMT_DoorbellRing(smtChannel);
                }
            }

Best Regards,
Alice Guo


More information about the U-Boot mailing list