> 主题: 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.su...@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