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-03 initial QSPI programming

Started by bigguiness, October 06, 2021, 10:34:33 PM

Previous topic - Next topic

bigguiness

Hello,

I just received a couple TE0726-03 boards and am trying to do the initial programming as described here:
https://wiki.trenz-electronic.de/display/PD/TE0726+Zynqberry+Demo1

I followed the steps in Launch / Programming / Get prebuilt boot binaries. I then tries the steps in QSPI-Boot mode, but Vivado (2020.2) is now hung with a "Tcl Command Line" dialog that says "Programming the device..." with the progress at 1%.

With the hung dialog I can't scroll the Tcl Console output. But this is what I can see:

Warning: [Labtoolstcl 44-128] No matching hw_devices were found.
INFO: [Labtoolstcl 44-446] Opening hw_target localhost:3121/xilinx_tcf/Digilent/25633006EC3A
INFO: [Labtoolstcl 27-1535] Device xc7z010 (JTAG device index = 1) is not programmed (DONE status = 0).
Test|0||||||
WARNING: [Xicom 50-100] The current boot mode is QSPI.
If flash programming fails, configure device for JTAG boot mode and try again.

The console has this additional information:

Start GUI...all other messages will be print inside the GUI TCL console of Vivado
Using default mini u-boot image file - /tools/Xilinx/Vivado/2020.2/data/xicom/cfgmem/uboot/zynq_qspi_x4_single.bin
===== mrd->addr=0xF800025C, data=0x00000001 =====
BOOT_MODE REG = 0x00000001
===== mrd->addr=0xF8007080, data=0x30800100 =====
===== mrd->addr=0xF8000B18, data=0x00000000 =====
Downloading FSBL...
Running FSBL...
Finished running FSBL.
===== mrd->addr=0xF8000110, data=0x000FA220 =====
READ: ARM_PLL_CFG (0xF8000110) = 0x000FA220
===== mrd->addr=0xF8000100, data=0x00028008 =====
READ: ARM_PLL_CTRL (0xF8000100) = 0x00028008
===== mrd->addr=0xF8000120, data=0x1F000200 =====
READ: ARM_CLK_CTRL (0xF8000120) = 0x1F000200
===== mrd->addr=0xF8000118, data=0x000FA240 =====
READ: IO_PLL_CFG (0xF8000118) = 0x000FA240
===== mrd->addr=0xF8000108, data=0x00030008 =====
READ: IO_PLL_CTRL (0xF8000108) = 0x00030008
Info:  Remapping 256KB of on-chip-memory RAM memory to 0xFFFC0000.
===== mrd->addr=0xF8000008, data=0x00000000 =====
===== mwr->addr=0xF8000008, data=0x0000DF0D =====
MASKWRITE: addr=0xF8000008, mask=0x0000FFFF, newData=0x0000DF0D
===== mwr->addr=0xF8000910, data=0x000001FF =====
===== mrd->addr=0xF8000004, data=0x00000000 =====
===== mwr->addr=0xF8000004, data=0x0000767B =====
MASKWRITE: addr=0xF8000004, mask=0x0000FFFF, newData=0x0000767B


U-Boot 2020.01-00107-g4a29a62 (Oct 13 2020 - 16:46:21 -0600)

Model: Zynq CSE QSPI SINGLE Board
DRAM:  256 KiB
WARNING: Caches not enabled
In:    dcc
Out:   dcc
Err:   dcc
Zynq> sf probe 0 0 0
data abort
pc : [<ffff4c6c>]          lr : [<ffff4b80>]
reloc pc : [<fffcac6c>]    lr : [<fffcab80>]
sp : fffe82b8  ip : fffe90f0     fp : fffef424
r10: ffffd790  r9 : fffe8d40     r8 : 00000000
r7 : 0bebc1fe  r6 : fffe9068     r5 : fffe9998  r4 : ffffffda
r3 : e000d000  r2 : 00000010     r1 : 0000007f  r0 : ffffffda
Flags: nzCv  IRQs off  FIQs off  Mode SVC_32
Code: e1a07237 e3a04000 e5867008 eaffffbf (e5932020)
Resetting CPU ...

resetting ...

I also have a serial terminal open and this was output while trying to program the QSPI:

--------------------------------------------------------------------------------
Xilinx Zynq First Stage Boot Loader to write QSPI Flash (TE modified)
Release 2020.2   Oct  5 2021-16:21:47

Any ideas on what to try next?

Thanks,
Hartley


JH

#1
Hi,
you have select the correct files for your assembly variant? Available variants:
https://wiki.trenz-electronic.de/display/PD/TE0726+Zynqberry+Demo1#TE0726ZynqberryDemo1-Hardware

If yes, than it's the known issue with 2020.2:
https://wiki.trenz-electronic.de/display/PD/TE0726+Zynqberry+Demo1#TE0726ZynqberryDemo1-ReleaseNotesandKnowIssues

