[U-Boot] u-boot device model SPI + SPI Flash

Jagan Teki jteki at openedev.com
Wed Oct 21 18:45:16 CEST 2015


On 21 October 2015 at 22:10, Hoefle Marco <Marco.Hoefle at nanotronic.ch> wrote:
> Hello Jagan,
> Thank you for your reply.
> Please find my comments bellow. I missed to mention that I am using mainline 2015.07
>
>
>> -----Original Message-----
>> From: Jagan Teki [mailto:jteki at openedev.com]
>> Sent: Mittwoch, 21. Oktober 2015 18:28
>> To: Hoefle Marco <Marco.Hoefle at nanotronic.ch>
>> Cc: u-boot at lists.denx.de
>> Subject: Re: [U-Boot] u-boot device model SPI + SPI Flash
>>
>> On 21 October 2015 at 16:25, Hoefle Marco <Marco.Hoefle at nanotronic.ch>
>> wrote:
>> >
>> >  Hello,
>> > I saw that here is also a mailing list dedicated to device model issues but it
>> looks obsolete (last post February 2014) so I am using this forum.
>>
>> Please note its driver model - not a device model.
> Ok
>>
>> >
>> > I have a problem nearly identically to
>> > http://lists.denx.de/pipermail/u-boot/2015-April/210754.html
>> >
>> >
>> > The SPI initialization does not work:
>> >
>> > Invalid bus 0 (err=-19)
>> > *** Warning - spi_flash_probe() failed, using default environment
>>
>> Which board it is? dts file name?
> It is a custom dts file. It is for a Microblaze CPU in an Artix FPGA. The dts reflects that one below
>>
>> >
>> >
>> > This is the device tree compiled into u-boot:
>> >
>> > U-Boot> fdt addr 0x8FEB8A7C
>> > U-Boot> fdt print
>> > / {
>> >         #address-cells = <0x00000001>;
>> >         #size-cells = <0x00000001>;
>> >         aliases {
>> >                 serial0 = "serial at 40600000";
>> >                 spi0 = "/axi_quad_spi at 44a00000";
>> >         };
>> >         memory {
>> >                 device_type = "memory";
>> >                 reg = <0x80000000 0x10000000>;
>> >         };
>> >         axi_quad_spi at 44a00000 {
>> >                 compatible = "xlnx,xps-spi-2.00.a";
>>
>> Do you need zynq spi or qspi driver there is no compatible string with
>> "xlnx,xps-spi-2.00.a" do know which source you're using?
> This driver is used:
> u-boot/drivers/spi/xilinx_spi.c

In that case, use the compatible in your dts as below

static const struct udevice_id xilinx_spi_ids[] = {
        { .compatible = "xlnx,xilinx-spi" },
        { }
};

Or if you want to change it on driver update your compatible string on
above udevice_id

>
>
>>
>> >                 reg = <0x44a00000 0x00010000>;
>> >                 spi-max-frequency = <0x423a35c7>;
>> >                 #address-cells = <0x00000001>;
>> >                 #size-cells = <0x00000000>;
>> >                 status = "okay";
>> >                 is-dual = <0x00000000>;
>> >                 num-cs = <0x00000001>;
>> >                 flash at 0 {
>> >                         compatible = "n25q128a11";
>> >                         reg = <0x00000000>;
>> >                         spi-tx-bus-width = <0x00000001>;
>> >                         spi-rx-bus-width = <0x00000004>;
>> >                         spi-max-frequency = <0x0d3ed78e>;
>> >                         #address-cells = <0x00000001>;
>> >                         #size-cells = <0x00000001>;
>> >                         partition at qspi-fsbl-uboot {
>> >                                 label = "qspi-fsbl-uboot";
>> >                                 reg = <0x00000000 0x00100000>;
>> >                         };
>> >                         partition at qspi-linux {
>> >                                 label = "qspi-linux";
>> >                                 reg = <0x00100000 0x00500000>;
>> >                         };
>> >                         partition at qspi-device-tree {
>> >                                 label = "qspi-device-tree";
>> >                                 reg = <0x00600000 0x00020000>;
>> >                         };
>> >                         partition at qspi-rootfs {
>> >                                 label = "qspi-rootfs";
>> >                                 reg = <0x00620000 0x005e0000>;
>> >                         };
>> >                         partition at qspi-bitstream {
>> >                                 label = "qspi-bitstream";
>> >                                 reg = <0x00c00000 0x00400000>;
>> >                         };
>> >                 };
>> >         };
>> > };
>> >
>> > Has anybody an idea how to debug this further?

thanks!

-- 
Jagan | openedev.


More information about the U-Boot mailing list