Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
10 years ago

qspi flash DMA doesn't work

so I got my custom board to work with the qspi flash.

using the dts example from rocketboards to bring up the qspi flash I got it to work and boot but boot time is now doubled (20 seconds from u-boot to terminal) :(

I noticed on boot that the cadence-qspi reports it can't open the dma channels listed and falls back to non dma use.

qspi: spi at ff705000compatible (http://lists.rocketboards.org/cgi-bin/mailman/listinfo/rfi) = "cadence,qspi"; # address-cells = <1>; # size-cells = <0>; reg = <0xff705000 0x1000>, <0xffa00000 0x1000>; interrupts = <0 151 4>; master-ref-clk = <400000000>; ext-decoder = <0>; /* external decoder */ num-chipselect = <4>; fifo-depth = <128>; bus-num = <2>; enable-dma; tx-dma-peri-id = <24>; rx-dma-peri-id = <25>;

any ideas???

1 Reply

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    HI!!

    So, first a couple of things!!

    addr are rigth, but a width is wrong!

    reg = <0xff705000 0x1000>,

    <0xffa00000 0x1000>;

    It should be

    reg = <0xff705000 0x1000>, /*qspiregs 4KB*/

    <0xffa00000 0x100000>; /*qspidata 1MB*/

    - Or!! Maybe youre missing the dma definition in the dts. Should looks like this

    amba {

    compatible = "arm,amba-bus"; /* drivers/of/platform.c */

    # address-cells = <1>;

    # size-cells = <1>;

    ranges;

    pdma: pdma@ffe01000 { /*bindings/dma/arm-pl330.txt */

    compatible = "arm,pl330", "arm,primecell"; /* drivers/of/platform.c */

    reg = <0xffe01000 0x1000>; /* DMASECURE */

    interrupts = <0 104 4>, /* 8 DMA Channels */

    <0 105 4>,

    <0 106 4>,

    <0 107 4>,

    <0 108 4>,

    <0 109 4>,

    <0 110 4>,

    <0 111 4>;

    # dma-cells = <1>;

    # dma-channels = <8>;

    # dma-requests = <32>;

    clocks = <&l4_main_clk>;

    clock-names = "apb_pclk";

    }; //end pdma

    }; //end amba

    - Or maybe .... are you using Linux Kernel 4.0.0????. I'm also missing the cadence qspi driver @ kernel 4!

    bye