or install older Vivado Labtools Version (it's programmer only) for programming only.

I've start to write down some history, how to procedure with different vivado versions..
https://wiki.trenz-electronic.de/pages/viewpage.action?pageId=105689937
br
John

bigguiness

#2
Hi John,

What version of the Vivado Labtools do you recommend?

Will the Labtools work on an Ubuntu 18.04.6 LTS machine with the 2020.2 tools already installed?

Also, is the same version Hardware Server also needed?

Thanks,
Hartley

JH

Hi,
QuoteWhat version of the Vivado Labtools do you recommend?
the last good version was 17.2

From 17.3 up to 18.3 you need special FSBL for flash progamming

up 19.x it depends also on flash content....--> you must try out use one time default fsbl and if this fails the provided fsbl_flash from the reference design
with 20.x we see the same behaviour like 19.x and sometimes that it doesn't work with 20.x but still with 19.x (I did not find out why until now...)
up 21.x I didn't checked but I heard also more problems from other customer

br
John

bigguiness

Hi,

I downloaded and installed the 2017.2 Labtools. Now a stupid question....

How do I use it to program the flash on the TE0726-03 board?

Thanks,
Hartley

bigguiness

Hello,

OK. I _think_ I figured out how to progam the TE0726-03 using Labtools 2017.2. I still get this error message at the end:

WARNING: [Xicom 50-100] The current boot mode is QSPI.
If flash programming fails, configure device for JTAG boot mode and try again.

But, prior to that is says something about the flash programming being successful.

When I reboot the board I get this:

--------------------------------------------------------------------------------
Xilinx First Stage Boot Loader (TE modified)
Release 2020.2   Oct  5 2021-16:21:32

Device IDCODE: 13722093
Device Name: 7z010 (2)
Device Revision: 1
--------------------------------------------------------------------------------
TE0726 Demo1 TE_FsblHookBeforeHandoff_Custom
FSBL: Enabling VTC..
FSBL: Enabling Out VDMA at 0x1FC00000..
FSBL: Enabling In  VDMA at 0x1FC00000..

--------------------------------------------------------------------------------


U-Boot 2020.01 (Oct 05 2021 - 13:27:00 +0000)

CPU:   Zynq 7z010
Silicon: v3.1
DRAM:  ECC disabled 512 MiB
Flash: 0 Bytes
NAND:  0 MiB
MMC:   mmc@e0101000: 0
In:    serial@e0001000
Out:   serial@e0001000
Err:   serial@e0001000
Net:   No ethernet found.
Hit any key to stop autoboot:  0
SF: Detected s25fl128s with page size 256 Bytes, erase size 64 KiB, total 16 MiB
device 0 offset 0xfc0000, size 0x40000
SF: 262144 bytes @ 0xfc0000 Read: OK
QSPI: Trying to boot script at 0x3000000
## Executing script at 03000000
Wrong image format for "source" command
QSPI: SCRIPT FAILED: continuing...
JTAG: Trying to boot script at 0x3000000
## Executing script at 03000000
Wrong image format for "source" command
JTAG: SCRIPT FAILED: continuing...
Card did not respond to voltage select!
MMC Device 1 not found
no mmc device at slot 1
SF: Detected s25fl128s with page size 256 Bytes, erase size 64 KiB, total 16 MiB
device 0 offset 0xfc0000, size 0x40000
SF: 262144 bytes @ 0xfc0000 Read: OK
QSPI: Trying to boot script at 0x3000000
## Executing script at 03000000
Wrong image format for "source" command
QSPI: SCRIPT FAILED: continuing...


no devices available
NAND: SCRIPT FAILED: continuing...
NOR: Trying to boot script at 0x3000000
## Executing script at 03000000
Wrong image format for "source" command
NOR: SCRIPT FAILED: continuing...
starting USB...
Bus usb@e0002000: USB EHCI 1.00
scanning bus usb@e0002000 for devices... 3 USB Device(s) found
       scanning usb for storage devices... 0 Storage Device(s) found

Device 0: unknown device

Device 1: unknown device
No ethernet found.
missing environment variable: pxeuuid
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/00000000
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/0000000
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/000000
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/00000
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/0000
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/000
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/00
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/0
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/default-arm-zynq-zynq
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/default-arm-zynq
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/default-arm
No ethernet found.
missing environment variable: bootfile
Retrieving file: pxelinux.cfg/default
No ethernet found.
Config file not found
No ethernet found.
No ethernet found.
Zynq>

I then put the image.ub and boot.scr files on an SD-card and tried booting the board and get:



--------------------------------------------------------------------------------
Xilinx First Stage Boot Loader (TE modified)
Release 2020.2   Oct  5 2021-16:21:32

Device IDCODE: 13722093
Device Name: 7z010 (2)
Device Revision: 1
--------------------------------------------------------------------------------
TE0726 Demo1 TE_FsblHookBeforeHandoff_Custom
FSBL: Enabling VTC..
FSBL: Enabling Out VDMA at 0x1FC00000..
FSBL: Enabling In  VDMA at 0x1FC00000..

--------------------------------------------------------------------------------


U-Boot 2020.01 (Oct 05 2021 - 13:27:00 +0000)

CPU:   Zynq 7z010
Silicon: v3.1
DRAM:  ECC disabled 512 MiB
Flash: 0 Bytes
NAND:  0 MiB
MMC:   mmc@e0101000: 0
In:    serial@e0001000
Out:   serial@e0001000
Err:   serial@e0001000
Net:   No ethernet found.
Hit any key to stop autoboot:  0
SF: Detected s25fl128s with page size 256 Bytes, erase size 64 KiB, total 16 MiB
device 0 offset 0xfc0000, size 0x40000
SF: 262144 bytes @ 0xfc0000 Read: OK
QSPI: Trying to boot script at 0x3000000
## Executing script at 03000000
Wrong image format for "source" command
QSPI: SCRIPT FAILED: continuing...
JTAG: Trying to boot script at 0x3000000
## Executing script at 03000000
Wrong image format for "source" command
JTAG: SCRIPT FAILED: continuing...
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
Found U-Boot script /boot.scr
ERROR: reserving fdt memory region failed (addr=1fc00000 size=400000)
2235 bytes read in 19 ms (114.3 KiB/s)
## Executing script at 03000000
[TE_BOOT-01] Trenz Boot-file version 1.0 (development)
[TE_BOOT-10] Found boot.scr in device: mmc0
[TE_BOOT-11] Chosen Bootmode is qspiboot from boot_targets=qspi jtag mmc0 mmc1 qspi nand nor usb0 usb1 pxe dhcp
[TE_BOOT-11] Use RAM Address 0x10000000 for linux image
[TE_BOOT-30] Try to use image.ub from qspi, load image.ub from qspi-flash address 0x200000
[TE_BOOT-30] max. image.ub size is 0xD90000
SF: Detected s25fl128s with page size 256 Bytes, erase size 64 KiB, total 16 MiB
device 0 offset 0x200000, size 0xd90000
SF: 14221312 bytes @ 0x200000 Read: OK
Wrong Image Format for bootm command
ERROR: can't get kernel image!
[TE_BOOT-20] boot_target is mmc0. Found image.ub on mmc0:1
ERROR: reserving fdt memory region failed (addr=1fc00000 size=400000)
4348456 bytes read in 415 ms (10 MiB/s)
## Loading kernel from FIT Image at 10000000 ...
   Using 'conf@system-top.dtb' configuration
   Verifying Hash Integrity ... OK
   Trying 'kernel@1' kernel subimage
     Description:  Linux kernel
     Type:         Kernel Image
     Compression:  uncompressed
     Data Start:   0x100000e8
     Data Size:    4326624 Bytes = 4.1 MiB
     Architecture: ARM
     OS:           Linux
     Load Address: 0x00200000
     Entry Point:  0x00200000
     Hash algo:    sha256
     Hash value:   0cc681aac2adc22db29a5f768d310cff19a22ea4a66f49786aa5a8aab8158a4a
   Verifying Hash Integrity ... sha256+ OK
## Loading fdt from FIT Image at 10000000 ...
   Using 'conf@system-top.dtb' configuration
   Verifying Hash Integrity ... OK
   Trying 'fdt@system-top.dtb' fdt subimage
     Description:  Flattened Device Tree blob
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x104206d4
     Data Size:    19949 Bytes = 19.5 KiB
     Architecture: ARM
     Hash algo:    sha256
     Hash value:   d17365f05377fd9ea00f52dfaa8ec10693f345699dede86760edc3a182581e7d
   Verifying Hash Integrity ... sha256+ OK
   Booting using the fdt blob at 0x104206d4
   Loading Kernel Image
   Loading Device Tree to 1eafd000, end 1eb04dec ... OK

Starting kernel ...

Booting Linux on physical CPU 0x0
Linux version 5.4.0-xilinx-v2020.2 (oe-user@oe-host) (gcc version 9.2.0 (GCC)) #1 SMP PREEMPT Tue Oct 5 22:33:15 UTC 2021
CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=18c5387d
CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
OF: fdt: Machine model: xlnx,zynq-7000
earlycon: cdns0 at MMIO 0xe0001000 (options '115200n8')
printk: bootconsole [cdns0] enabled
Memory policy: Data cache writealloc
cma: Reserved 16 MiB at 0x1f000000
percpu: Embedded 15 pages/cpu s31948 r8192 d21300 u61440
Built 1 zonelists, mobility grouping on.  Total pages: 129920
Kernel command line: console=ttyPS0,115200 earlycon root=/dev/mmcblk0p2 rw rootwait
Dentry cache hash table entries: 65536 (order: 6, 262144 bytes, linear)
Inode-cache hash table entries: 32768 (order: 5, 131072 bytes, linear)
mem auto-init: stack:off, heap alloc:off, heap free:off
Memory: 491568K/524288K available (6144K kernel code, 217K rwdata, 1844K rodata, 1024K init, 131K bss, 16336K reserved, 16384K cma-reserved, 0K highmem)
rcu: Preemptible hierarchical RCU implementation.
rcu:    RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.
   Tasks RCU enabled.
rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
efuse mapped to (ptrval)
slcr mapped to (ptrval)
L2C: platform modifies aux control register: 0x72360000 -> 0x72760000
L2C: DT/platform modifies aux control register: 0x72360000 -> 0x72760000
L2C-310 erratum 769419 enabled
L2C-310 enabling early BRESP for Cortex-A9
L2C-310 full line of zeros enabled for Cortex-A9
L2C-310 ID prefetch enabled, offset 1 lines
L2C-310 dynamic clock gating enabled, standby mode enabled
L2C-310 cache controller enabled, 8 ways, 512 kB
L2C-310: CACHE_ID 0x410000c8, AUX_CTRL 0x76760001
random: get_random_bytes called from start_kernel+0x260/0x440 with crng_init=0
zynq_clock_init: clkc starts at (ptrval)
Zynq clock init
sched_clock: 64 bits at 333MHz, resolution 3ns, wraps every 4398046511103ns
clocksource: arm_global_timer: mask: 0xffffffffffffffff max_cycles: 0x4ce07af025, max_idle_ns: 440795209040 ns
Switching to timer-based delay loop, resolution 3ns
Console: colour dummy device 80x30
Calibrating delay loop (skipped), value calculated using timer frequency.. 666.66 BogoMIPS (lpj=3333333)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
CPU: Testing write buffer coherency: ok
CPU0: Spectre v2: using BPIALL workaround
CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
Setting up static identity map for 0x100000 - 0x100060
rcu: Hierarchical SRCU implementation.
smp: Bringing up secondary CPUs ...
CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
CPU1: Spectre v2: using BPIALL workaround
smp: Brought up 1 node, 2 CPUs
SMP: Total of 2 processors activated (1333.33 BogoMIPS).
CPU: All CPU(s) started in SVC mode.
devtmpfs: initialized
VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
futex hash table entries: 512 (order: 3, 32768 bytes, linear)
pinctrl core: initialized pinctrl subsystem
NET: Registered protocol family 16
DMA: preallocated 256 KiB pool for atomic coherent allocations
cpuidle: using governor menu
hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.
hw-breakpoint: maximum watchpoint size is 4 bytes.
zynq-ocm f800c000.ocmc: ZYNQ OCM pool: 256 KiB @ 0x(ptrval)
e0000000.serial: ttyPS1 at MMIO 0xe0000000 (irq = 26, base_baud = 6249999) is a xuartps
e0001000.serial: ttyPS0 at MMIO 0xe0001000 (irq = 27, base_baud = 6249999) is a xuartps
printk: console [ttyPS0] enabled
printk: console [ttyPS0] enabled
printk: bootconsole [cdns0] disabled
printk: bootconsole [cdns0] disabled
vgaarb: loaded
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
mc: Linux media interface: v0.10
videodev: Linux video capture interface: v2.00
pps_core: LinuxPPS API ver. 1 registered
pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
PTP clock support registered
EDAC MC: Ver: 3.0.0
FPGA manager framework
Advanced Linux Sound Architecture Driver Initialized.
clocksource: Switched to clocksource arm_global_timer
thermal_sys: Registered thermal governor 'step_wise'
NET: Registered protocol family 2
tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes, linear)
TCP established hash table entries: 4096 (order: 2, 16384 bytes, linear)
TCP bind hash table entries: 4096 (order: 3, 32768 bytes, linear)
TCP: Hash tables configured (established 4096 bind 4096)
UDP hash table entries: 256 (order: 1, 8192 bytes, linear)
UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear)
NET: Registered protocol family 1
RPC: Registered named UNIX socket transport module.
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
PCI: CLS 0 bytes, default 64
hw perfevents: no interrupt-affinity property for /pmu@f8891000, guessing.
hw perfevents: enabled with armv7_cortex_a9 PMU driver, 7 counters available
workingset: timestamp_bits=14 max_order=17 bucket_order=3
jffs2: version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.
io scheduler mq-deadline registered
io scheduler kyber registered
zynq-pinctrl 700.pinctrl: zynq pinctrl initialized
dma-pl330 f8003000.dmac: Loaded driver for PL330 DMAC-241330
dma-pl330 f8003000.dmac:    DBUFF-128x8bytes Num_Chans-8 Num_Peri-4 Num_Events-16
brd: module loaded
loop: module loaded
spi_master spi0: cannot find modalias for /amba/spi@e000d000/flash@0
spi_master spi0: Failed to create SPI device for /amba/spi@e000d000/flash@0
libphy: Fixed MDIO Bus: probed
CAN device driver interface
e1000e: Intel(R) PRO/1000 Network Driver - 3.2.6-k
e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
ehci-pci: EHCI PCI platform driver
usbcore: registered new interface driver usb-storage
chipidea-usb2 e0002000.usb: e0002000.usb supply vbus not found, using dummy regulator
ci_hdrc ci_hdrc.0: unable to init phy: -110
ci_hdrc: probe of ci_hdrc.0 failed with error -110
i2c /dev entries driver
cdns-i2c e0004000.i2c: 400 kHz mmio e0004000 irq 22
cdns-i2c e0005000.i2c: 400 kHz mmio e0005000 irq 23
cdns-wdt f8005000.watchdog: Xilinx Watchdog Timer with timeout 10s
EDAC MC: ECC not enabled
Xilinx Zynq CpuIdle Driver started
sdhci: Secure Digital Host Controller Interface driver
sdhci: Copyright(c) Pierre Ossman
sdhci-pltfm: SDHCI platform and OF driver helper
mmc0: SDHCI controller on e0100000.mmc [e0100000.mmc] using ADMA
mmc1: SDHCI controller on e0101000.mmc [e0101000.mmc] using ADMA
ledtrig-cpu: registered to indicate activity on CPUs
clocksource: ttc_clocksource: mask: 0xffff max_cycles: 0xffff, max_idle_ns: 537538477 ns
timer #0 at (ptrval), irq=44
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
fpga_manager fpga0: Xilinx Zynq FPGA Manager registered
NET: Registered protocol family 10
Segment Routing with IPv6
sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
NET: Registered protocol family 17
can: controller area network core (rev 20170425 abi 9)
NET: Registered protocol family 29
can: raw protocol (rev 20170425)
mmc1: Problem switching card into high-speed mode!
can: broadcast manager protocol (rev 20170425 t)
mmc1: new SDXC card at address 0001
can: netlink gateway (rev 20190810) max_hops=1
Registering SWP/SWPB emulation handler
of-fpga-region fpga-full: FPGA Region probed
mmcblk1: mmc1:0001 SD 58.2 GiB
hctosys: unable to open rtc device (rtc0)
of_cfs_init
of_cfs_init: OK
ALSA device list:
  No soundcards found.
