News:

Attention: For security reasons,please choose a user name *different* from your login name.
Also make sure to choose a secure password and change it regularly.

Main Menu

TE0726 Zynqberry - how to access Spansion flash memory from Linux?

Started by clock, May 17, 2017, 12:21:41 PM

Previous topic - Next topic

clock

Linux (Debian Jessie from the Trenz) does not detect the qspi flash.
I checked the device tree and it is certainly there:

root@zynq:~# ls /proc/device-tree/amba/spi\@e000d000/flash\@0
#address-cells  partition@0x00000000  partition@0x00fa0000  spi-max-frequency
compatible      partition@0x00500000  reg
name            partition@0x00520000  #size-cells


The controller is detected
root@zynq:~# dmesg|grep spi
[    0.832082] zynq-qspi e000d000.spi: registered master spi0
[    0.832331] spi spi0.0: setup mode 0, 8 bits/w, 50000000 Hz max --> 0
[    0.832635] zynq-qspi e000d000.spi: registered child spi0.0


however the flash chip is not probed, i.e. there are no related messages in the dmesg output.


JH


clock

My starting point was 2016.2/te0726_m_demo2. I rebuilt boot.bin and image.ub from sources with minor tweaks.
(For example I added CONFIG_SPI_DEBUG=y to the kernel configuration.)

Today I took a fresh uSD card and installed an unmodified te0726-debian.img following instructions at https://shop.trenz-electronic.de/de/Download/?path=Trenz_Electronic/TE0726/Reference_Design/2016.2/te0726_m_demo2.
Still I do not see any SPI related messages in the attached console log.
That surprises me, because on the TE0726 u-boot can be loaded from qspi flash memory only and I expected the spansion memory to be detected by linux.
Is what I see expected behaviour or is there a bitstream/driver/devicetree problem in demo2?

I tried booting the 2016.4 test_board kernel (still with the demo2 u-boot) and voila
m25p80 spi0.0: found s25fl128s, expected m25p80
m25p80 spi0.0: s25fl128s (16384 Kbytes)
4 ofpart partitions found on MTD device spi0.0
Creating 4 MTD partitions on "spi0.0":
0x000000000000-0x000000500000 : "boot"
0x000000500000-0x000000520000 : "bootenv"
0x000000520000-0x000000fa0000 : "kernel"
0x000000fa0000-0x000001000000 : "spare"

As the boot log suggests the Petalinux 2016.4 devicetree uses
compatible = "micron,m25p80";
instead of
compatible = "spansion,s25fl128s";
and it seems to work. I have not tried this change with 2016.2 yet.

JH

Hi,

qsi flash is set on 16.2 demo design, see: \te0726_m_demo2\os\petalinux\subsystems\linux\configs\device-tree\system-top.dts

It's missing on 16.4 test board design, i will add this.


br
John