UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

cancel
Showing results for 
Search instead for 
Did you mean: 
Adventurer
Adventurer
606 Views
Registered: ‎09-30-2014

QSPI (dual quad) under Petalinux 2018.3 not detecting

Jump to solution

I am trying to get a parallel dual QSPI configuration to be detected by Petalinux.  It is failing during the boot process.  If I stop at U-Boot, I can do a "sf probe 0" and get the following response:

"SF: Detected n25q256a with page size 512 Bytes, erase size 128 KiB, total 64 MiB"

I have successfully programmed and booted from the QSPI using the SDK with FSBL to program the flash.

In my device tree, I have the following entry (in system-user.dtsi):

&qspi {
 #address-cells = <1>;
 #size-cells = <0>;   num-cs = <1>;
  is-dual = <1>;
  status = "okay";
flash0: flash@0 {
  compatible = "jedec,spi-nor";
  spi-tx-bus-width=<4>;
  spi-rx-bus-width=<4>;
  reg = <0x0>;
  #address-cells = <1>;
  #size-cells = <1>;
  spi-max-frequency = <25000000>;
 };
};

 

However, when Petalinux boots, the MTD and spi probe fail with the following from the boot log:

[    2.159176] mtdoops: mtd device (mtddev=name/number) must be supplied
[    2.164231] m25p80 spi0.0: unrecognized JEDEC id bytes: 00, 00, 00
[    2.165767] PLL: shutdown
[    2.165785] zynqmp_pll_disable() clock disable failed for apll_int, ret = -13
[    2.179147] m25p80: probe of spi0.0 failed with error -2

 

Any help on where to focus my efforts to resolve this would be appreciated.  Suggestions?

0 Kudos
1 Solution

Accepted Solutions
Highlighted
Adventurer
Adventurer
499 Views
Registered: ‎09-30-2014

Re: QSPI (dual quad) under Petalinux 2018.3 not detecting

Jump to solution

Turns out that it was the drive strength and pull-up status associated with the MIO pins driving QSPI. 

0 Kudos
4 Replies
Moderator
Moderator
574 Views
Registered: ‎12-04-2016

Re: QSPI (dual quad) under Petalinux 2018.3 not detecting

Jump to solution

Hi

Can you try changing compatible sring to compatible = "n25q512a", "micron, m25p80"

Also add the following in qspi flash node for DTS

spi-max-frequency = <50000000>;

0 Kudos
Adventurer
Adventurer
564 Views
Registered: ‎09-30-2014

Re: QSPI (dual quad) under Petalinux 2018.3 not detecting

Jump to solution

The problem is that I still get the following when the Linux kernel boots:

[    2.170163] m25p80 spi0.0: unrecognized JEDEC id bytes: 00, 00, 00

 

Dump from "fdt" in u-boot:

spi@ff0f0000 {
                        u-boot,dm-pre-reloc;
                        compatible = "xlnx,zynqmp-qspi-1.0";
                        status = "okay";
                        clock-names = "ref_clk", "pclk";
                        interrupts = <0x00000000 0x0000000f 0x00000004>;
                        interrupt-parent = <0x00000004>;
                        num-cs = <0x00000001>;
                        reg = <0x00000000 0xff0f0000 0x00000000 0x00001000 0x00000000 0xc0000000 0x00000000 0x08000000>;
                        #address-cells = <0x00000001>;
                        #size-cells = <0x00000000>;
                        #stream-id-cells = <0x00000001>;
                        iommus = <0x00000009 0x00000873>;
                        power-domains = <0x0000001a>;
                        clocks = <0x00000003 0x00000035 0x00000003 0x0000001f>;
                        is-dual = <0x00000001>;
                        spi-rx-bus-width = <0x00000004>;
                        spi-tx-bus-width = <0x00000004>;
                        flash@0 {
                                compatible = "n25q512a", "micron,m25p80";
                                spi-tx-bus-width = <0x00000001>;
                                spi-rx-bus-width = <0x00000004>;
                                reg = <0x00000000>;
                                #address-cells = <0x00000001>;
                                #size-cells = <0x00000001>;
                                spi-max-frequency = <0x02faf080>;
                                partition@0x00000000 {
                                        label = "boot";
                                        reg = <0x00000000 0x006e0000>;
                                };
                                partition@0x006e0000 {
                                        label = "bootenv";
                                        reg = <0x006e0000 0x00020000>;
                                };
                                partition@0x00700000 {
                                        label = "kernel";
                                        reg = <0x00700000 0x01000000>;
                                };
                        };
                };

 

Any additional ideas?

 

0 Kudos
Adventurer
Adventurer
555 Views
Registered: ‎09-30-2014

Re: QSPI (dual quad) under Petalinux 2018.3 not detecting

Jump to solution

A little more on the hardware behavior.

When I do an "sf probe 0" in u-boot, I see the QPSI clock run first for 8 cycles on the lower device only (assume a read is occuring) and then 64 cycles (again on the lower device only).  It is followed about 3 bursts of 8 clock cycles on both devices.  The clock at this stage is running at 12.5 MHz.

When Linux boots, there is a burst of 8 clock cycles on the lower device only.  It is then followed by a burst of 48 clock cycles on the lower device only.  The upper device is never probed.  The clock during the Linux probing is running at 12.5 MHz.

Still scratching my head.  Any ideas?

0 Kudos
Highlighted
Adventurer
Adventurer
500 Views
Registered: ‎09-30-2014

Re: QSPI (dual quad) under Petalinux 2018.3 not detecting

Jump to solution

Turns out that it was the drive strength and pull-up status associated with the MIO pins driving QSPI. 

0 Kudos