mmcblk1: p1 p2mount the
Waiting for root device /dev/mmcblk0p2...

So it appears the FSBL and U-Boot are starting OK from the QSPI. Then the kernel gets loaded from the SD-Card. But I'm not sure why it's trying to mount the rootfs on /dev/mmcblk0p2.

Any ideas?

Thanks,
Hartley

bigguiness

Update.

Looks like i had the wrong image.ub file. I copied the one from the _binaries_TE0726-03M/boot_linux directory to the SD-card and it will now boot to a login prompt.

There is an exception happening during the boot. Not sure what's going on with that. Following is the kernel boot log:

Booting Linux on physical CPU 0x0
Linux version 5.4.0-xilinx-v2020.2 (oe-user@oe-host) (gcc version 9.2.0 (GCC)) #1 SMP PREEMPT Thu Sep 30 12:56:55 UTC 2021
CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=18c5387d
CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
OF: fdt: Machine model: xlnx,zynq-7000
earlycon: cdns0 at MMIO 0xe0001000 (options '115200n8')
printk: bootconsole [cdns0] enabled
Memory policy: Data cache writealloc
Reserved memory: created DMA memory pool at 0x1fc00000, size 4 MiB
OF: reserved mem: initialized node hdmi_fb_reserved_region@1FC00000, compatible id shared-dma-pool
cma: Reserved 16 MiB at 0x1ec00000
percpu: Embedded 15 pages/cpu s31948 r8192 d21300 u61440
Built 1 zonelists, mobility grouping on.  Total pages: 128905
Kernel command line: console=ttyPS0,115200 earlycon root=/dev/ram0 rw
Dentry cache hash table entries: 65536 (order: 6, 262144 bytes, linear)
Inode-cache hash table entries: 32768 (order: 5, 131072 bytes, linear)
mem auto-init: stack:off, heap alloc:off, heap free:off
Memory: 473340K/520192K available (6144K kernel code, 220K rwdata, 1876K rodata, 1024K init, 124K bss, 30468K reserved, 16384K cma-reserved, 0K highmem)
rcu: Preemptible hierarchical RCU implementation.
rcu:    RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.
   Tasks RCU enabled.
