On 23 October 2015 at 15:42, Hoefle Marco <marco.hoe...@nanotronic.ch> wrote: > Maybe somebody has a valid u-boot dts file for a microblaze system with an > SPI core? That would helpful. > We want to move from a parallel nor flash to a SPI flash for FPGA config, > u-boot, Linux Kernel and rootfs. > The last missing part is u-boot. The kernel dts file is ok and the mtd > partitions are set up correctly.
I even grepped on linux/arch/microblaze couldn't get much info, So added Michal he well aware of this may be he can help. >> > -----Original Message----- >> > From: Jagan Teki [mailto:jt...@openedev.com] >> > Sent: Mittwoch, 21. Oktober 2015 18:45 >> > To: Hoefle Marco <marco.hoe...@nanotronic.ch> >> > Cc: u-boot@lists.denx.de >> > Subject: Re: [U-Boot] u-boot device model SPI + SPI Flash >> > >> > On 21 October 2015 at 22:10, Hoefle Marco <marco.hoe...@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:jt...@openedev.com] >> > >> Sent: Mittwoch, 21. Oktober 2015 18:28 >> > >> To: Hoefle Marco <marco.hoe...@nanotronic.ch> >> > >> Cc: u-boot@lists.denx.de >> > >> Subject: Re: [U-Boot] u-boot device model SPI + SPI Flash >> > >> >> > >> On 21 October 2015 at 16:25, Hoefle Marco >> > >> <marco.hoe...@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@40600000"; >> > >> > spi0 = "/axi_quad_spi@44a00000"; >> > >> > }; >> > >> > memory { >> > >> > device_type = "memory"; >> > >> > reg = <0x80000000 0x10000000>; >> > >> > }; >> > >> > axi_quad_spi@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" }, >> > { } >> > }; >> That was a copy paste failure, sorry for that. The reason was that in the >> meanwhile I tried the original Xilinx driver from their github tree. They >> have >> the tag: compatible = "xlnx,xps-spi-2.00.a" >> >> However, I changed back to have mainline code only an put a few printfs to >> it: >> U-Boot 2015.07--33711bdd4a4dce942fb5ae85a68899a8357bdd94---dirty (Oct >> 22 2015 - 07:57:35 +0200) >> >> DRAM: 256 MiB >> uclass_find_device_by_seq: 0 -1 >> uclass_find_device_by_seq: 0 0 >> - -1 -1 >> - not found >> env_relocate: 267 >> spi_flash_probe: 410 >> busnum: 0, cs: 0, max_hz: 50000000 >> spi_setup_slave: 336 >> spi_get_bus_and_cs: 248 >> uclass_find_device_by_seq: 0 0 >> - -1 -1 >> - not found >> uclass_find_device_by_seq: 1 0 >> - -1 -1 >> - not found >> Invalid bus 0 (err=-19) >> *** Warning - spi_flash_probe() failed, using default environment >> >> >> U-Boot> fdt addr 0x8FEB89FC >> U-Boot> fdt print >> / { >> #address-cells = <0x00000001>; >> #size-cells = <0x00000001>; >> aliases { >> serial0 = "/serial@40600000"; >> spi0 = "/axi_quad_spi@44a00000"; >> }; >> memory { >> device_type = "memory"; >> reg = <0x80000000 0x10000000>; >> }; >> serial@40600000 { >> clock-frequency = <0x05f5e100>; >> compatible = "xlnx,xps-uartlite-1.00.a"; >> current-speed = <0x0001c200>; >> }; >> axi_quad_spi@44a00000 { >> compatible = "xlnx,xilinx-spi"; >> reg = <0x44a00000 0x00010000>; >> spi-max-frequency = <0x423a35c7>; >> #address-cells = <0x00000001>; >> #size-cells = <0x00000000>; >> status = "okay"; >> is-dual = <0x00000000>; >> num-cs = <0x00000001>; >> flash@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@qspi-fsbl-uboot { >> label = "qspi-fsbl-uboot"; >> reg = <0x00000000 0x00100000>; >> }; >> partition@qspi-linux { >> label = "qspi-linux"; >> reg = <0x00100000 0x00500000>; >> }; >> partition@qspi-device-tree { >> label = "qspi-device-tree"; >> reg = <0x00600000 0x00020000>; >> }; >> partition@qspi-rootfs { >> label = "qspi-rootfs"; >> reg = <0x00620000 0x005e0000>; >> }; >> partition@qspi-bitstream { >> label = "qspi-bitstream"; >> reg = <0x00c00000 0x00400000>; >> }; >> }; >> }; >> }; >> U-Boot> dm tree >> Class Probed Name >> ---------------------------------------- >> root [ + ] root_driver >> spi [ ] `-- axi_quad_spi@44a00000 >> >> Btw, it seems that dm tree has a bug. It crashes on this line: >> ret = test_cmd->cmd(test_cmd, flag, argc, argv); >> >> I did a quick hack on this to get the output. I will investigate this >> further and >> tell you the result if you wish. >> >> >> >> > 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@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@qspi-fsbl-uboot { >> > >> > label = "qspi-fsbl-uboot"; >> > >> > reg = <0x00000000 0x00100000>; >> > >> > }; >> > >> > partition@qspi-linux { >> > >> > label = "qspi-linux"; >> > >> > reg = <0x00100000 0x00500000>; >> > >> > }; >> > >> > partition@qspi-device-tree { >> > >> > label = "qspi-device-tree"; >> > >> > reg = <0x00600000 0x00020000>; >> > >> > }; >> > >> > partition@qspi-rootfs { >> > >> > label = "qspi-rootfs"; >> > >> > reg = <0x00620000 0x005e0000>; >> > >> > }; >> > >> > partition@qspi-bitstream { >> > >> > label = "qspi-bitstream"; >> > >> > reg = <0x00c00000 0x00400000>; >> > >> > }; >> > >> > }; >> > >> > }; >> > >> > }; >> > >> > >> > >> > Has anybody an idea how to debug this further? -- Jagan | openedev. _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot