System Manager Firmware supports getting board information, add
documentation for this API
Signed-off-by: Peng Fan <peng.fan@nxp.com>
---
drivers/firmware/arm_scmi/vendors/imx/imx95.rst | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/drivers/firmware/arm_scmi/vendors/imx/imx95.rst b/drivers/firmware/arm_scmi/vendors/imx/imx95.rst
index 4e246a78a042a79eb81be35632079c7626bbbe57..ac82da0d1e5ce5fa65a5771286aaebb748c8a4e6 100644
--- a/drivers/firmware/arm_scmi/vendors/imx/imx95.rst
+++ b/drivers/firmware/arm_scmi/vendors/imx/imx95.rst
@@ -1670,6 +1670,26 @@ protocol_id: 0x84
|uint32 syslog[N] |Log data array, N is defined in bits[11:0] of numLogflags|
+--------------------+---------------------------------------------------------+
+MISC_BOARD_INFO
+~~~~~~~~~~~~~~~
+
+message_id: 0xE
+protocol_id: 0x84
+
++--------------------+---------------------------------------------------------+
+|Return values |
++--------------------+---------------------------------------------------------+
+|Name |Description |
++--------------------+---------------------------------------------------------+
+|int32 status |SUCCESS: config name return |
+| |NOT_SUPPORTED: name not available |
++--------------------+---------------------------------------------------------+
+|uint32 attributes |Board specific attributes |
++--------------------+---------------------------------------------------------+
+|uint8 boardname[16] |Board name. Null terminated ASCII string of up |
+| |to 16 bytes in length |
++--------------------+---------------------------------------------------------+
+
NEGOTIATE_PROTOCOL_VERSION
~~~~~~~~~~~~~~~~~~~~~~~~~~
--
2.37.1
On Fri, Jun 27, 2025 at 02:03:44PM +0800, Peng Fan wrote: > System Manager Firmware supports getting board information, add > documentation for this API > > Signed-off-by: Peng Fan <peng.fan@nxp.com> > --- > drivers/firmware/arm_scmi/vendors/imx/imx95.rst | 20 ++++++++++++++++++++ > 1 file changed, 20 insertions(+) > > diff --git a/drivers/firmware/arm_scmi/vendors/imx/imx95.rst b/drivers/firmware/arm_scmi/vendors/imx/imx95.rst > index 4e246a78a042a79eb81be35632079c7626bbbe57..ac82da0d1e5ce5fa65a5771286aaebb748c8a4e6 100644 > --- a/drivers/firmware/arm_scmi/vendors/imx/imx95.rst > +++ b/drivers/firmware/arm_scmi/vendors/imx/imx95.rst > @@ -1670,6 +1670,26 @@ protocol_id: 0x84 > |uint32 syslog[N] |Log data array, N is defined in bits[11:0] of numLogflags| > +--------------------+---------------------------------------------------------+ > > +MISC_BOARD_INFO > +~~~~~~~~~~~~~~~ > + > +message_id: 0xE > +protocol_id: 0x84 > + > ++--------------------+---------------------------------------------------------+ > +|Return values | > ++--------------------+---------------------------------------------------------+ > +|Name |Description | > ++--------------------+---------------------------------------------------------+ > +|int32 status |SUCCESS: config name return | > +| |NOT_SUPPORTED: name not available | > ++--------------------+---------------------------------------------------------+ > +|uint32 attributes |Board specific attributes | As suggested, please add current definition of the values. > ++--------------------+---------------------------------------------------------+ > +|uint8 boardname[16] |Board name. Null terminated ASCII string of up | > +| |to 16 bytes in length | How does this match with the information from the DT ? Will they be in sync ? I understand NXP being silicon vendor, wants to have vendor extensions. But any board information comes from the OEMs/ODMs. Do you expect them to change their SCMI firmware. That's not the general expectation, so I am bit puzzled on this whole BOARD_INFO interface. Please help me understand the motivation for this new interface. -- Regards, Sudeep
On Wed, Jul 02, 2025 at 04:21:24PM +0100, Sudeep Holla wrote: >On Fri, Jun 27, 2025 at 02:03:44PM +0800, Peng Fan wrote: >> System Manager Firmware supports getting board information, add >> documentation for this API >> >> Signed-off-by: Peng Fan <peng.fan@nxp.com> >> --- >> drivers/firmware/arm_scmi/vendors/imx/imx95.rst | 20 ++++++++++++++++++++ >> 1 file changed, 20 insertions(+) >> >> diff --git a/drivers/firmware/arm_scmi/vendors/imx/imx95.rst b/drivers/firmware/arm_scmi/vendors/imx/imx95.rst >> index 4e246a78a042a79eb81be35632079c7626bbbe57..ac82da0d1e5ce5fa65a5771286aaebb748c8a4e6 100644 >> --- a/drivers/firmware/arm_scmi/vendors/imx/imx95.rst >> +++ b/drivers/firmware/arm_scmi/vendors/imx/imx95.rst >> @@ -1670,6 +1670,26 @@ protocol_id: 0x84 >> |uint32 syslog[N] |Log data array, N is defined in bits[11:0] of numLogflags| >> +--------------------+---------------------------------------------------------+ >> >> +MISC_BOARD_INFO >> +~~~~~~~~~~~~~~~ >> + >> +message_id: 0xE >> +protocol_id: 0x84 >> + >> ++--------------------+---------------------------------------------------------+ >> +|Return values | >> ++--------------------+---------------------------------------------------------+ >> +|Name |Description | >> ++--------------------+---------------------------------------------------------+ >> +|int32 status |SUCCESS: config name return | >> +| |NOT_SUPPORTED: name not available | >> ++--------------------+---------------------------------------------------------+ >> +|uint32 attributes |Board specific attributes | > >As suggested, please add current definition of the values. Per our firmware owner: Future expansion without breaking backwards compatibility (message size and parameters). > >> ++--------------------+---------------------------------------------------------+ >> +|uint8 boardname[16] |Board name. Null terminated ASCII string of up | >> +| |to 16 bytes in length | > >How does this match with the information from the DT ? Will they be in sync ? >I understand NXP being silicon vendor, wants to have vendor extensions. But >any board information comes from the OEMs/ODMs. Do you expect them to change >their SCMI firmware. That's not the general expectation, so I am bit puzzled >on this whole BOARD_INFO interface. Please help me understand the motivation >for this new interface. For example, i.MX95 has two die size, 19x19 and 15x15. With the two variants, there are two boards: i.MX95-19x19-EVK, i.MX95-15x15-EVK. However we use one System Manager firmware binary to support both boards, so System Manager reports board name "i.MX95 EVK". But in dts, we use "fsl,imx95-19x19-evk" and "fsl,imx95-15x15-evk". So they are different. Our System Manager firmware is public and open-source, OEM/ODMs could update the code as what they wanna, including board name. Loop our firmware owner here, in case any he could help complement. Thanks, Peng > >-- >Regards, >Sudeep
On Fri, Jun 27, 2025 at 02:03:44PM +0800, Peng Fan wrote: > System Manager Firmware supports getting board information, add > documentation for this API > > Signed-off-by: Peng Fan <peng.fan@nxp.com> > --- > drivers/firmware/arm_scmi/vendors/imx/imx95.rst | 20 ++++++++++++++++++++ > 1 file changed, 20 insertions(+) > > diff --git a/drivers/firmware/arm_scmi/vendors/imx/imx95.rst b/drivers/firmware/arm_scmi/vendors/imx/imx95.rst > index 4e246a78a042a79eb81be35632079c7626bbbe57..ac82da0d1e5ce5fa65a5771286aaebb748c8a4e6 100644 > --- a/drivers/firmware/arm_scmi/vendors/imx/imx95.rst > +++ b/drivers/firmware/arm_scmi/vendors/imx/imx95.rst > @@ -1670,6 +1670,26 @@ protocol_id: 0x84 > |uint32 syslog[N] |Log data array, N is defined in bits[11:0] of numLogflags| > +--------------------+---------------------------------------------------------+ > > +MISC_BOARD_INFO > +~~~~~~~~~~~~~~~ > + > +message_id: 0xE > +protocol_id: 0x84 > + > ++--------------------+---------------------------------------------------------+ > +|Return values | > ++--------------------+---------------------------------------------------------+ > +|Name |Description | > ++--------------------+---------------------------------------------------------+ > +|int32 status |SUCCESS: config name return | > +| |NOT_SUPPORTED: name not available | > ++--------------------+---------------------------------------------------------+ > +|uint32 attributes |Board specific attributes | ..what's in here ? > ++--------------------+---------------------------------------------------------+ > +|uint8 boardname[16] |Board name. Null terminated ASCII string of up | > +| |to 16 bytes in length | > ++--------------------+---------------------------------------------------------+ > + > NEGOTIATE_PROTOCOL_VERSION > ~~~~~~~~~~~~~~~~~~~~~~~~~~ > ..other than this, LGTM. Reviewed;by: Cristian Marussi <cristian.marussi@arm.com> Thanks, Cristian
On Fri, Jun 27, 2025 at 01:46:03PM +0100, Cristian Marussi wrote: >On Fri, Jun 27, 2025 at 02:03:44PM +0800, Peng Fan wrote: >> System Manager Firmware supports getting board information, add >> documentation for this API >> >> Signed-off-by: Peng Fan <peng.fan@nxp.com> >> --- >> drivers/firmware/arm_scmi/vendors/imx/imx95.rst | 20 ++++++++++++++++++++ >> 1 file changed, 20 insertions(+) >> >> diff --git a/drivers/firmware/arm_scmi/vendors/imx/imx95.rst b/drivers/firmware/arm_scmi/vendors/imx/imx95.rst >> index 4e246a78a042a79eb81be35632079c7626bbbe57..ac82da0d1e5ce5fa65a5771286aaebb748c8a4e6 100644 >> --- a/drivers/firmware/arm_scmi/vendors/imx/imx95.rst >> +++ b/drivers/firmware/arm_scmi/vendors/imx/imx95.rst >> @@ -1670,6 +1670,26 @@ protocol_id: 0x84 >> |uint32 syslog[N] |Log data array, N is defined in bits[11:0] of numLogflags| >> +--------------------+---------------------------------------------------------+ >> >> +MISC_BOARD_INFO >> +~~~~~~~~~~~~~~~ >> + >> +message_id: 0xE >> +protocol_id: 0x84 >> + >> ++--------------------+---------------------------------------------------------+ >> +|Return values | >> ++--------------------+---------------------------------------------------------+ >> +|Name |Description | >> ++--------------------+---------------------------------------------------------+ >> +|int32 status |SUCCESS: config name return | >> +| |NOT_SUPPORTED: name not available | >> ++--------------------+---------------------------------------------------------+ >> +|uint32 attributes |Board specific attributes | > >..what's in here ? It is 0 as of now, per my understanding, it could be to any value that board owner wanna. Anyway, I need check with our Firmware owners, then update you. > >> ++--------------------+---------------------------------------------------------+ >> +|uint8 boardname[16] |Board name. Null terminated ASCII string of up | >> +| |to 16 bytes in length | >> ++--------------------+---------------------------------------------------------+ >> + >> NEGOTIATE_PROTOCOL_VERSION >> ~~~~~~~~~~~~~~~~~~~~~~~~~~ >> > >..other than this, LGTM. > >Reviewed;by: Cristian Marussi <cristian.marussi@arm.com> Thanks, Peng > >Thanks, >Cristian
On Mon, Jun 30, 2025 at 10:45:58AM +0800, Peng Fan wrote: >On Fri, Jun 27, 2025 at 01:46:03PM +0100, Cristian Marussi wrote: >>On Fri, Jun 27, 2025 at 02:03:44PM +0800, Peng Fan wrote: >>> System Manager Firmware supports getting board information, add >>> documentation for this API >>> >>> Signed-off-by: Peng Fan <peng.fan@nxp.com> >>> --- >>> drivers/firmware/arm_scmi/vendors/imx/imx95.rst | 20 ++++++++++++++++++++ >>> 1 file changed, 20 insertions(+) >>> >>> diff --git a/drivers/firmware/arm_scmi/vendors/imx/imx95.rst b/drivers/firmware/arm_scmi/vendors/imx/imx95.rst >>> index 4e246a78a042a79eb81be35632079c7626bbbe57..ac82da0d1e5ce5fa65a5771286aaebb748c8a4e6 100644 >>> --- a/drivers/firmware/arm_scmi/vendors/imx/imx95.rst >>> +++ b/drivers/firmware/arm_scmi/vendors/imx/imx95.rst >>> @@ -1670,6 +1670,26 @@ protocol_id: 0x84 >>> |uint32 syslog[N] |Log data array, N is defined in bits[11:0] of numLogflags| >>> +--------------------+---------------------------------------------------------+ >>> >>> +MISC_BOARD_INFO >>> +~~~~~~~~~~~~~~~ >>> + >>> +message_id: 0xE >>> +protocol_id: 0x84 >>> + >>> ++--------------------+---------------------------------------------------------+ >>> +|Return values | >>> ++--------------------+---------------------------------------------------------+ >>> +|Name |Description | >>> ++--------------------+---------------------------------------------------------+ >>> +|int32 status |SUCCESS: config name return | >>> +| |NOT_SUPPORTED: name not available | >>> ++--------------------+---------------------------------------------------------+ >>> +|uint32 attributes |Board specific attributes | >> >>..what's in here ? > >It is 0 as of now, per my understanding, it could be to any value that >board owner wanna. Anyway, I need check with our Firmware owners, then >update you. It is for future expansion without breaking backwards compatibility. I could add the information " Board specific attributes(reserved for future expansion without breaking backwards compatibility) " Thanks, Peng > >> >>> ++--------------------+---------------------------------------------------------+ >>> +|uint8 boardname[16] |Board name. Null terminated ASCII string of up | >>> +| |to 16 bytes in length | >>> ++--------------------+---------------------------------------------------------+ >>> + >>> NEGOTIATE_PROTOCOL_VERSION >>> ~~~~~~~~~~~~~~~~~~~~~~~~~~ >>> >> >>..other than this, LGTM. >> >>Reviewed;by: Cristian Marussi <cristian.marussi@arm.com> > >Thanks, >Peng > >> >>Thanks, >>Cristian
© 2016 - 2025 Red Hat, Inc.