rcu: RCU calculated value of scheduler-enlistment delay is 10 jiffies.
rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
efuse mapped to (ptrval)
slcr mapped to (ptrval)
L2C: platform modifies aux control register: 0x72360000 -> 0x72760000
L2C: DT/platform modifies aux control register: 0x72360000 -> 0x72760000
L2C-310 erratum 769419 enabled
L2C-310 enabling early BRESP for Cortex-A9
L2C-310 full line of zeros enabled for Cortex-A9
L2C-310 ID prefetch enabled, offset 1 lines
L2C-310 dynamic clock gating enabled, standby mode enabled
L2C-310 cache controller enabled, 8 ways, 512 kB
L2C-310: CACHE_ID 0x410000c8, AUX_CTRL 0x76760001
random: get_random_bytes called from start_kernel+0x260/0x440 with crng_init=0
zynq_clock_init: clkc starts at (ptrval)
Zynq clock init
sched_clock: 64 bits at 333MHz, resolution 3ns, wraps every 4398046511102ns
clocksource: arm_global_timer: mask: 0xffffffffffffffff max_cycles: 0x4ce07a4e8b, max_idle_ns: 440795203012 ns
Switching to timer-based delay loop, resolution 3ns
Console: colour dummy device 80x30
Calibrating delay loop (skipped), value calculated using timer frequency.. 666.66 BogoMIPS (lpj=3333332)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
CPU: Testing write buffer coherency: ok
CPU0: Spectre v2: using BPIALL workaround
CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
Setting up static identity map for 0x100000 - 0x100060
rcu: Hierarchical SRCU implementation.
smp: Bringing up secondary CPUs ...
CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
CPU1: Spectre v2: using BPIALL workaround
smp: Brought up 1 node, 2 CPUs
SMP: Total of 2 processors activated (1333.33 BogoMIPS).
CPU: All CPU(s) started in SVC mode.
devtmpfs: initialized
VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
futex hash table entries: 512 (order: 3, 32768 bytes, linear)
pinctrl core: initialized pinctrl subsystem
NET: Registered protocol family 16
DMA: preallocated 256 KiB pool for atomic coherent allocations
cpuidle: using governor menu
hw-breakpoint: found 5 (+1 reserved) breakpoint and 1 watchpoint registers.
hw-breakpoint: maximum watchpoint size is 4 bytes.
zynq-ocm f800c000.ocmc: ZYNQ OCM pool: 256 KiB @ 0x(ptrval)
e0001000.serial: ttyPS0 at MMIO 0xe0001000 (irq = 25, base_baud = 6249999) is a xuartps
printk: console [ttyPS0] enabled
printk: console [ttyPS0] enabled
printk: bootconsole [cdns0] disabled
printk: bootconsole [cdns0] disabled
vgaarb: loaded
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
mc: Linux media interface: v0.10
videodev: Linux video capture interface: v2.00
pps_core: LinuxPPS API ver. 1 registered
pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
PTP clock support registered
EDAC MC: Ver: 3.0.0
FPGA manager framework
Advanced Linux Sound Architecture Driver Initialized.
clocksource: Switched to clocksource arm_global_timer
simple-framebuffer 1fc00000.framebuffer: framebuffer at 0x1fc00000, 0x384000 bytes, mapped to 0x(ptrval)
simple-framebuffer 1fc00000.framebuffer: format=a8b8g8r8, mode=1280x720x32, linelength=5120
simple-framebuffer 1fc00000.framebuffer: fb0: simplefb registered!
thermal_sys: Registered thermal governor 'step_wise'
NET: Registered protocol family 2
tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes, linear)
TCP established hash table entries: 4096 (order: 2, 16384 bytes, linear)
TCP bind hash table entries: 4096 (order: 3, 32768 bytes, linear)
TCP: Hash tables configured (established 4096 bind 4096)
UDP hash table entries: 256 (order: 1, 8192 bytes, linear)
UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear)
NET: Registered protocol family 1
RPC: Registered named UNIX socket transport module.
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
PCI: CLS 0 bytes, default 64
Trying to unpack rootfs image as initramfs...
Freeing initrd memory: 14136K
hw perfevents: no interrupt-affinity property for /pmu@f8891000, guessing.
hw perfevents: enabled with armv7_cortex_a9 PMU driver, 7 counters available
workingset: timestamp_bits=14 max_order=17 bucket_order=3
jffs2: version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.
io scheduler mq-deadline registered
io scheduler kyber registered
zynq-pinctrl 700.pinctrl: zynq pinctrl initialized
dma-pl330 f8003000.dmac: Loaded driver for PL330 DMAC-241330
dma-pl330 f8003000.dmac:    DBUFF-128x8bytes Num_Chans-8 Num_Peri-4 Num_Events-16
brd: module loaded
loop: module loaded
spi-nor spi0.0: s25fl128s1 (16384 Kbytes)
8 fixed-partitions partitions found on MTD device spi0.0
Creating 8 MTD partitions on "spi0.0":
0x000000000000-0x000000500000 : "boot"
0x000000500000-0x000000520000 : "bootenv"
0x000000520000-0x000000fa0000 : "kernel"
0x000000fa0000-0x000001000000 : "spare"
0x000000000000-0x000000500000 : "boot"
sysfs: cannot create duplicate filename '/bus/nvmem/devices/boot'
CPU: 1 PID: 1 Comm: swapper/0 Not tainted 5.4.0-xilinx-v2020.2 #1
Hardware name: Xilinx Zynq Platform
[<c010e37c>] (unwind_backtrace) from [<c010a124>] (show_stack+0x10/0x14)
[<c010a124>] (show_stack) from [<c06afae8>] (dump_stack+0xb4/0xd0)
[<c06afae8>] (dump_stack) from [<c025f8ac>] (sysfs_warn_dup+0x4c/0x60)
[<c025f8ac>] (sysfs_warn_dup) from [<c025fb10>] (sysfs_do_create_link_sd+0x90/0xb4)
[<c025fb10>] (sysfs_do_create_link_sd) from [<c03eafbc>] (bus_add_device+0x50/0xc8)
[<c03eafbc>] (bus_add_device) from [<c03e8e74>] (device_add+0x364/0x568)
[<c03e8e74>] (device_add) from [<c0577880>] (nvmem_register+0x1a8/0x594)
[<c0577880>] (nvmem_register) from [<c04240e4>] (add_mtd_device+0x224/0x348)
[<c04240e4>] (add_mtd_device) from [<c04272f0>] (add_mtd_partitions+0xb8/0x140)
[<c04272f0>] (add_mtd_partitions) from [<c04270a0>] (parse_mtd_partitions+0x224/0x314)
[<c04270a0>] (parse_mtd_partitions) from [<c0424344>] (mtd_device_parse_register+0x64/0xfc)
[<c0424344>] (mtd_device_parse_register) from [<c04435b0>] (spi_nor_probe+0x134/0x188)
[<c04435b0>] (spi_nor_probe) from [<c0444648>] (spi_drv_probe+0x88/0xa4)
[<c0444648>] (spi_drv_probe) from [<c03ebd2c>] (really_probe+0x1d4/0x2ec)
[<c03ebd2c>] (really_probe) from [<c03ec0d8>] (driver_probe_device+0x13c/0x154)
[<c03ec0d8>] (driver_probe_device) from [<c03ea400>] (bus_for_each_drv+0xa0/0xb8)
[<c03ea400>] (bus_for_each_drv) from [<c03ebefc>] (__device_attach+0xb8/0x134)
[<c03ebefc>] (__device_attach) from [<c03eb05c>] (bus_probe_device+0x28/0x80)
[<c03eb05c>] (bus_probe_device) from [<c03e8f7c>] (device_add+0x46c/0x568)
[<c03e8f7c>] (device_add) from [<c0444ba0>] (spi_add_device+0xfc/0x13c)
[<c0444ba0>] (spi_add_device) from [<c0445b9c>] (of_register_spi_device+0x2c0/0x338)
[<c0445b9c>] (of_register_spi_device) from [<c044608c>] (spi_register_controller+0x478/0x64c)
[<c044608c>] (spi_register_controller) from [<c0446294>] (devm_spi_register_controller+0x34/0x64)
[<c0446294>] (devm_spi_register_controller) from [<c044a86c>] (zynq_qspi_probe+0x2cc/0x350)
[<c044a86c>] (zynq_qspi_probe) from [<c03ed810>] (platform_drv_probe+0x48/0x94)
[<c03ed810>] (platform_drv_probe) from [<c03ebd2c>] (really_probe+0x1d4/0x2ec)
[<c03ebd2c>] (really_probe) from [<c03ec0d8>] (driver_probe_device+0x13c/0x154)
[<c03ec0d8>] (driver_probe_device) from [<c03ec274>] (device_driver_attach+0x44/0x5c)
[<c03ec274>] (device_driver_attach) from [<c03ec338>] (__driver_attach+0xac/0xb4)
[<c03ec338>] (__driver_attach) from [<c03ea30c>] (bus_for_each_dev+0x64/0xa4)
[<c03ea30c>] (bus_for_each_dev) from [<c03eb2e0>] (bus_add_driver+0x150/0x1b0)
[<c03eb2e0>] (bus_add_driver) from [<c03ec9dc>] (driver_register+0xac/0xf0)
[<c03ec9dc>] (driver_register) from [<c0102668>] (do_one_initcall+0x74/0x16c)
[<c0102668>] (do_one_initcall) from [<c0a00f4c>] (kernel_init_freeable+0x1f4/0x248)
[<c0a00f4c>] (kernel_init_freeable) from [<c06c3a08>] (kernel_init+0x8/0x10c)
[<c06c3a08>] (kernel_init) from [<c01010e8>] (ret_from_fork+0x14/0x2c)
Exception stack(0xdd443fb0 to 0xdd443ff8)
3fa0:                                     00000000 00000000 00000000 00000000
3fc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
3fe0: 00000000 00000000 00000000 00000000 00000013 00000000
mtd mtd4: Failed to register NVMEM device
libphy: Fixed MDIO Bus: probed
CAN device driver interface
e1000e: Intel(R) PRO/1000 Network Driver - 3.2.6-k
e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
usbcore: registered new interface driver asix
usbcore: registered new interface driver ax88179_178a
usbcore: registered new interface driver cdc_ether
usbcore: registered new interface driver smsc95xx
usbcore: registered new interface driver net1080
usbcore: registered new interface driver cdc_subset
usbcore: registered new interface driver zaurus
usbcore: registered new interface driver cdc_ncm
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
ehci-pci: EHCI PCI platform driver
usbcore: registered new interface driver usb-storage
chipidea-usb2 e0002000.usb: e0002000.usb supply vbus not found, using dummy regulator
ULPI transceiver vendor/product ID 0x0424/0x0007
Found SMSC USB3320 ULPI transceiver.
ULPI integrity check: passed.
ci_hdrc ci_hdrc.0: EHCI Host Controller
ci_hdrc ci_hdrc.0: new USB bus registered, assigned bus number 1
ci_hdrc ci_hdrc.0: USB 2.0 started, EHCI 1.00
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected
i2c /dev entries driver
cdns-i2c e0004000.i2c: 400 kHz mmio e0004000 irq 21
cdns-i2c e0005000.i2c: 400 kHz mmio e0005000 irq 22
i2c i2c-1: Added multiplexed i2c bus 2
i2c i2c-1: Added multiplexed i2c bus 3
i2c i2c-1: Added multiplexed i2c bus 4
i2c i2c-1: Added multiplexed i2c bus 5
pca954x 1-0070: registered 4 multiplexed busses for I2C mux pca9544
cdns-wdt f8005000.watchdog: Xilinx Watchdog Timer with timeout 10s
EDAC MC: ECC not enabled
Xilinx Zynq CpuIdle Driver started
sdhci: Secure Digital Host Controller Interface driver
sdhci: Copyright(c) Pierre Ossman
sdhci-pltfm: SDHCI platform and OF driver helper
mmc0: SDHCI controller on e0101000.mmc [e0101000.mmc] using ADMA
ledtrig-cpu: registered to indicate activity on CPUs
clocksource: ttc_clocksource: mask: 0xffff max_cycles: 0xffff, max_idle_ns: 537538477 ns
timer #0 at (ptrval), irq=39
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
fpga_manager fpga0: Xilinx Zynq FPGA Manager registered
xlnx_formatter_pcm 43c00000.audio_formatter: sound card device will use DAI link: i2s_transmitter
xlnx_formatter_pcm 43c00000.audio_formatter: sound card device will use DAI link: i2s_receiver
xlnx_formatter_pcm 43c00000.audio_formatter: pcm platform device registered
xlnx_i2s 43c10000.i2s_receiver: xlnx_i2s_capture DAI registered
xlnx_i2s 43c20000.i2s_transmitter: xlnx_i2s_playback DAI registered
xlnx_snd_card xlnx_snd_card.0.auto: snd-soc-dummy-dai <-> 43c20000.i2s_transmitter mapping ok
xlnx_snd_card xlnx_snd_card.0.auto: snd-soc-dummy-dai <-> 43c10000.i2s_receiver mapping ok
xlnx_snd_card xlnx_snd_card.0.auto: xlnx-i2s-snd-card-0 registered
NET: Registered protocol family 10
Segment Routing with IPv6
sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
mmc0: Problem switching card into high-speed mode!
NET: Registered protocol family 17
mmc0: new SDXC card at address 0001
can: controller area network core (rev 20170425 abi 9)
NET: Registered protocol family 29
can: raw protocol (rev 20170425)
mmcblk0: mmc0:0001 SD 58.2 GiB
can: broadcast manager protocol (rev 20170425 t)
can: netlink gateway (rev 20190810) max_hops=1
Registering SWP/SWPB emulation handler
mmcblk0: p1 p2
of-fpga-region fpga-full: FPGA Region probed
hctosys: unable to open rtc device (rtc0)
of_cfs_init
of_cfs_init: OK
ALSA device list:
  #0: xlnx-i2s-snd-card-0
