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

Issue accessing QSPI Flash in x8 dual parallel mode on TE0865 module

Started by ML TLB, March 05, 2026, 09:44:19 AM

Previous topic - Next topic

ML TLB

Hi, I have a TE0865-02-DGE43MA module on a TEBT0865-01 carrier board. I'm trying to get it to boot linux using only the QSPI Flash. This fails when u-boot tries to read boot.scr and execute it.

It seems to be an issue in accessing the two QSPI Flashes in x8 dual parallel mode. I tried to look at the content of the QSPI flash by stopping auto-boot and using these commands

> sf probe
> sf read 20000000 0 100
> md.b 20000000 100

The read data does not match the first bytes of boot.bin. I can recognize some bytes, but they are shuffled around and half of them are missing, which leads me to believe that it has something to do with the dual parallel flash mode.

Additionally, it detects the wrong flash size of 144MiB.
ZynqMP> sf probe
SF: Detected n25q00a with page size 512 Bytes, erase size 128 KiB, total 144 MiB

Now what's really weird, is that if I boot from an SD card containing exactly the same boot.bin, I am able to read the QSPI flash contents correctly, even though it still reports the wrong size.

During QSPI programming, the u-boot that is loaded via jtag from the xilinx installation directory (C:\Xilinx\Vitis\2023.2\data\xicom\cfgmem\uboot\zynqmp_qspi_x8_dual_parallel.bin) correctly identifies the 256MiB Flash size.

I've attached the console output from a SD and QSPI boot with the test outputs.

Any hints?

M Kirberg

Hi,

does the same thing happen if you use our prebuilt reference design?

To our knowledge similar error in linux occur if the devicetree is not exactly correct (most important properties are frequency, width and parallel-memories entry).

https://wiki.trenz-electronic.de/display/PD/TE0865+Test+Board#TE0865TestBoard-DeviceTree

Please check that the devicetree entries look exactly as those.

ML TLB

I did in fact use the prebuilt design (TE0865-test_board-vivado_2023.2-build_4_20241126093016.zip)
- boot.bin from prebuilt/boot_images/17eg_2e_8gb_256MB/u-boot
- boot.scr from prebuilt/os/petalinux/8GB
- image.ub from prebuilt/os/petalinux/8GB

I simply uploaded
- boot.bin to offset 0x00000000
- image.ub to offset 0x03000000
- boot.scr to offset 0x04040000

Using the same files on a sd card works fine.