> -----邮件原件----- > 发件人: Marek Vasut <ma...@denx.de> > 发送时间: 2025年1月7日 19:11 > 收件人: Alice Guo (OSS) <alice....@oss.nxp.com>; Tom Rini > <tr...@konsulko.com>; Stefano Babic <sba...@denx.de>; Fabio Estevam > <feste...@gmail.com>; dl-uboot-imx <uboot-...@nxp.com>; Lukasz > Majewski <lu...@denx.de>; Sean Anderson <sean...@gmail.com>; Simon > Glass <s...@chromium.org>; Alper Nebi Yasak <alpernebiya...@gmail.com> > 抄送: u-boot@lists.denx.de; thar...@gateworks.com; Viorel Suman > <viorel.su...@nxp.com>; Ye Li <ye...@nxp.com> > 主题: Re: 回复: 回复: [EXT] Re: [PATCH v3 02/17] firmware: scmi: smt: > Interrupt communication enable > > On 1/7/25 4:24 AM, Alice Guo (OSS) wrote: > >> 主题: 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); > > } > > } > Can the SM be updated instead ?
System Manager not only interacts with U-Boot, but also with Linux/QNX/RTOS. System Manager cannot be changed.