Freeing unused kernel memory: 1024K
Run /init as init process
INIT: version 2.88 bootingusb 1-1: new high-speed USB device number 2 using ci_hdrc

Starting udev
hub 1-1:1.0: USB hub found
hub 1-1:1.0: 5 ports detected
udevd[75]: starting version 3.2.8
random: udevd: uninitialized urandom read (16 bytes read)
random: udevd: uninitialized urandom read (16 bytes read)
random: udevd: uninitialized urandom read (16 bytes read)
udevd[76]: starting eudev-3.2.8
usb 1-1.1: new high-speed USB device number 3 using ci_hdrc
smsc95xx v1.0.6
smsc95xx 1-1.1:1.0 eth0: register 'smsc95xx' at usb-ci_hdrc.0-1.1, smsc95xx USB 2.0 Ethernet, e2:64:5c:3b:2b:55
random: fast init done
EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
hwclock: can't open '/dev/misc/rtc': No such file or directory
Tue Oct  5 13:27:38 UTC 2021
hwclock: can't open '/dev/misc/rtc': No such file or directory
urandom_read: 2 callbacks suppressed
random: dd: uninitialized urandom read (512 bytes read)
Configuring packages on first boot....
(This may take several minutes. Please do not power off the machine.)
Running postinst /etc/rpm-postinsts/100-sysvinit-inittab...
update-rc.d: /etc/init.d/run-postinsts exists during rc.d purge (continuing)
Removing any system startup links for run-postinsts ...
  /etc/rcS.d/S99run-postinsts
