<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: How to determine LS1088A SMMU Masters and Stream IDs in Layerscape</title>
    <link>https://community.nxp.com/t5/Layerscape/How-to-determine-LS1088A-SMMU-Masters-and-Stream-IDs/m-p/2072157#M15560</link>
    <description>dear &lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/248622"&gt;@jwhitehead&lt;/a&gt;&lt;BR /&gt; The following link is a description about the Stream IDs on NXP Chassis-3 (for example ls2080a, ls1088a, ls2088a) devices in the UBoot/arch/arm/include/asm/arch-fsl-layerscape/stream_id_lsch3.h&lt;BR /&gt;&lt;BR /&gt;&lt;A href="https://github.com/nxp-qoriq/u-boot/blob/LSDK-21.08/arch/arm/include/asm/arch-fsl-layerscape/stream_id_lsch3.h" target="_blank"&gt;https://github.com/nxp-qoriq/u-boot/blob/LSDK-21.08/arch/arm/include/asm/arch-fsl-layerscape/stream_id_lsch3.h&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;</description>
    <pubDate>Tue, 01 Apr 2025 15:31:59 GMT</pubDate>
    <dc:creator>LFGP</dc:creator>
    <dc:date>2025-04-01T15:31:59Z</dc:date>
    <item>
      <title>How to determine LS1088A SMMU Masters and Stream IDs</title>
      <link>https://community.nxp.com/t5/Layerscape/How-to-determine-LS1088A-SMMU-Masters-and-Stream-IDs/m-p/2070418#M15546</link>
      <description>&lt;P&gt;&lt;STRONG&gt;First, some context:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;I am trying to boot the Xen Project Hypervisor on an &lt;LI-PRODUCT title="LS1088A-RDB" id="LS1088A-RDB"&gt;&lt;/LI-PRODUCT&gt;.&lt;/P&gt;&lt;P&gt;In the NXP application note &lt;A href="https://www.nxp.com/docs/en/application-note/AN13138.pdf" target="_self"&gt;&lt;EM&gt;AN13138 Xen Deployment on Layerscape Platforms&lt;/EM&gt;&lt;/A&gt; in section 2.2.5 "Enable SMMU support", step 2, it says to "Add the mmu-masters property to the smmu node and specify the StreamID for each master." However there is no further explanation of where to find or derive which devices are SMMU masters and what their Stream IDs are.&lt;/P&gt;&lt;P&gt;In the &lt;A href="https://developer.arm.com/documentation/ihi0062/dc?lang=en" target="_self"&gt;&lt;EM&gt;ARM® CoreLink™ MMU-500&lt;/EM&gt;&lt;/A&gt; SMMU TRM says that Stream IDs are "Implementation dependent"&lt;/P&gt;&lt;P&gt;Checking the &lt;A href="https://www.nxp.com/webapp/Download?colCode=LS1088ARM" target="_self"&gt;&lt;EM&gt;QorIQ LS1088A Reference Manual&lt;/EM&gt;&lt;/A&gt; it states: "The SMMU supports 10 stream ID bits" and "Each master has a unique stream ID assigned to it. The stream ID is an identifier attached to each transaction to determine the translation context."&lt;/P&gt;&lt;P&gt;But again, the LS1088A reference manual then has no further detail on which devices are SMMU masters and what their Stream IDs are or how they're derived. Most other SoCs I've worked with have a table or diagram in their reference manual which documents the SMMU masters and their Stream IDs, or at least an explanation of how the Stream ID is derived (e.g. "Stream ID is the TBU number concatenated with the device number" or similar)&lt;/P&gt;&lt;P&gt;Further, the &lt;A href="https://www.nxp.com/webapp/Download?colCode=LS1088ADPAA2RM" target="_self"&gt;&lt;EM&gt;LS1088A Familly DPAA2 LLHWRM&lt;/EM&gt;&lt;/A&gt; states in a couple places that "The AMQ for each datapath hardware module is routed to its associated IOMMU as part of the stream ID" and later says "the AMQ issued by QMan and other DPAA2 modules are used to create a Stream ID in an ARM SMMU" and even goes on to say "AMQ values are programmed in software portals, in FQs, and in a few other places", but I see no further documentation about what software portals, frame queues, or "other places" are used to program those AMQs, nor how they are used to compose a Stream ID.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Questions:&lt;BR /&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;1) Are the LS1088A SMMU Master devices documented somewhere I'm missing, or is their another way to do determine what they are?&lt;/P&gt;&lt;P&gt;2) Are the Stream IDs for these SMMU masters also captured somewhere, or is their a method to determine/calculate what they are?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks!&lt;/P&gt;</description>
      <pubDate>Fri, 28 Mar 2025 16:28:20 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/How-to-determine-LS1088A-SMMU-Masters-and-Stream-IDs/m-p/2070418#M15546</guid>
      <dc:creator>jwhitehead</dc:creator>
      <dc:date>2025-03-28T16:28:20Z</dc:date>
    </item>
    <item>
      <title>Re: How to determine LS1088A SMMU Masters and Stream IDs</title>
      <link>https://community.nxp.com/t5/Layerscape/How-to-determine-LS1088A-SMMU-Masters-and-Stream-IDs/m-p/2072157#M15560</link>
      <description>dear &lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/248622"&gt;@jwhitehead&lt;/a&gt;&lt;BR /&gt; The following link is a description about the Stream IDs on NXP Chassis-3 (for example ls2080a, ls1088a, ls2088a) devices in the UBoot/arch/arm/include/asm/arch-fsl-layerscape/stream_id_lsch3.h&lt;BR /&gt;&lt;BR /&gt;&lt;A href="https://github.com/nxp-qoriq/u-boot/blob/LSDK-21.08/arch/arm/include/asm/arch-fsl-layerscape/stream_id_lsch3.h" target="_blank"&gt;https://github.com/nxp-qoriq/u-boot/blob/LSDK-21.08/arch/arm/include/asm/arch-fsl-layerscape/stream_id_lsch3.h&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;</description>
      <pubDate>Tue, 01 Apr 2025 15:31:59 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/How-to-determine-LS1088A-SMMU-Masters-and-Stream-IDs/m-p/2072157#M15560</guid>
      <dc:creator>LFGP</dc:creator>
      <dc:date>2025-04-01T15:31:59Z</dc:date>
    </item>
    <item>
      <title>Re: How to determine LS1088A SMMU Masters and Stream IDs</title>
      <link>https://community.nxp.com/t5/Layerscape/How-to-determine-LS1088A-SMMU-Masters-and-Stream-IDs/m-p/2074458#M15577</link>
      <description>&lt;P&gt;Thank you for the reply! This link does help point me in the direction of how the SMMU masters are being assigned StreamIDs, however it does leave open some questions. The file linked mentions that all "non-PCI legacy, platform devices" are assigned a StreamID, and below there are assignments for USB, SD/MMC, SATA, and DMA, but I have to think that things like Serial, I2C, and SPI would also be in that list, yet there are no assignments for those devices?&lt;/P&gt;&lt;P&gt;I guess that ties back to a variation of question 1 in my original post: &lt;STRONG&gt;Booting a stock LS1088A-RDB, with no additional PCI devices, what is the minimal list of SMMU Master devices?&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;I took a stab at that list in my SMMU device tree node for booting Xen that looked like this:&lt;/P&gt;&lt;PRE&gt;&lt;EM&gt;mmu-masters = &amp;lt;&amp;amp;usb0 0x1&amp;gt;, &amp;lt;&amp;amp;usb1 0x2&amp;gt;, &amp;lt;&amp;amp;esdhc 0x3&amp;gt;, &amp;lt;&amp;amp;sata 0x4&amp;gt;, &amp;lt;&amp;amp;emdio1 0x5&amp;gt;, &amp;lt;&amp;amp;emdio2 0x6&amp;gt;, &amp;lt;&amp;amp;i2c0 0x6&amp;gt;, &amp;lt;&amp;amp;ifc 0x7&amp;gt;, &amp;lt;&amp;amp;duart0 0x8&amp;gt;, &amp;lt;&amp;amp;duart1 0x9&amp;gt;, &amp;lt;&amp;amp;pcs_mdio1 0xa&amp;gt;, &amp;lt;&amp;amp;pcs_mdio2 0xb&amp;gt;, &amp;lt;&amp;amp;pcs_mdio3 0xc&amp;gt;, &amp;lt;&amp;amp;pcs_mdio7 0xd&amp;gt;, &amp;lt;&amp;amp;qspi 0xe&amp;gt;;&lt;/EM&gt;&lt;/PRE&gt;&lt;P&gt;But the only entries in that list I'm truly confident on are the first 4 as those are actually listed out in the U-Boot initialization that was linked. However I'm still seeing a global fault when booting due to an unknown StreamID, so clearly my list is incomplete, and/or I have an incorrect ID:&lt;/P&gt;&lt;PRE&gt;&lt;EM&gt;(XEN) smmu: /soc/iommu@5000000: Unexpected global fault, this could be serious&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;(XEN) smmu: /soc/iommu@5000000: GFSR 0x80000002, GFSYNR0 0x00000002, GFSYNR1 0x00001300, GFSYNR2 0x00000000&lt;/EM&gt;&lt;/PRE&gt;&lt;P&gt;Any further guidance on identifying the complete list of the SMMU master devices and their StreamIDs would be greatly appreciated, thanks!&lt;/P&gt;</description>
      <pubDate>Fri, 04 Apr 2025 19:00:40 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/How-to-determine-LS1088A-SMMU-Masters-and-Stream-IDs/m-p/2074458#M15577</guid>
      <dc:creator>jwhitehead</dc:creator>
      <dc:date>2025-04-04T19:00:40Z</dc:date>
    </item>
    <item>
      <title>Re: How to determine LS1088A SMMU Masters and Stream IDs</title>
      <link>https://community.nxp.com/t5/Layerscape/How-to-determine-LS1088A-SMMU-Masters-and-Stream-IDs/m-p/2084905#M15656</link>
      <description>&lt;P&gt;dear &lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/248622"&gt;@jwhitehead&lt;/a&gt;&lt;BR /&gt;Each master has a unique stream ID assigned to it. The stream ID is an identifier attached&lt;BR /&gt;to each transaction to determine the translation context. &lt;BR /&gt;please review the next file in the link below&lt;/P&gt;
&lt;P&gt;&lt;A href="https://github.com/nxp-qoriq/u-boot/blob/e3219a5a73445219df605d1492687918d488055c/arch/arm/include/asm/arch-fsl-layerscape/stream_id_lsch2.h#L4" target="_blank"&gt;https://github.com/nxp-qoriq/u-boot/blob/e3219a5a73445219df605d1492687918d488055c/arch/arm/include/asm/arch-fsl-layerscape/stream_id_lsch2.h#L4&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 23 Apr 2025 01:25:33 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Layerscape/How-to-determine-LS1088A-SMMU-Masters-and-Stream-IDs/m-p/2084905#M15656</guid>
      <dc:creator>LFGP</dc:creator>
      <dc:date>2025-04-23T01:25:33Z</dc:date>
    </item>
  </channel>
</rss>

