<?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 i.MX8QXP FlexSPI bus B data IO issue in i.MX Processors</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/i-MX8QXP-FlexSPI-bus-B-data-IO-issue/m-p/1469931#M191224</link>
    <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;I have issue with FlexSPI bus B similar to &lt;A href="https://community.nxp.com/t5/i-MX-Processors/i-MX8QXP-driver-spi-nxp-fspi-c-flexpsi-bus-B-not-working/td-p/1343187" target="_blank" rel="noopener"&gt;https://community.nxp.com/t5/i-MX-Processors/i-MX8QXP-driver-spi-nxp-fspi-c-flexpsi-bus-B-not-working/td-p/1343187&lt;/A&gt;&lt;BR /&gt;i.MX8QXP SoC (driver spi-nxp-fspi.c, kernel 5.4.70). Chip select B0 and clock are ok but no data on IO0..IO3&lt;/P&gt;&lt;P&gt;FlexSPI FLASH selection in device tree is provided by &amp;lt;reg&amp;gt; parameter (according to spi-nxp-fspi.txt):&lt;BR /&gt;- reg : There are two buses (A and B) with two chip selects each.&lt;BR /&gt;This encodes to which bus and CS the flash is connected:&lt;BR /&gt;- &amp;lt;0&amp;gt;: Bus A, CS 0&lt;BR /&gt;- &amp;lt;1&amp;gt;: Bus A, CS 1&lt;BR /&gt;- &amp;lt;2&amp;gt;: Bus B, CS 0&lt;BR /&gt;- &amp;lt;3&amp;gt;: Bus B, CS 1&lt;BR /&gt;&lt;BR /&gt;Device tree for fspi is following:&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;amp;flexspi0 {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; pinctrl-names = "default";&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; pinctrl-0 = &amp;lt;&amp;amp;pinctrl_flexspi0&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; status = "okay";&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; flash0: w25q64dw@0 {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; #address-cells = &amp;lt;1&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; #size-cells = &amp;lt;1&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; compatible = "winbond,w25q64dw", "jedec,spi-nor";&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; spi-max-frequency = &amp;lt;133000000&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; reg = &amp;lt;0&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; spi-nor,quad-read;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; partition@0 {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; label = "boot";&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; reg = &amp;lt;0x0000000 0x400000&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; };&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; partition@400000 {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; label = "failsafe";&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; reg = &amp;lt;0x400000 0x3e0000&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; };&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; partition@7e0000 {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; label = "reserved";&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; reg = &amp;lt;0x7e0000 0x20000&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; read-only;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; };&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; };&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; flash2: w25q64dw@2 {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; #address-cells = &amp;lt;1&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; #size-cells = &amp;lt;1&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; compatible = "winbond,w25q64dw", "jedec,spi-nor";&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; spi-max-frequency = &amp;lt;133000000&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; reg = &amp;lt;2&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; spi-nor,quad-read;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; partition@0 {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; label = "boot";&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; reg = &amp;lt;0x0000000 0x400000&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; };&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; partition@400000 {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; label = "failsafe";&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; reg = &amp;lt;0x400000 0x3e0000&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; };&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; partition@7e0000 {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; label = "reserved";&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; reg = &amp;lt;0x7e0000 0x20000&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; read-only;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; };&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; };&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;};&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier" size="2"&gt;flexspi0: spi@5d120000 {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; #address-cells = &amp;lt;1&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; #size-cells = &amp;lt;0&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; compatible = "nxp,imx8qxp-fspi";&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; reg = &amp;lt;0x5d120000 0x10000&amp;gt;, &amp;lt;0x08000000 0x10000000&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; reg-names = "fspi_base", "fspi_mmap";&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; interrupts = &amp;lt;GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; clocks = &amp;lt;&amp;amp;clk IMX_SC_R_FSPI_0 IMX_SC_PM_CLK_PER&amp;gt;,&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;lt;&amp;amp;clk IMX_SC_R_FSPI_0 IMX_SC_PM_CLK_PER&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; clock-names = "fspi", "fspi_en";&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; power-domains = &amp;lt;&amp;amp;pd IMX_SC_R_FSPI_0&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; status = "disabled";&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;};&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;pinmux:&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;pinctrl_flexspi0: flexspi0grp {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; fsl,pins = &amp;lt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; IMX8QXP_QSPI0A_DATA0_LSIO_QSPI0A_DATA0 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; IMX8QXP_QSPI0A_DATA1_LSIO_QSPI0A_DATA1 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; IMX8QXP_QSPI0A_DATA2_LSIO_QSPI0A_DATA2 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; IMX8QXP_QSPI0A_DATA3_LSIO_QSPI0A_DATA3 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; //--- IMX8QXP_QSPI0A_DQS_LSIO_QSPI0A_DQS 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; IMX8QXP_QSPI0A_SS0_B_LSIO_QSPI0A_SS0_B 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; //--- IMX8QXP_QSPI0A_SS1_B_LSIO_QSPI0A_SS1_B 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; IMX8QXP_QSPI0A_SCLK_LSIO_QSPI0A_SCLK 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; IMX8QXP_QSPI0B_SCLK_LSIO_QSPI0B_SCLK 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; IMX8QXP_QSPI0B_DATA0_LSIO_QSPI0B_DATA0 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; IMX8QXP_QSPI0B_DATA1_LSIO_QSPI0B_DATA1 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; IMX8QXP_QSPI0B_DATA2_LSIO_QSPI0B_DATA2 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; IMX8QXP_QSPI0B_DATA3_LSIO_QSPI0B_DATA3 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; IMX8QXP_QSPI0B_SS0_B_LSIO_QSPI0B_SS0_B 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; IMX8QXP_QSPI0B_SS1_B_LSIO_QSPI0B_SS1_B 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;};&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;During Linux startup flash0 is detected properly&lt;BR /&gt;[ 1.457701] spi-nor spi4.0: w25q64dw (8192 Kbytes)&lt;BR /&gt;[ 1.462528] 3 fixed-partitions partitions found on MTD device 5d120000.spi-0&lt;BR /&gt;[ 1.469592] Creating 3 MTD partitions on "5d120000.spi-0":&lt;/P&gt;&lt;P&gt;but flash2 is unrecognized&lt;BR /&gt;[ 1.507803] spi-nor spi4.2: unrecognized JEDEC id bytes: ff ff ff ff ff ff&lt;BR /&gt;DIO0..DIO3 are high-level with no activity during JEDEC ID request.&lt;/P&gt;&lt;P&gt;If I disconnect flash and pull-down the IO0..IO3 with 10kOhm resistors I see that IO0..IO3 are low-level and works as input during JEDEC ID request properly:&lt;BR /&gt;[ 1.507803] spi-nor spi4.2: unrecognized JEDEC id bytes: 00 00 00 00 00 00&lt;BR /&gt;but also no activity on IO0..IO3 during ID request.&lt;/P&gt;&lt;P&gt;I tried flash2: w25q64dw@0 and flash2: w25q64dw@1 in device tree as recommended in the link above but have no positive result.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Also I tried to create separate device for channel B in device tree. I used FlexSPI1 0x5d130000 base address for device, as described in i.MX8 reference manual:&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier" size="2"&gt;flexspi1: spi@5d130000 {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; #address-cells = &amp;lt;1&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; #size-cells = &amp;lt;0&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; compatible = "nxp,imx8qxp-fspi";&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; reg = &amp;lt;0x5d130000 0x10000&amp;gt;, &amp;lt;0x08000000 0x10000000&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; reg-names = "fspi_base", "fspi_mmap";&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; interrupts = &amp;lt;GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; clocks = &amp;lt;&amp;amp;clk IMX_SC_R_FSPI_1 IMX_SC_PM_CLK_PER&amp;gt;,&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;lt;&amp;amp;clk IMX_SC_R_FSPI_1 IMX_SC_PM_CLK_PER&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; clock-names = "fspi", "fspi_en";&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; power-domains = &amp;lt;&amp;amp;pd IMX_SC_R_FSPI_1&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; status = "disabled";&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;};&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;amp;flexspi1 {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; pinctrl-names = "default";&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; pinctrl-0 = &amp;lt;&amp;amp;pinctrl_flexspi1&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; status = "okay";&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; flash1: w25q64dw@0 {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; #address-cells = &amp;lt;1&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; #size-cells = &amp;lt;1&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; compatible = "winbond,w25q64dw", "jedec,spi-nor";&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; spi-max-frequency = &amp;lt;133000000&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; reg = &amp;lt;0&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; spi-nor,quad-read;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; partition@0 {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; label = "boot";&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; reg = &amp;lt;0x0000000 0x400000&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; };&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; partition@400000 {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; label = "failsafe";&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; reg = &amp;lt;0x400000 0x3e0000&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; };&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; partition@7e0000 {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; label = "reserved";&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; reg = &amp;lt;0x7e0000 0x20000&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; read-only;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; };&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; };&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;};&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier" size="2"&gt;pinctrl_flexspi0: flexspi0grp {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; fsl,pins = &amp;lt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; IMX8QXP_QSPI0A_DATA0_LSIO_QSPI0A_DATA0 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; IMX8QXP_QSPI0A_DATA1_LSIO_QSPI0A_DATA1 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; IMX8QXP_QSPI0A_DATA2_LSIO_QSPI0A_DATA2 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; IMX8QXP_QSPI0A_DATA3_LSIO_QSPI0A_DATA3 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; //--- IMX8QXP_QSPI0A_DQS_LSIO_QSPI0A_DQS 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; IMX8QXP_QSPI0A_SS0_B_LSIO_QSPI0A_SS0_B 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; //--- IMX8QXP_QSPI0A_SS1_B_LSIO_QSPI0A_SS1_B 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; IMX8QXP_QSPI0A_SCLK_LSIO_QSPI0A_SCLK 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;};&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier" size="2"&gt;pinctrl_flexspi1: flexspi1grp {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; fsl,pins = &amp;lt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; IMX8QXP_QSPI0B_SCLK_LSIO_QSPI0B_SCLK 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; IMX8QXP_QSPI0B_DATA0_LSIO_QSPI0B_DATA0 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; IMX8QXP_QSPI0B_DATA1_LSIO_QSPI0B_DATA1 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; IMX8QXP_QSPI0B_DATA2_LSIO_QSPI0B_DATA2 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; IMX8QXP_QSPI0B_DATA3_LSIO_QSPI0B_DATA3 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; IMX8QXP_QSPI0B_SS0_B_LSIO_QSPI0B_SS0_B 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; IMX8QXP_QSPI0B_SS1_B_LSIO_QSPI0B_SS1_B 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;};&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;But also negative result. Chip select, clock and data are no active. Corresponding boot log is following:&lt;/P&gt;&lt;P&gt;[ 1.455262] spi-nor spi4.0: w25q64dw (8192 Kbytes)&lt;BR /&gt;[ 1.460097] 3 fixed-partitions partitions found on MTD device 5d120000.spi&lt;BR /&gt;[ 1.466987] Creating 3 MTD partitions on "5d120000.spi":&lt;BR /&gt;[ 1.472313] 0x000000000000-0x000000400000 : "boot"&lt;BR /&gt;[ 1.481746] 0x000000400000-0x0000007e0000 : "failsafe"&lt;BR /&gt;[ 1.489684] 0x0000007e0000-0x000000800000 : "reserved"&lt;BR /&gt;[ 1.508282] spi-nor spi5.0: unrecognized JEDEC id bytes: 00 00 00 00 00 00&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;</description>
    <pubDate>Tue, 07 Jun 2022 10:46:24 GMT</pubDate>
    <dc:creator>nmi</dc:creator>
    <dc:date>2022-06-07T10:46:24Z</dc:date>
    <item>
      <title>i.MX8QXP FlexSPI bus B data IO issue</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/i-MX8QXP-FlexSPI-bus-B-data-IO-issue/m-p/1469931#M191224</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;I have issue with FlexSPI bus B similar to &lt;A href="https://community.nxp.com/t5/i-MX-Processors/i-MX8QXP-driver-spi-nxp-fspi-c-flexpsi-bus-B-not-working/td-p/1343187" target="_blank" rel="noopener"&gt;https://community.nxp.com/t5/i-MX-Processors/i-MX8QXP-driver-spi-nxp-fspi-c-flexpsi-bus-B-not-working/td-p/1343187&lt;/A&gt;&lt;BR /&gt;i.MX8QXP SoC (driver spi-nxp-fspi.c, kernel 5.4.70). Chip select B0 and clock are ok but no data on IO0..IO3&lt;/P&gt;&lt;P&gt;FlexSPI FLASH selection in device tree is provided by &amp;lt;reg&amp;gt; parameter (according to spi-nxp-fspi.txt):&lt;BR /&gt;- reg : There are two buses (A and B) with two chip selects each.&lt;BR /&gt;This encodes to which bus and CS the flash is connected:&lt;BR /&gt;- &amp;lt;0&amp;gt;: Bus A, CS 0&lt;BR /&gt;- &amp;lt;1&amp;gt;: Bus A, CS 1&lt;BR /&gt;- &amp;lt;2&amp;gt;: Bus B, CS 0&lt;BR /&gt;- &amp;lt;3&amp;gt;: Bus B, CS 1&lt;BR /&gt;&lt;BR /&gt;Device tree for fspi is following:&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;amp;flexspi0 {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; pinctrl-names = "default";&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; pinctrl-0 = &amp;lt;&amp;amp;pinctrl_flexspi0&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; status = "okay";&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; flash0: w25q64dw@0 {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; #address-cells = &amp;lt;1&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; #size-cells = &amp;lt;1&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; compatible = "winbond,w25q64dw", "jedec,spi-nor";&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; spi-max-frequency = &amp;lt;133000000&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; reg = &amp;lt;0&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; spi-nor,quad-read;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; partition@0 {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; label = "boot";&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; reg = &amp;lt;0x0000000 0x400000&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; };&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; partition@400000 {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; label = "failsafe";&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; reg = &amp;lt;0x400000 0x3e0000&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; };&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; partition@7e0000 {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; label = "reserved";&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; reg = &amp;lt;0x7e0000 0x20000&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; read-only;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; };&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; };&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; flash2: w25q64dw@2 {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; #address-cells = &amp;lt;1&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; #size-cells = &amp;lt;1&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; compatible = "winbond,w25q64dw", "jedec,spi-nor";&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; spi-max-frequency = &amp;lt;133000000&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; reg = &amp;lt;2&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; spi-nor,quad-read;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; partition@0 {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; label = "boot";&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; reg = &amp;lt;0x0000000 0x400000&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; };&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; partition@400000 {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; label = "failsafe";&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; reg = &amp;lt;0x400000 0x3e0000&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; };&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; partition@7e0000 {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; label = "reserved";&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; reg = &amp;lt;0x7e0000 0x20000&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; read-only;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; };&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; };&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;};&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier" size="2"&gt;flexspi0: spi@5d120000 {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; #address-cells = &amp;lt;1&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; #size-cells = &amp;lt;0&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; compatible = "nxp,imx8qxp-fspi";&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; reg = &amp;lt;0x5d120000 0x10000&amp;gt;, &amp;lt;0x08000000 0x10000000&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; reg-names = "fspi_base", "fspi_mmap";&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; interrupts = &amp;lt;GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; clocks = &amp;lt;&amp;amp;clk IMX_SC_R_FSPI_0 IMX_SC_PM_CLK_PER&amp;gt;,&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;lt;&amp;amp;clk IMX_SC_R_FSPI_0 IMX_SC_PM_CLK_PER&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; clock-names = "fspi", "fspi_en";&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; power-domains = &amp;lt;&amp;amp;pd IMX_SC_R_FSPI_0&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; status = "disabled";&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;};&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;pinmux:&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;pinctrl_flexspi0: flexspi0grp {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; fsl,pins = &amp;lt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; IMX8QXP_QSPI0A_DATA0_LSIO_QSPI0A_DATA0 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; IMX8QXP_QSPI0A_DATA1_LSIO_QSPI0A_DATA1 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; IMX8QXP_QSPI0A_DATA2_LSIO_QSPI0A_DATA2 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; IMX8QXP_QSPI0A_DATA3_LSIO_QSPI0A_DATA3 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; //--- IMX8QXP_QSPI0A_DQS_LSIO_QSPI0A_DQS 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; IMX8QXP_QSPI0A_SS0_B_LSIO_QSPI0A_SS0_B 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; //--- IMX8QXP_QSPI0A_SS1_B_LSIO_QSPI0A_SS1_B 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; IMX8QXP_QSPI0A_SCLK_LSIO_QSPI0A_SCLK 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; IMX8QXP_QSPI0B_SCLK_LSIO_QSPI0B_SCLK 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; IMX8QXP_QSPI0B_DATA0_LSIO_QSPI0B_DATA0 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; IMX8QXP_QSPI0B_DATA1_LSIO_QSPI0B_DATA1 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; IMX8QXP_QSPI0B_DATA2_LSIO_QSPI0B_DATA2 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; IMX8QXP_QSPI0B_DATA3_LSIO_QSPI0B_DATA3 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; IMX8QXP_QSPI0B_SS0_B_LSIO_QSPI0B_SS0_B 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; IMX8QXP_QSPI0B_SS1_B_LSIO_QSPI0B_SS1_B 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;};&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;During Linux startup flash0 is detected properly&lt;BR /&gt;[ 1.457701] spi-nor spi4.0: w25q64dw (8192 Kbytes)&lt;BR /&gt;[ 1.462528] 3 fixed-partitions partitions found on MTD device 5d120000.spi-0&lt;BR /&gt;[ 1.469592] Creating 3 MTD partitions on "5d120000.spi-0":&lt;/P&gt;&lt;P&gt;but flash2 is unrecognized&lt;BR /&gt;[ 1.507803] spi-nor spi4.2: unrecognized JEDEC id bytes: ff ff ff ff ff ff&lt;BR /&gt;DIO0..DIO3 are high-level with no activity during JEDEC ID request.&lt;/P&gt;&lt;P&gt;If I disconnect flash and pull-down the IO0..IO3 with 10kOhm resistors I see that IO0..IO3 are low-level and works as input during JEDEC ID request properly:&lt;BR /&gt;[ 1.507803] spi-nor spi4.2: unrecognized JEDEC id bytes: 00 00 00 00 00 00&lt;BR /&gt;but also no activity on IO0..IO3 during ID request.&lt;/P&gt;&lt;P&gt;I tried flash2: w25q64dw@0 and flash2: w25q64dw@1 in device tree as recommended in the link above but have no positive result.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Also I tried to create separate device for channel B in device tree. I used FlexSPI1 0x5d130000 base address for device, as described in i.MX8 reference manual:&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier" size="2"&gt;flexspi1: spi@5d130000 {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; #address-cells = &amp;lt;1&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; #size-cells = &amp;lt;0&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; compatible = "nxp,imx8qxp-fspi";&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; reg = &amp;lt;0x5d130000 0x10000&amp;gt;, &amp;lt;0x08000000 0x10000000&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; reg-names = "fspi_base", "fspi_mmap";&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; interrupts = &amp;lt;GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; clocks = &amp;lt;&amp;amp;clk IMX_SC_R_FSPI_1 IMX_SC_PM_CLK_PER&amp;gt;,&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;lt;&amp;amp;clk IMX_SC_R_FSPI_1 IMX_SC_PM_CLK_PER&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; clock-names = "fspi", "fspi_en";&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; power-domains = &amp;lt;&amp;amp;pd IMX_SC_R_FSPI_1&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; status = "disabled";&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;};&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;amp;flexspi1 {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; pinctrl-names = "default";&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; pinctrl-0 = &amp;lt;&amp;amp;pinctrl_flexspi1&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; status = "okay";&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; flash1: w25q64dw@0 {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; #address-cells = &amp;lt;1&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; #size-cells = &amp;lt;1&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; compatible = "winbond,w25q64dw", "jedec,spi-nor";&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; spi-max-frequency = &amp;lt;133000000&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; reg = &amp;lt;0&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; spi-nor,quad-read;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; partition@0 {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; label = "boot";&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; reg = &amp;lt;0x0000000 0x400000&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; };&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; partition@400000 {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; label = "failsafe";&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; reg = &amp;lt;0x400000 0x3e0000&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; };&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; partition@7e0000 {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; label = "reserved";&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; reg = &amp;lt;0x7e0000 0x20000&amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; read-only;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; };&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; };&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;};&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier" size="2"&gt;pinctrl_flexspi0: flexspi0grp {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; fsl,pins = &amp;lt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; IMX8QXP_QSPI0A_DATA0_LSIO_QSPI0A_DATA0 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; IMX8QXP_QSPI0A_DATA1_LSIO_QSPI0A_DATA1 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; IMX8QXP_QSPI0A_DATA2_LSIO_QSPI0A_DATA2 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; IMX8QXP_QSPI0A_DATA3_LSIO_QSPI0A_DATA3 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; //--- IMX8QXP_QSPI0A_DQS_LSIO_QSPI0A_DQS 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; IMX8QXP_QSPI0A_SS0_B_LSIO_QSPI0A_SS0_B 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; //--- IMX8QXP_QSPI0A_SS1_B_LSIO_QSPI0A_SS1_B 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; IMX8QXP_QSPI0A_SCLK_LSIO_QSPI0A_SCLK 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;};&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier" size="2"&gt;pinctrl_flexspi1: flexspi1grp {&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; fsl,pins = &amp;lt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; IMX8QXP_QSPI0B_SCLK_LSIO_QSPI0B_SCLK 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; IMX8QXP_QSPI0B_DATA0_LSIO_QSPI0B_DATA0 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; IMX8QXP_QSPI0B_DATA1_LSIO_QSPI0B_DATA1 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; IMX8QXP_QSPI0B_DATA2_LSIO_QSPI0B_DATA2 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; IMX8QXP_QSPI0B_DATA3_LSIO_QSPI0B_DATA3 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; IMX8QXP_QSPI0B_SS0_B_LSIO_QSPI0B_SS0_B 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;nbsp; IMX8QXP_QSPI0B_SS1_B_LSIO_QSPI0B_SS1_B 0x06000021&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;&amp;nbsp; &amp;gt;;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier" size="2"&gt;};&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;But also negative result. Chip select, clock and data are no active. Corresponding boot log is following:&lt;/P&gt;&lt;P&gt;[ 1.455262] spi-nor spi4.0: w25q64dw (8192 Kbytes)&lt;BR /&gt;[ 1.460097] 3 fixed-partitions partitions found on MTD device 5d120000.spi&lt;BR /&gt;[ 1.466987] Creating 3 MTD partitions on "5d120000.spi":&lt;BR /&gt;[ 1.472313] 0x000000000000-0x000000400000 : "boot"&lt;BR /&gt;[ 1.481746] 0x000000400000-0x0000007e0000 : "failsafe"&lt;BR /&gt;[ 1.489684] 0x0000007e0000-0x000000800000 : "reserved"&lt;BR /&gt;[ 1.508282] spi-nor spi5.0: unrecognized JEDEC id bytes: 00 00 00 00 00 00&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;</description>
      <pubDate>Tue, 07 Jun 2022 10:46:24 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/i-MX8QXP-FlexSPI-bus-B-data-IO-issue/m-p/1469931#M191224</guid>
      <dc:creator>nmi</dc:creator>
      <dc:date>2022-06-07T10:46:24Z</dc:date>
    </item>
  </channel>
</rss>