INIT: Entering runlevel: 5
Configuring network interfaces... smsc95xx 1-1.1:1.0 eth0: hardware isn't capable of remote wakeup
udhcpc: started, v1.31.0
udhcpc: sending discover
udhcpc: sending discover
udhcpc: sending discover
udhcpc: no lease, forking to background
done.
random: dbus-uuidgen: uninitialized urandom read (12 bytes read)
random: dbus-uuidgen: uninitialized urandom read (8 bytes read)
Starting system message bus: random: dbus-daemon: uninitialized urandom read (12 bytes read)
dbus.
Starting haveged: haveged: listening socket at 3
haveged: haveged starting up


Starting Dropbear SSH server: Generating 2048 bit rsa key, this may take a while...
haveged: haveged: ver: 1.9.5; arch: generic; vend: ; build: (gcc 9.2.0 CTV); collect: 128K

haveged: haveged: cpu: (VC); data: 16K (D); inst: 16K (D); idx: 12/40; sz: 15006/57790

haveged: haveged: tot tests(BA8): A:1/1 B:1/1 continuous tests(B):  last entropy estimate 7.9974

haveged: haveged: fills: 0, generated: 0

random: crng init done
random: 1 urandom warning(s) missed due to ratelimiting
Public key portion is:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDvEu+z3DzICiLWMSknL/uJBeWw6VSzqPx0O5ShvXAdAS+9+Eu8KhE21SQvUXgDtfUp4R7wQOX6PaS+vopa6y1oN8OE/78t8FDja1s74gWDDIkaS8FpSJ5E2L5LElN1vgr49msjd4Nqst/tUH72/oiVa16o1Qaqn6U3rjqZVP10BdfV/AeDUjGO0ofg8OA0WTZwS4Htq+ozxLmhdopKNdQFI9ONBLCQaq5ypdchNdW5RWm/tu9qvdTnPQ5Uox7lwDnyaYkI7hDsepv3kS3bH+E7+Dee3HuEzOulPg05iGWCmCuCPOTSabTx6aTiXsEpeoJRVA/w9K81VE9qLOybGZbV root@petalinux
Fingerprint: sha1!! 34:56:f3:5e:0c:dc:8b:4d:d5:4e:6c:ed:b2:48:7f:1e:4b:7f:d9:33
dropbear.
starting Busybox HTTP Daemon: httpd... done.
hwclock: can't open '/dev/misc/rtc': No such file or directory
Starting internet superserver: inetd.
Init Start
mount: mounting /dev/disk/by-label/BOOT on /mnt/BOOT failed: No such file or directory
Init End
Starting syslogd/klogd: done
Starting tcf-agent: OK

