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.
> > -----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? > > > > thanks! > > > > -- > > Jagan | openedev. > > > > _______________________________________________ > U-Boot mailing list > U-Boot@lists.denx.de > http://lists.denx.de/mailman/listinfo/u-boot > _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot