<?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>i.MX ProcessorsのトピックRe: Direct MIPI-CSI2 to memory access on i.MX8MP</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/Direct-MIPI-CSI2-to-memory-access-on-i-MX8MP/m-p/2162455#M240484</link>
    <description>&lt;P&gt;i.mx8mp only two ISI, not like imx8qm, which means the pixel link can be done for ISI 2 and chained to ISI 1, you can refer to the ISI driver, if width &amp;gt;2k, need use chain buffer to support&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;if (frm-&amp;gt;o_width &amp;gt; ISI_2K) {&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; val = readl(mxc_isi-&amp;gt;regs + CHNL_CTRL);&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; val &amp;amp;= ~CHNL_CTRL_CHAIN_BUF_MASK;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; val |= (CHNL_CTRL_CHAIN_BUF_2_CHAIN &amp;lt;&amp;lt; CHNL_CTRL_CHAIN_BUF_OFFSET);&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; writel(val, mxc_isi-&amp;gt;regs + CHNL_CTRL);&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; if (mxc_isi-&amp;gt;chain)&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; regmap_write(mxc_isi-&amp;gt;chain, CHNL_CTRL, CHNL_CTRL_CLK_EN_MASK);&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; mxc_isi-&amp;gt;chain_buf = 1;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;more detailed chain buffer settings, pls refer to the ISI driver&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&lt;A href="https://github.com/nxp-imx/linux-imx/blob/lf-6.1.y/drivers/staging/media/imx/imx8-isi-hw.c" target="_blank"&gt;https://github.com/nxp-imx/linux-imx/blob/lf-6.1.y/drivers/staging/media/imx/imx8-isi-hw.c&lt;/A&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;we have verified 4k with ISI0, for other resolution, you can tested by yourself, but let me remind, the ISI0 max clock is 500Mhz&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Wed, 03 Sep 2025 01:46:04 GMT</pubDate>
    <dc:creator>joanxie</dc:creator>
    <dc:date>2025-09-03T01:46:04Z</dc:date>
    <item>
      <title>Direct MIPI-CSI2 to memory access on i.MX8MP</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Direct-MIPI-CSI2-to-memory-access-on-i-MX8MP/m-p/2158946#M240343</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;we are trying to utilize the full resolution of 5440x3648 of our IMX183 sensor using the i.MX8MP.&lt;/P&gt;&lt;P&gt;There are three approaches we considered:&lt;/P&gt;&lt;P&gt;&lt;FONT size="5"&gt;ISP&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;The ISP on the i.MX8MP is limited to 4096x3072 according to the reference manual.&lt;BR /&gt;In our setup we got it working with a maximum resolution of 4080x3072.&lt;/P&gt;&lt;P&gt;This limitation seems to be a technical hardware-associated limit.&lt;BR /&gt;=&amp;gt; This approach will not work.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT size="5"&gt;ISI&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;The reference manual reports ambiguous limits for the ISI on the i.MX8MP.&lt;/P&gt;&lt;P&gt;On the one hand it is said to support up to 4k resolution on the other hand the Channel Image Configuration register CHNL_IMG_CFG (13.4.5.1.5) technically allows for widths and heights of up to 8192.&lt;/P&gt;&lt;P&gt;=&amp;gt; Confirmation from NXP would be appreciated as to if the ISI would support receiving resolutions of 5440x3648.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT size="5"&gt;CSI to mem&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;In the i.MX6 there seemed to have been a direct access route between the CSI receiver and the system memory:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="stefan_wenninge_0-1756280584020.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/354278i55C6BD8AA38CC5B0/image-size/medium?v=v2&amp;amp;px=400" role="button" title="stefan_wenninge_0-1756280584020.png" alt="stefan_wenninge_0-1756280584020.png" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;stefan_wenninge_0-1756280584020.png&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;See figure 6-1 in IMXLXRM&amp;nbsp;Rev. L4.9.88_2.0.0-ga, 05/2018.&lt;BR /&gt;The newer i.MX6 reference manual also shows this path:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="stefan_wenninge_1-1756280725064.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/354281i6878B4B9F8D631CD/image-size/medium?v=v2&amp;amp;px=400" role="button" title="stefan_wenninge_1-1756280725064.png" alt="stefan_wenninge_1-1756280725064.png" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;stefan_wenninge_1-1756280725064.png&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;See figure 37-1 in IMX6DQRM&amp;nbsp;Rev. 6, 05/2020.&lt;/P&gt;&lt;P&gt;The IMX Kernel even contains a driver "mxc_v4l2_capture" that seems to grab images directly from the CSI and offer them in a V4L2 capture device.&lt;/P&gt;&lt;P&gt;On the i.MX8MP there seems to be no direct way from CSI to memory:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="stefan_wenninge_2-1756281226750.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/354286iCCEE97EE943CBBA4/image-size/medium?v=v2&amp;amp;px=400" role="button" title="stefan_wenninge_2-1756281226750.png" alt="stefan_wenninge_2-1756281226750.png" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;stefan_wenninge_2-1756281226750.png&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;See IMX8MPRM Rev. 3, 08/2024.&lt;/P&gt;&lt;P&gt;Data from the CSI port must pass through the ISI to get to memory.&lt;BR /&gt;Here is where further information about the ISIs capabilities is required:&amp;nbsp;&lt;BR /&gt;The reference manual says the ISIs processing channels can only handle up to 4k resolution (I am guessing the limiting factor is the width of 4096).&lt;/P&gt;&lt;P&gt;But there also seems to be a path inside the ISI where most of the processing is skipped and the images could go directly to memory:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="stefan_wenninge_0-1756282340464.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/354300i555132FB75AB2911/image-size/medium?v=v2&amp;amp;px=400" role="button" title="stefan_wenninge_0-1756282340464.png" alt="stefan_wenninge_0-1756282340464.png" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;stefan_wenninge_0-1756282340464.png&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;Maybe this path is not limited by the max width of 4096 but allows the full limit of 8192 from Register CHNL_IMG_CFG?&lt;BR /&gt;I am not sure if I am interpreting figure 13-8 correctly.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;So at the core, my questions are:&lt;/P&gt;&lt;UL&gt;&lt;LI&gt;Can the ISI pipe image data of resolution 5440x3648 through to the memory?&lt;/LI&gt;&lt;LI&gt;Is there another way to pipe image data from the CSI directly to memory?&lt;/LI&gt;&lt;/UL&gt;</description>
      <pubDate>Wed, 27 Aug 2025 08:14:29 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Direct-MIPI-CSI2-to-memory-access-on-i-MX8MP/m-p/2158946#M240343</guid>
      <dc:creator>stefan_wenninge</dc:creator>
      <dc:date>2025-08-27T08:14:29Z</dc:date>
    </item>
    <item>
      <title>Re: Direct MIPI-CSI2 to memory access on i.MX8MP</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Direct-MIPI-CSI2-to-memory-access-on-i-MX8MP/m-p/2159446#M240362</link>
      <description>&lt;P&gt;Can the ISI pipe image data of resolution 5440x3648 through to the memory?&lt;/P&gt;
&lt;P&gt;&amp;gt;current bsp limited the ISI width less than 2K in driver&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Is there another way to pipe image data from the CSI directly to memory?&lt;/P&gt;
&lt;P&gt;&amp;gt;do you mean you need capture video from CSI to the memory before send them to the ISI?&lt;/P&gt;</description>
      <pubDate>Thu, 28 Aug 2025 00:46:54 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Direct-MIPI-CSI2-to-memory-access-on-i-MX8MP/m-p/2159446#M240362</guid>
      <dc:creator>joanxie</dc:creator>
      <dc:date>2025-08-28T00:46:54Z</dc:date>
    </item>
    <item>
      <title>Re: Direct MIPI-CSI2 to memory access on i.MX8MP</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Direct-MIPI-CSI2-to-memory-access-on-i-MX8MP/m-p/2159678#M240369</link>
      <description>"current bsp limited the ISI width less than 2K in driver"&lt;BR /&gt;Section 13.4.2 of IMX8MPRM (Rev. 3, 08/2024) mentions the capability to chain two line buffers from two channels together to increase the line buffer limit from 2k to 4k.&lt;BR /&gt;&lt;BR /&gt;In my experience this seems to be the case. I was able to receive images up to 4080x3648 via ISI.&lt;BR /&gt;&lt;BR /&gt;"do you mean you need capture video from CSI to the memory before send them to the ISI?"&lt;BR /&gt;That is what I would like to do, yes.&lt;BR /&gt;My best guess would be figure 13-8 in my post which seems to show a way to pipe images through the ISI, but not through the processing pipeline within the ISI.&lt;BR /&gt;&lt;BR /&gt;Do you have any more information on this "direct to memory" path within the ISI?</description>
      <pubDate>Thu, 28 Aug 2025 06:41:49 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Direct-MIPI-CSI2-to-memory-access-on-i-MX8MP/m-p/2159678#M240369</guid>
      <dc:creator>stefan_wenninge</dc:creator>
      <dc:date>2025-08-28T06:41:49Z</dc:date>
    </item>
    <item>
      <title>Re: Direct MIPI-CSI2 to memory access on i.MX8MP</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Direct-MIPI-CSI2-to-memory-access-on-i-MX8MP/m-p/2160737#M240409</link>
      <description>&lt;P&gt;I did some further digging in the manual and found there is actually an option to skip the processing in the ISI:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="stefan_wenninge_0-1756477995033.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/354822i5B26128B86A6A404/image-size/medium?v=v2&amp;amp;px=400" role="button" title="stefan_wenninge_0-1756477995033.png" alt="stefan_wenninge_0-1756477995033.png" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;stefan_wenninge_0-1756477995033.png&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;See 13.4.5.1.2&amp;nbsp;Channel Control Register (CHNL_CTRL).&lt;BR /&gt;&lt;BR /&gt;However it seem the field CHAIN_BUF in the same register kills any hopes of driving the ISI at image widths greater than 4096:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="stefan_wenninge_1-1756478100596.png" style="width: 400px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/354823iC555661E83EAEC73/image-size/medium?v=v2&amp;amp;px=400" role="button" title="stefan_wenninge_1-1756478100596.png" alt="stefan_wenninge_1-1756478100596.png" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;stefan_wenninge_1-1756478100596.png&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;There is only a documented option to chain two of the 2K line buffers together. So the 4K width limit seems to be hardcoded.&lt;BR /&gt;&lt;BR /&gt;There is however one detail that makes me wonder: For chaining two buffers together one bit would have sufficed.&lt;BR /&gt;But the CHAIN_BUF register has two bits. Enough for two theoretical further options. Maybe to chain 3 and 4 line buffers together?&lt;BR /&gt;In the case of 4 2K line buffers being chained, the maximum width of 8K would nicely align with the maximum width resolution that can be set in the Channel Image Configuration (CHNL_IMG_CFG) register. The WIDTH field in that register has 13bits -&amp;gt; 8192 maximum value.&lt;/P&gt;&lt;P&gt;Conspiciously the additional two options of the CHAIN_BUF field in the&amp;nbsp;CHNL_CTRL register are labelled "Reserved for future use".&lt;/P&gt;&lt;P&gt;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/39586"&gt;@joanxie&lt;/a&gt;&amp;nbsp;Could anyone at NXP confirm or deny to me if the additional&amp;nbsp;"Reserved for future use" options in the&amp;nbsp;CHAIN_BUF field are in fact in preparation to the possibility of chaining of 3 or 4 line buffers together?&lt;/P&gt;</description>
      <pubDate>Fri, 29 Aug 2025 14:47:41 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Direct-MIPI-CSI2-to-memory-access-on-i-MX8MP/m-p/2160737#M240409</guid>
      <dc:creator>stefan_wenninge</dc:creator>
      <dc:date>2025-08-29T14:47:41Z</dc:date>
    </item>
    <item>
      <title>Re: Direct MIPI-CSI2 to memory access on i.MX8MP</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Direct-MIPI-CSI2-to-memory-access-on-i-MX8MP/m-p/2160768#M240410</link>
      <description>&lt;P&gt;I found another detail: The AN12857 "i.MX 8M Series MIPI Capture System" (Rev. 0 — 15 March 2023) has a quite definitve note in section 4.2.3 ISI width limitation:&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="stefan_wenninge_2-1756481143817.png" style="width: 999px;"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/354829i155EDF58FFB7C761/image-size/large?v=v2&amp;amp;px=999" role="button" title="stefan_wenninge_2-1756481143817.png" alt="stefan_wenninge_2-1756481143817.png" /&gt;&lt;span class="lia-inline-image-caption" onclick="event.preventDefault();"&gt;stefan_wenninge_2-1756481143817.png&lt;/span&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;This confirms, that an unprocessed camera stream can be up to 8192x8192 in resolution.&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;The note makes it seem that the 2K/4K width limit does only apply to camera streams that undergo scaling and color space conversion. These are exactly the two processing steps that can be skipped using the&amp;nbsp;CHNL_BYPASS field in the&amp;nbsp;CHNL_CTRL register.&lt;/P&gt;&lt;P&gt;It seems fair to assume that setting the CHNL_BYPASS to 1 will make the camera stream an "unprocessed" camera stream and will allow for a resolution of 5440x3648 to be passed through the ISI.&lt;/P&gt;&lt;P&gt;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/39586"&gt;@joanxie&lt;/a&gt;&amp;nbsp;Can NXP confirm the validity of this note in AN13857 and confirm my assumption to be true?&lt;/P&gt;</description>
      <pubDate>Fri, 29 Aug 2025 15:36:47 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Direct-MIPI-CSI2-to-memory-access-on-i-MX8MP/m-p/2160768#M240410</guid>
      <dc:creator>stefan_wenninge</dc:creator>
      <dc:date>2025-08-29T15:36:47Z</dc:date>
    </item>
    <item>
      <title>Re: Direct MIPI-CSI2 to memory access on i.MX8MP</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/Direct-MIPI-CSI2-to-memory-access-on-i-MX8MP/m-p/2162455#M240484</link>
      <description>&lt;P&gt;i.mx8mp only two ISI, not like imx8qm, which means the pixel link can be done for ISI 2 and chained to ISI 1, you can refer to the ISI driver, if width &amp;gt;2k, need use chain buffer to support&amp;nbsp;&lt;/P&gt;
&lt;DIV&gt;if (frm-&amp;gt;o_width &amp;gt; ISI_2K) {&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; val = readl(mxc_isi-&amp;gt;regs + CHNL_CTRL);&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; val &amp;amp;= ~CHNL_CTRL_CHAIN_BUF_MASK;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; val |= (CHNL_CTRL_CHAIN_BUF_2_CHAIN &amp;lt;&amp;lt; CHNL_CTRL_CHAIN_BUF_OFFSET);&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; writel(val, mxc_isi-&amp;gt;regs + CHNL_CTRL);&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; if (mxc_isi-&amp;gt;chain)&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; regmap_write(mxc_isi-&amp;gt;chain, CHNL_CTRL, CHNL_CTRL_CLK_EN_MASK);&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt; mxc_isi-&amp;gt;chain_buf = 1;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;more detailed chain buffer settings, pls refer to the ISI driver&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;&lt;A href="https://github.com/nxp-imx/linux-imx/blob/lf-6.1.y/drivers/staging/media/imx/imx8-isi-hw.c" target="_blank"&gt;https://github.com/nxp-imx/linux-imx/blob/lf-6.1.y/drivers/staging/media/imx/imx8-isi-hw.c&lt;/A&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;SPAN&gt;we have verified 4k with ISI0, for other resolution, you can tested by yourself, but let me remind, the ISI0 max clock is 500Mhz&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 03 Sep 2025 01:46:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/Direct-MIPI-CSI2-to-memory-access-on-i-MX8MP/m-p/2162455#M240484</guid>
      <dc:creator>joanxie</dc:creator>
      <dc:date>2025-09-03T01:46:04Z</dc:date>
    </item>
  </channel>
</rss>