PetaLinux 2020.2 petalinux /dev/ttyPS0

petalinux login:

Hartley

JH

#7
Hi,
I think the exception comes while linux try to generate 2 flash partitions with the same name:
0x000000000000-0x000000500000 : "boot"
0x000000500000-0x000000520000 : "bootenv"
0x000000520000-0x000000fa0000 : "kernel"
0x000000fa0000-0x000001000000 : "spare"
0x000000000000-0x000000500000 : "boot"

I'll ask my colleague who updated the design if he sees the same thing.
Did you download this zip file "TE0726-zynqberrydemo1-vivado_2020.2-build_8_20211006090231.zip"? or other one?
br
John



mch

Hi,
I downloaded the following zip file and reproduced everything again so I can test our design again. Everything works correctly.

https://shop.trenz-electronic.de/trenzdownloads/Trenz_Electronic/Modules_and_Module_Carriers/special/TE0726/Reference_Design/2020.2/zynqberrydemo1/TE0726-zynqberrydemo1-vivado_2020.2-build_8_20211006090231.zip

Could you please inform me which zip file you used. Did you still use our Prebuilt Folder Files? To be sure of your hardware, you can use our prepared files in Prebuilt folder at the beginning.

Best regards,

Mohsen

bigguiness

Hi,

That is the zip file I was using.

I originally followed the steps  as described here:
https://wiki.trenz-electronic.de/display/PD/TE0726+Zynqberry+Demo1

And then used the files in the binaries_TE0726-03M directory.

I just unzipped the archive again and tried using the files in the prebuilt directory. Same result.

Hartley

JH

Hi,
QuoteI just unzipped the archive again and tried using the files in the prebuilt directory. Same result.
Did you reprogram QSPI Flash with the original Boot.bin from the project delivery? and put only original image.ub and boot.scr on SD? Or did you put accidentality boot.bin on sd?

br
John

bigguiness

Hi John,

The QSPI flash is programmed with:
zynqberrydemo1/prebuilt/boot_images/m_512MB/u-boot/BOOT.bin

The SD-card has these two files on it:
zynqberrydemo1/prebuilt/os/pentalinux/512MB/boot.scr
zynqberrydemo1/prebuilt/os/pentalinux/512MB/image.ub

I also used the bitstream in the prebuilt directory:
zynqberrydemo1/prebuilt/hardware/m_512MB/zynqberrydemo1_m_51MB.bit

For the QSPI programming I used this FSBL:
zynqberrydemo1/prebuilt/software/m_512MB/fsbl_flash.elf

Hartley

JH

Hi,
can you try out one time prebuilt binaries from test_board design. Do you have the same behaviour there?
https://wiki.trenz-electronic.de/display/PD/TE0726+Test+Board
QSPI partitions are included in the device tree,  if there is a duplicate, my colleague should also see it. That's very strange.

br
John