cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Contributor
Contributor
3,625 Views
Registered: ‎08-29-2018

ZC702 + Petalinux + ADV7511 HDMI Video out for X server: working example?

Hi all, 

 

I'm using a Xilinx ZC702 EVK (rev 1.1). I want to implement the HDMI video output to connect a display. I want to develop my solution with Petalinux v2018.02-final.

I know the HDMI peripheral is obtained by ADV7511 from Analog Devices and from a specific PL logic which resides on the Zynq Processor. I have already ported (successfully, I think) into my Zynq .bit design and created the BOOT.bin image.

 

My linux-xlnx kernel contains the support for ADV7511, for the I2C subsystem, for the ADI AXI DMA. Am I forgetting something?

 

This is my boot dump:

U-Boot 2018.01 (Nov 05 2018 - 12:32:05 +0100) Xilinx Zynq ZC702

Model: Zynq ZC702 Development Board
Board: Xilinx Zynq
Silicon: v3.1
I2C:   ready
DRAM:  ECC disabled 1 GiB
MMC:   sdhci@e0100000: 0 (SD)
** No device specified **
Using default environment

In:    serial@e0001000
Out:   serial@e0001000
Err:   serial@e0001000
Model: Zynq ZC702 Development Board
Board: Xilinx Zynq
Silicon: v3.1
Net:   ZYNQ GEM: e000b000, phyaddr 7, interface rgmii-id
eth0: ethernet@e000b000
U-BOOT for theo-xlnx-linux

Hit any key to stop autoboot:  0
Device: sdhci@e0100000
Manufacturer ID: 3
OEM: 5344
Name: SS08G
Tran Speed: 50000000
Rd Block Len: 512
SD version 3.0
High Capacity: Yes
Capacity: 7.4 GiB
Bus Width: 4-bit
Erase Group Size: 512 Bytes
reading image.ub
3868116 bytes read in 254 ms (14.5 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:  gzip compressed
     Data Start:   0x10000104
     Data Size:    3842054 Bytes = 3.7 MiB
     Architecture: ARM
     OS:           Linux
     Load Address: 0x00008000
     Entry Point:  0x00008000
     Hash algo:    sha1
     Hash value:   a04a5d67f217f1e89e9017e894aadef862763299
   Verifying Hash Integrity ... sha1+ OK
## Loading fdt from FIT Image at 10000000 ...
   Using 'conf@system-top.dtb' configuration
   Trying 'fdt@system-top.dtb' fdt subimage
     Description:  Flattened Device Tree blob
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x103aa20c
     Data Size:    24149 Bytes = 23.6 KiB
     Architecture: ARM
     Hash algo:    sha1
     Hash value:   6d925556d3db19ad29b822bcf540118b4b43242f
   Verifying Hash Integrity ... sha1+ OK
   Booting using the fdt blob at 0x103aa20c
   Uncompressing Kernel Image ... OK
   Loading Device Tree to 07ff7000, end 07fffe54 ... OK

Starting kernel ...

Booting Linux on physical CPU 0x0
Linux version 4.14.0-xilinx-v2018.2 (oe-user@oe-host) (gcc version 7.2.0 (GCC)) #1 SMP PREEMPT Mon Nov 5 12:41:33 CET 2018
CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=18c5387d
CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
OF: fdt: Machine model: Zynq ZC702 Development Board
bootconsole [earlycon0] enabled
Memory policy: Data cache writealloc
cma: Reserved 16 MiB at 0x3f000000
random: fast init done
percpu: Embedded 16 pages/cpu @ef7c6000 s34700 r8192 d22644 u65536
Built 1 zonelists, mobility grouping on.  Total pages: 260608
Kernel command line: console=ttyPS0,115200 earlyprintk root=/dev/mmcblk0p2 rw rootwait
PID hash table entries: 4096 (order: 2, 16384 bytes)
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
Memory: 1012860K/1048576K available (6144K kernel code, 230K rwdata, 1492K rodata, 1024K init, 151K bss, 19332K reserved, 16384K cma-reserved, 245760K highmem)
Virtual kernel memory layout:
    vector  : 0xffff0000 - 0xffff1000   (   4 kB)
    fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
    vmalloc : 0xf0800000 - 0xff800000   ( 240 MB)
    lowmem  : 0xc0000000 - 0xf0000000   ( 768 MB)
    pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
    modules : 0xbf000000 - 0xbfe00000   (  14 MB)
      .text : 0xc0008000 - 0xc0700000   (7136 kB)
      .init : 0xc0900000 - 0xc0a00000   (1024 kB)
      .data : 0xc0a00000 - 0xc0a39b40   ( 231 kB)
       .bss : 0xc0a39b40 - 0xc0a5fa04   ( 152 kB)
Preemptible hierarchical RCU implementation.
        RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.
        Tasks RCU enabled.
RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
efuse mapped to f0802000
slcr mapped to f0804000
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
zynq_clock_init: clkc starts at f0804100
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
clocksource: ttc_clocksource: mask: 0xffff max_cycles: 0xffff, max_idle_ns: 537538477 ns
timer #0 at f080c000, irq=17
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: 2048 (order: 1, 8192 bytes)
Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes)
CPU: Testing write buffer coherency: ok
CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
Setting up static identity map for 0x100000 - 0x100060
Hierarchical SRCU implementation.
smp: Bringing up secondary CPUs ...
CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
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)
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 @ 0xf0880000
zynq-pinctrl 700.pinctrl: zynq pinctrl initialized
e0001000.serial: ttyPS0 at MMIO 0xe0001000 (irq = 27, base_baud = 3125000) is a xuartps
`▒▒k▒▒▒▒[ttyPS0] enabled
console [ttyPS0] enabled
bootconsole [earlycon0] disabled
bootconsole [earlycon0] disabled
XGpio: /amba_pl/gpio@41200000: registered, base is 1020
vgaarb: loaded
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
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
fpga-region fpga-full: FPGA Region probed
Advanced Linux Sound Architecture Driver Initialized.
clocksource: Switched to clocksource arm_global_timer
NET: Registered protocol family 2
TCP established hash table entries: 8192 (order: 3, 32768 bytes)
TCP bind hash table entries: 8192 (order: 4, 65536 bytes)
TCP: Hash tables configured (established 8192 bind 8192)
UDP hash table entries: 512 (order: 2, 16384 bytes)
UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)
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.
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=30 max_order=18 bucket_order=0
jffs2: version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.
bounce: pool size: 64 pages
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
io scheduler mq-deadline registered
io scheduler kyber registered
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
ERROR: could not get clock /amba_pl/dma@40400000:m_axi_s2mm_aclk(2)
xilinx-vdma 40400000.dma: Xilinx AXI DMA Engine Driver Probed!!
brd: module loaded
loop: module loaded
m25p80 spi0.0: found n25q128a11, expected n25q512a
m25p80 spi0.0: n25q128a11 (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"
libphy: Fixed MDIO Bus: probed
CAN device driver interface
libphy: MACB_mii_bus: probed
macb e000b000.ethernet eth0: Cadence GEM rev 0x00020118 at 0xe000b000 irq 31 (00:0a:35:00:1e:53)
Marvell 88E1116R e000b000.ethernet-ffffffff:07: attached PHY driver [Marvell 88E1116R] (mii_bus:phy_addr=e000b000.ethernet-ffffffff:07, irq=POLL)
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
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 24
si570 2-005d: registered, current frequency 148500000 Hz
i2c i2c-1: Added multiplexed i2c bus 2
i2c i2c-1: Added multiplexed i2c bus 3
at24 4-0054: 1024 byte 24c08 EEPROM, writable, 1 bytes/write
i2c i2c-1: Added multiplexed i2c bus 4
i2c i2c-1: Added multiplexed i2c bus 5
rtc rtc0: invalid alarm value: 2018-11-30 35:73:0
rtc-pcf8563 6-0051: rtc core: registered rtc-pcf8563 as rtc0
i2c i2c-1: Added multiplexed i2c bus 6
i2c i2c-1: Added multiplexed i2c bus 7
i2c i2c-1: Added multiplexed i2c bus 8
i2c i2c-1: Added multiplexed i2c bus 9
pca954x 1-0074: registered 8 multiplexed busses for I2C switch pca9548
IR NEC protocol handler initialized
IR RC5(x/sz) protocol handler initialized
IR RC6 protocol handler initialized
IR JVC protocol handler initialized
IR Sony protocol handler initialized
IR SANYO protocol handler initialized
IR Sharp protocol handler initialized
IR MCE Keyboard/mouse protocol handler initialized
IR XMP protocol handler initialized
ucd9200 9-0034: Device ID UCD9248-80|5.8.0.11400|091112
ucd9200 9-0034: 4 rails configured
ucd9200 9-0035: Device ID UCD9248-80|5.8.0.11400|091112
ucd9200 9-0035: 4 rails configured
ucd9200 9-0036: Device ID UCD9248-80|5.8.0.11400|091112
ucd9200 9-0036: 2 rails configured
cdns-wdt f8005000.watchdog: Xilinx Watchdog Timer at f09bc000 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.sdhci [e0100000.sdhci] using ADMA
ledtrig-cpu: registered to indicate activity on CPUs
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)
can: broadcast manager protocol (rev 20170425 t)
can: netlink gateway (rev 20170425) max_hops=1
Registering SWP/SWPB emulation handler
input: gpio-keys as /devices/soc0/gpio-keys/input/input0
rtc-pcf8563 6-0051: setting system clock to 2018-11-05 14:45:03 UTC (1541429103)
of_cfs_init
of_cfs_init: OK
ALSA device list:
  No soundcards found.
Waiting for root device /dev/mmcblk0p2...
mmc0: new high speed SDHC card at address aaaa
mmcblk0: mmc0:aaaa SS08G 7.40 GiB
 mmcblk0: p1 p2
EXT4-fs (mmcblk0p2): couldn't mount as ext3 due to feature incompatibilities
EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
VFS: Mounted root (ext4 filesystem) on device 179:2.
devtmpfs: mounted
Freeing unused kernel memory: 1024K
INIT: version 2.88 booting
Starting udev
udevd[809]: starting version 3.2.2
udevd[810]: starting eudev-3.2.2
FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
Starting internet superserver: inetd.
INIT: Entering runlevel: 5
Configuring network interfaces... ifup: option with empty value "       gateway"
Starting system message bus: dbus.
Starting Xserver
Starting Dropbear SSH server: dropbear.

Starting rpcbind daemon...done.

X.Org X Server 1.19.3
Release Date: 2017-03-15
X Protocol Version 11, Revision 0
Build Operating System: Linux 3.10.0-327.el7.x86_64 x86_64
Current Operating System: Linux theo-xlnx-linux 4.14.0-xilinx-v2018.2 #1 SMP PREEMPT Mon Nov 5 12:41:33 CET 2018 armv7l
Kernel command line: console=ttyPS0,115200 earlyprintk root=/dev/mmcblk0p2 rw rootwait
Build Date: 11 June 2018  05:07:06PM

Current version of pixman: 0.34.0
        Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/Xorg.0.log", Time: Mon Nov  5 14:45:06 2018
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
Starting watchdog: (EE)
Fatal server error:
(EE) no screens found(EE)
(EE)
Please consult the The X.Org Foundation support
         at http://wiki.x.org
 for help.
(EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
(EE)
(EE) Server terminated with error (1). Closing log file.
[  OK  ]
starting statd: done
Starting bluetooth: bluetoothd.
Starting Distributed Compiler Daemon: distcc.
exportfs: can't open /etc/exports for reading
NFS daemon support not enabled in kernel
Starting syslogd/klogd: done
Starting internet superserver: xinetd.
 * Starting Avahi mDNS/DNS-SD Daemon: avahi-daemon
Starting Telephony daemon
Starting tcf-agent: OK

PetaLinux 2018.2 theo-xlnx-linux /dev/ttyPS0

theo-xlnx-linux login: xinit: giving up
xinit: unable to connect to X server: Network is unreachable
xinit: server error

I've quickly read a lot of documentation but I was unable to find a working petalinux example of HDMI implementation into ZC702 board.

 

Can anybody give me some suggestions? What's wrong in my design? 

 

Thanks in advance for your answers.

0 Kudos
14 Replies
Highlighted
Contributor
Contributor
3,599 Views
Registered: ‎08-29-2018

Hi all,

 

I've updated my petalinux kernel configuration, because I've found that the ADV7511 kernel support wasn't complete.

 

This is the updated boot dump:

U-Boot 2018.01 (Nov 05 2018 - 16:52:06 +0100) Xilinx Zynq ZC702

Model: Zynq ZC702 Development Board
Board: Xilinx Zynq
Silicon: v3.1
I2C:   ready
DRAM:  ECC disabled 1 GiB
MMC:   sdhci@e0100000: 0 (SD)
** No device specified **
Using default environment

In:    serial@e0001000
Out:   serial@e0001000
Err:   serial@e0001000
Model: Zynq ZC702 Development Board
Board: Xilinx Zynq
Silicon: v3.1
Net:   ZYNQ GEM: e000b000, phyaddr 7, interface rgmii-id
eth0: ethernet@e000b000
U-BOOT for theo-xlnx-linux

Hit any key to stop autoboot:  0
Device: sdhci@e0100000
Manufacturer ID: 3
OEM: 5344
Name: SS08G
Tran Speed: 50000000
Rd Block Len: 512
SD version 3.0
High Capacity: Yes
Capacity: 7.4 GiB
Bus Width: 4-bit
Erase Group Size: 512 Bytes
reading image.ub
3875144 bytes read in 252 ms (14.7 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:  gzip compressed
     Data Start:   0x10000104
     Data Size:    3849083 Bytes = 3.7 MiB
     Architecture: ARM
     OS:           Linux
     Load Address: 0x00008000
     Entry Point:  0x00008000
     Hash algo:    sha1
     Hash value:   842a9a1cf06a499ff90af824d3ad7a867885e833
   Verifying Hash Integrity ... sha1+ OK
## Loading fdt from FIT Image at 10000000 ...
   Using 'conf@system-top.dtb' configuration
   Trying 'fdt@system-top.dtb' fdt subimage
     Description:  Flattened Device Tree blob
     Type:         Flat Device Tree
     Compression:  uncompressed
     Data Start:   0x103abd80
     Data Size:    24149 Bytes = 23.6 KiB
     Architecture: ARM
     Hash algo:    sha1
     Hash value:   6d925556d3db19ad29b822bcf540118b4b43242f
   Verifying Hash Integrity ... sha1+ OK
   Booting using the fdt blob at 0x103abd80
   Uncompressing Kernel Image ... OK
   Loading Device Tree to 07ff7000, end 07fffe54 ... OK

Starting kernel ...

Booting Linux on physical CPU 0x0
Linux version 4.14.0-xilinx-v2018.2 (oe-user@oe-host) (gcc version 7.2.0 (GCC)) #1 SMP PREEMPT Mon Nov 5 17:00:30 CET 2018
CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=18c5387d
CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
OF: fdt: Machine model: Zynq ZC702 Development Board
bootconsole [earlycon0] enabled
Memory policy: Data cache writealloc
cma: Reserved 16 MiB at 0x3f000000
random: fast init done
percpu: Embedded 16 pages/cpu @ef7c6000 s34700 r8192 d22644 u65536
Built 1 zonelists, mobility grouping on.  Total pages: 260608
Kernel command line: console=ttyPS0,115200 earlyprintk root=/dev/mmcblk0p2 rw rootwait
PID hash table entries: 4096 (order: 2, 16384 bytes)
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
Memory: 1012860K/1048576K available (6144K kernel code, 231K rwdata, 1496K rodata, 1024K init, 151K bss, 19332K reserved, 16384K cma-reserved, 245760K highmem)
Virtual kernel memory layout:
    vector  : 0xffff0000 - 0xffff1000   (   4 kB)
    fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
    vmalloc : 0xf0800000 - 0xff800000   ( 240 MB)
    lowmem  : 0xc0000000 - 0xf0000000   ( 768 MB)
    pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
    modules : 0xbf000000 - 0xbfe00000   (  14 MB)
      .text : 0xc0008000 - 0xc0700000   (7136 kB)
      .init : 0xc0900000 - 0xc0a00000   (1024 kB)
      .data : 0xc0a00000 - 0xc0a39cc0   ( 232 kB)
       .bss : 0xc0a39cc0 - 0xc0a5fb84   ( 152 kB)
Preemptible hierarchical RCU implementation.
        RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.
        Tasks RCU enabled.
RCU: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=2
NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
efuse mapped to f0802000
slcr mapped to f0804000
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
zynq_clock_init: clkc starts at f0804100
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
clocksource: ttc_clocksource: mask: 0xffff max_cycles: 0xffff, max_idle_ns: 537538477 ns
timer #0 at f080c000, irq=17
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: 2048 (order: 1, 8192 bytes)
Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes)
CPU: Testing write buffer coherency: ok
CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
Setting up static identity map for 0x100000 - 0x100060
Hierarchical SRCU implementation.
smp: Bringing up secondary CPUs ...
CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
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)
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 @ 0xf0880000
zynq-pinctrl 700.pinctrl: zynq pinctrl initialized
e0001000.serial: ttyPS0 at MMIO 0xe0001000 (irq = 27, base_baud = 3125000) is a xuartps
`▒▒k▒▒▒▒[ttyPS0] enabled
console [ttyPS0] enabled
bootconsole [earlycon0] disabled
bootconsole [earlycon0] disabled
XGpio: /amba_pl/gpio@41200000: registered, base is 1020
vgaarb: loaded
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
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
fpga-region fpga-full: FPGA Region probed
Advanced Linux Sound Architecture Driver Initialized.
clocksource: Switched to clocksource arm_global_timer
NET: Registered protocol family 2
TCP established hash table entries: 8192 (order: 3, 32768 bytes)
TCP bind hash table entries: 8192 (order: 4, 65536 bytes)
TCP: Hash tables configured (established 8192 bind 8192)
UDP hash table entries: 512 (order: 2, 16384 bytes)
UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)
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.
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=30 max_order=18 bucket_order=0
jffs2: version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.
bounce: pool size: 64 pages
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
io scheduler mq-deadline registered
io scheduler kyber registered
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
ERROR: could not get clock /amba_pl/dma@40400000:m_axi_s2mm_aclk(2)
xilinx-vdma 40400000.dma: Xilinx AXI DMA Engine Driver Probed!!
brd: module loaded
loop: module loaded
m25p80 spi0.0: found n25q128a11, expected n25q512a
m25p80 spi0.0: n25q128a11 (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"
libphy: Fixed MDIO Bus: probed
CAN device driver interface
libphy: MACB_mii_bus: probed
macb e000b000.ethernet eth0: Cadence GEM rev 0x00020118 at 0xe000b000 irq 31 (00:0a:35:00:1e:53)
Marvell 88E1116R e000b000.ethernet-ffffffff:07: attached PHY driver [Marvell 88E1116R] (mii_bus:phy_addr=e000b000.ethernet-ffffffff:07, irq=POLL)
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
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 24
si570 2-005d: registered, current frequency 148500000 Hz
i2c i2c-1: Added multiplexed i2c bus 2
adv7511 3-0039: 3-0039 supply avdd not found, using dummy regulator
adv7511 3-0039: 3-0039 supply dvdd not found, using dummy regulator
adv7511 3-0039: 3-0039 supply pvdd not found, using dummy regulator
adv7511 3-0039: 3-0039 supply bgvdd not found, using dummy regulator
adv7511 3-0039: 3-0039 supply dvdd-3v not found, using dummy regulator
i2c i2c-1: Added multiplexed i2c bus 3
at24 4-0054: 1024 byte 24c08 EEPROM, writable, 1 bytes/write
i2c i2c-1: Added multiplexed i2c bus 4
i2c i2c-1: Added multiplexed i2c bus 5
rtc rtc0: invalid alarm value: 2018-11-30 35:73:0
rtc-pcf8563 6-0051: rtc core: registered rtc-pcf8563 as rtc0
i2c i2c-1: Added multiplexed i2c bus 6
i2c i2c-1: Added multiplexed i2c bus 7
i2c i2c-1: Added multiplexed i2c bus 8
i2c i2c-1: Added multiplexed i2c bus 9
pca954x 1-0074: registered 8 multiplexed busses for I2C switch pca9548
IR NEC protocol handler initialized
IR RC5(x/sz) protocol handler initialized
IR RC6 protocol handler initialized
IR JVC protocol handler initialized
IR Sony protocol handler initialized
IR SANYO protocol handler initialized
IR Sharp protocol handler initialized
IR MCE Keyboard/mouse protocol handler initialized
IR XMP protocol handler initialized
ucd9200 9-0034: Device ID UCD9248-80|5.8.0.11400|091112
ucd9200 9-0034: 4 rails configured
ucd9200 9-0035: Device ID UCD9248-80|5.8.0.11400|091112
ucd9200 9-0035: 4 rails configured
ucd9200 9-0036: Device ID UCD9248-80|5.8.0.11400|091112
ucd9200 9-0036: 2 rails configured
cdns-wdt f8005000.watchdog: Xilinx Watchdog Timer at f09bc000 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.sdhci [e0100000.sdhci] using ADMA
ledtrig-cpu: registered to indicate activity on CPUs
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)
can: broadcast manager protocol (rev 20170425 t)
can: netlink gateway (rev 20170425) max_hops=1
Registering SWP/SWPB emulation handler
input: gpio-keys as /devices/soc0/gpio-keys/input/input0
rtc-pcf8563 6-0051: setting system clock to 2018-11-05 16:24:13 UTC (1541435053)
of_cfs_init
of_cfs_init: OK
ALSA device list:
  No soundcards found.
Waiting for root device /dev/mmcblk0p2...
mmc0: new high speed SDHC card at address aaaa
mmcblk0: mmc0:aaaa SS08G 7.40 GiB
 mmcblk0: p1 p2
EXT4-fs (mmcblk0p2): couldn't mount as ext3 due to feature incompatibilities
EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
VFS: Mounted root (ext4 filesystem) on device 179:2.
devtmpfs: mounted
Freeing unused kernel memory: 1024K
INIT: version 2.88 booting
Starting udev
udevd[814]: starting version 3.2.2
udevd[815]: starting eudev-3.2.2
FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
Starting internet superserver: inetd.
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... ifup: option with empty value "       gateway"
Starting system message bus: dbus.
Starting Xserver
Starting Dropbear SSH server: Generating key, this may take a while...


X.Org X Server 1.19.3
Release Date: 2017-03-15
X Protocol Version 11, Revision 0
Build Operating System: Linux 3.10.0-327.el7.x86_64 x86_64
Current Operating System: Linux theo-xlnx-linux 4.14.0-xilinx-v2018.2 #1 SMP PREEMPT Mon Nov 5 17:00:30 CET 2018 armv7l
Kernel command line: console=ttyPS0,115200 earlyprintk root=/dev/mmcblk0p2 rw rootwait
Build Date: 11 June 2018  05:07:06PM

Current version of pixman: 0.34.0
        Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/Xorg.0.log", Time: Mon Nov  5 16:24:16 2018
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
(EE)
Fatal server error:
(EE) no screens found(EE)
(EE)
Please consult the The X.Org Foundation support
         at http://wiki.x.org
 for help.
(EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
(EE)
(EE) Server terminated with error (1). Closing log file.

PetaLinux 2018.2 theo-xlnx-linux /dev/ttyPS0

theo-xlnx-linux login:

Any ideas?

 

Thanks in advance for your answers.

 

0 Kudos
Highlighted
Voyager
Voyager
3,578 Views
Registered: ‎10-21-2015

Highlighted
Contributor
Contributor
3,535 Views
Registered: ‎08-29-2018

Hi hokim,

 

thank you for your reply. I've followed the link that you have suggested. 

 

I've integrated the recipes in my petalinux/yocto project (following the UG1144 guide and the walkthrough of the post) and I was able to build correctly the modules adv7511 and clk-axi-clkgen.

 

Unfortunately, I'm not able to build the last module: adi-axi-hdmi. I attach below the output of the command "petalinux-build -c adi-axi-hdmi":

 

user@localhost:~/xilinx_work/peta-xlnx-linux$ petalinux-build -c adi-axi-hdmi
[INFO] building adi-axi-hdmi
[INFO] sourcing bitbake
INFO: bitbake adi-axi-hdmi
Loading cache: 100% |############################################################################################| Time: 0:00:01
Loaded 3426 entries from dependency cache.
Parsing recipes: 100% |##########################################################################################| Time: 0:00:06
Parsing of 2555 .bb files complete (2520 cached, 35 parsed). 3428 targets, 148 skipped, 0 masked, 0 errors.
NOTE: Resolving any missing task queue dependencies
Initialising tasks: 100% |#######################################################################################| Time: 0:00:01
Checking sstate mirror object availability: 100% |###############################################################| Time: 0:00:03
NOTE: Executing SetScene Tasks
NOTE: Executing RunQueue Tasks
ERROR: adi-axi-hdmi-1.0-r0 do_compile: oe_runmake failed
ERROR: adi-axi-hdmi-1.0-r0 do_compile: Function failed: do_compile (log file is located at /xilinx_work/peta-xlnx-linux/build/tmp/work/plnx_zynq7-xilinx-linux-gnueabi/adi-axi-hdmi/1.0-r0/temp/log.do_compile.2235)
ERROR: Logfile of failure stored in: /xilinx_work/peta-xlnx-linux/build/tmp/work/plnx_zynq7-xilinx-linux-gnueabi/adi-axi-hdmi/1.0-r0/temp/log.do_compile.2235
Log data follows:
| DEBUG: Executing shell function do_compile
| NOTE: make -j 2 KERNEL_src=/xilinx_work/peta-xlnx-linux/build/tmp/work-shared/plnx-zynq7/kernel-source KERNEL_PATH=/xilinx_work/peta-xlnx-linux/build/tmp/work-shared/plnx-zynq7/kernel-source KERNEL_VERSION=4.14.0-xilinx-v2018.2 CC=arm-xilinx-linux-gnueabi-gcc  -mno-thumb-interwork -marm -fuse-ld=bfd LD=arm-xilinx-linux-gnueabi-ld.bfd   AR=arm-xilinx-linux-gnueabi-ar  O=/xilinx_work/peta-xlnx-linux/build/tmp/work-shared/plnx-zynq7/kernel-build-artifacts KBUILD_EXTRA_SYMBOLS=
| make -C /xilinx_work/peta-xlnx-linux/build/tmp/work-shared/plnx-zynq7/kernel-source M=/xilinx_work/peta-xlnx-linux/build/tmp/work/plnx_zynq7-xilinx-linux-gnueabi/adi-axi-hdmi/1.0-r0
| make[1]: Entering directory '/xilinx_work/peta-xlnx-linux/build/tmp/work-shared/plnx-zynq7/kernel-source'
| make[2]: Entering directory '/xilinx_work/peta-xlnx-linux/build/tmp/work-shared/plnx-zynq7/kernel-build-artifacts'
|   AR      /xilinx_work/peta-xlnx-linux/build/tmp/work/plnx_zynq7-xilinx-linux-gnueabi/adi-axi-hdmi/1.0-r0/built-in.o
|   CC [M]  /xilinx_work/peta-xlnx-linux/build/tmp/work/plnx_zynq7-xilinx-linux-gnueabi/adi-axi-hdmi/1.0-r0/axi_hdmi_drv.o
|   CC [M]  /xilinx_work/peta-xlnx-linux/build/tmp/work/plnx_zynq7-xilinx-linux-gnueabi/adi-axi-hdmi/1.0-r0/axi_hdmi_encoder.o
| /xilinx_work/peta-xlnx-linux/build/tmp/work/plnx_zynq7-xilinx-linux-gnueabi/adi-axi-hdmi/1.0-r0/axi_hdmi_drv.c: In function 'axi_hdmi_load':
| /xilinx_work/peta-xlnx-linux/build/tmp/work/plnx_zynq7-xilinx-linux-gnueabi/adi-axi-hdmi/1.0-r0/axi_hdmi_drv.c:86:19: error: too many arguments to function 'drm_fbdev_cma_init'
|   private->fbdev = drm_fbdev_cma_init(dev, 32, 1, 1);
|                    ^~~~~~~~~~~~~~~~~~
| In file included from /xilinx_work/peta-xlnx-linux/build/tmp/work/plnx_zynq7-xilinx-linux-gnueabi/adi-axi-hdmi/1.0-r0/axi_hdmi_drv.h:14:0,
|                  from /xilinx_work/peta-xlnx-linux/build/tmp/work/plnx_zynq7-xilinx-linux-gnueabi/adi-axi-hdmi/1.0-r0/axi_hdmi_drv.c:26:
| /xilinx_work/peta-xlnx-linux/build/tmp/work-shared/plnx-zynq7/kernel-source/include/drm/drm_fb_cma_helper.h:22:23: note: declared here
|  struct drm_fbdev_cma *drm_fbdev_cma_init(struct drm_device *dev,
|                        ^~~~~~~~~~~~~~~~~~
| /xilinx_work/peta-xlnx-linux/build/tmp/work/plnx_zynq7-xilinx-linux-gnueabi/adi-axi-hdmi/1.0-r0/axi_hdmi_drv.c: At top level:
| /xilinx_work/peta-xlnx-linux/build/tmp/work/plnx_zynq7-xilinx-linux-gnueabi/adi-axi-hdmi/1.0-r0/axi_hdmi_drv.c:133:14: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
|   .unload   = axi_hdmi_unload,
|               ^~~~~~~~~~~~~~~
| /xilinx_work/peta-xlnx-linux/build/tmp/work/plnx_zynq7-xilinx-linux-gnueabi/adi-axi-hdmi/1.0-r0/axi_hdmi_drv.c:133:14: note: (near initialization for 'axi_hdmi_driver.unload')
| /xilinx_work/peta-xlnx-linux/build/tmp/work/plnx_zynq7-xilinx-linux-gnueabi/adi-axi-hdmi/1.0-r0/axi_hdmi_encoder.c: In function 'axi_hdmi_encoder_create':
| /xilinx_work/peta-xlnx-linux/build/tmp/work/plnx_zynq7-xilinx-linux-gnueabi/adi-axi-hdmi/1.0-r0/axi_hdmi_encoder.c:389:27: error: passing argument 1 of 'drm_bridge_attach' from incompatible pointer type [-Werror=incompatible-pointer-types]
|    ret = drm_bridge_attach(dev, bridge);
|                            ^~~
| In file included from /xilinx_work/peta-xlnx-linux/build/tmp/work-shared/plnx-zynq7/kernel-source/include/drm/drm_crtc.h:43:0,
|                  from /xilinx_work/peta-xlnx-linux/build/tmp/work-shared/plnx-zynq7/kernel-source/include/drm/drm_atomic_helper.h:31,
|                  from /xilinx_work/peta-xlnx-linux/build/tmp/work/plnx_zynq7-xilinx-linux-gnueabi/adi-axi-hdmi/1.0-r0/axi_hdmi_encoder.c:19:
| /xilinx_work/peta-xlnx-linux/build/tmp/work-shared/plnx-zynq7/kernel-source/include/drm/drm_bridge.h:251:5: note: expected 'struct drm_encoder *' but argument is of type 'struct drm_device *'
|  int drm_bridge_attach(struct drm_encoder *encoder, struct drm_bridge *bridge,
|      ^~~~~~~~~~~~~~~~~
| /xilinx_work/peta-xlnx-linux/build/tmp/work/plnx_zynq7-xilinx-linux-gnueabi/adi-axi-hdmi/1.0-r0/axi_hdmi_encoder.c:389:9: error: too few arguments to function 'drm_bridge_attach'
|    ret = drm_bridge_attach(dev, bridge);
|          ^~~~~~~~~~~~~~~~~
| In file included from /xilinx_work/peta-xlnx-linux/build/tmp/work-shared/plnx-zynq7/kernel-source/include/drm/drm_crtc.h:43:0,
|                  from /xilinx_work/peta-xlnx-linux/build/tmp/work-shared/plnx-zynq7/kernel-source/include/drm/drm_atomic_helper.h:31,
|                  from /xilinx_work/peta-xlnx-linux/build/tmp/work/plnx_zynq7-xilinx-linux-gnueabi/adi-axi-hdmi/1.0-r0/axi_hdmi_encoder.c:19:
| /xilinx_work/peta-xlnx-linux/build/tmp/work-shared/plnx-zynq7/kernel-source/include/drm/drm_bridge.h:251:5: note: declared here
|  int drm_bridge_attach(struct drm_encoder *encoder, struct drm_bridge *bridge,
|      ^~~~~~~~~~~~~~~~~
| /xilinx_work/peta-xlnx-linux/build/tmp/work/plnx_zynq7-xilinx-linux-gnueabi/adi-axi-hdmi/1.0-r0/axi_hdmi_encoder.c: At top level:
| /xilinx_work/peta-xlnx-linux/build/tmp/work/plnx_zynq7-xilinx-linux-gnueabi/adi-axi-hdmi/1.0-r0/axi_hdmi_encoder.c:471:10: error: 'drm_atomic_helper_connector_dpms' undeclared here (not in a function); did you mean 'drm_atomic_helper_connector_reset'?
|   .dpms = drm_atomic_helper_connector_dpms,
|           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|           drm_atomic_helper_connector_reset
| /xilinx_work/peta-xlnx-linux/build/tmp/work/plnx_zynq7-xilinx-linux-gnueabi/adi-axi-hdmi/1.0-r0/axi_hdmi_drv.c:138:21: error: 'drm_gem_cma_dumb_map_offset' undeclared here (not in a function); did you mean 'drm_gem_dumb_map_offset'?
|   .dumb_map_offset = drm_gem_cma_dumb_map_offset,
|                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~
|                      drm_gem_dumb_map_offset
| cc1: some warnings being treated as errors
| make[3]: *** [/xilinx_work/peta-xlnx-linux/build/tmp/work-shared/plnx-zynq7/kernel-source/scripts/Makefile.build:314: /xilinx_work/peta-xlnx-linux/build/tmp/work/plnx_zynq7-xilinx-linux-gnueabi/adi-axi-hdmi/1.0-r0/axi_hdmi_encoder.o] Error 1
| make[3]: *** Waiting for unfinished jobs....
| /xilinx_work/peta-xlnx-linux/build/tmp/work/plnx_zynq7-xilinx-linux-gnueabi/adi-axi-hdmi/1.0-r0/axi_hdmi_drv.c: In function 'axi_hdmi_platform_probe':
| /xilinx_work/peta-xlnx-linux/build/tmp/work/plnx_zynq7-xilinx-linux-gnueabi/adi-axi-hdmi/1.0-r0/axi_hdmi_drv.c:216:9: error: implicit declaration of function 'drm_platform_init'; did you mean 'early_platform_init'? [-Werror=implicit-function-declaration]
|   return drm_platform_init(&axi_hdmi_driver, pdev);
|          ^~~~~~~~~~~~~~~~~
|          early_platform_init
| cc1: some warnings being treated as errors
| make[3]: *** [/xilinx_work/peta-xlnx-linux/build/tmp/work-shared/plnx-zynq7/kernel-source/scripts/Makefile.build:314: /xilinx_work/peta-xlnx-linux/build/tmp/work/plnx_zynq7-xilinx-linux-gnueabi/adi-axi-hdmi/1.0-r0/axi_hdmi_drv.o] Error 1
| make[2]: *** [/xilinx_work/peta-xlnx-linux/build/tmp/work-shared/plnx-zynq7/kernel-source/Makefile:1503: _module_/xilinx_work/peta-xlnx-linux/build/tmp/work/plnx_zynq7-xilinx-linux-gnueabi/adi-axi-hdmi/1.0-r0] Error 2
| make[2]: Leaving directory '/xilinx_work/peta-xlnx-linux/build/tmp/work-shared/plnx-zynq7/kernel-build-artifacts'
| make[1]: *** [Makefile:146: sub-make] Error 2
| make[1]: Leaving directory '/xilinx_work/peta-xlnx-linux/build/tmp/work-shared/plnx-zynq7/kernel-source'
| make: *** [Makefile:7: all] Error 2
| ERROR: oe_runmake failed
| WARNING: /xilinx_work/peta-xlnx-linux/build/tmp/work/plnx_zynq7-xilinx-linux-gnueabi/adi-axi-hdmi/1.0-r0/temp/run.do_compile.2235:1 exit 1 from 'exit 1'
| ERROR: Function failed: do_compile (log file is located at /xilinx_work/peta-xlnx-linux/build/tmp/work/plnx_zynq7-xilinx-linux-gnueabi/adi-axi-hdmi/1.0-r0/temp/log.do_compile.2235)
ERROR: Task (/xilinx_work/peta-xlnx-linux/project-spec/meta-user/recipes-modules/adi-axi-hdmi/adi-axi-hdmi.bb:do_compile) failed with exit code '1'
NOTE: Tasks Summary: Attempted 727 tasks of which 724 didn't need to be rerun and 1 failed.

Summary: 1 task failed:
  /xilinx_work/peta-xlnx-linux/project-spec/meta-user/recipes-modules/adi-axi-hdmi/adi-axi-hdmi.bb:do_compile
Summary: There were 2 ERROR messages shown, returning a non-zero exit code.
ERROR: Failed to build adi-axi-hdmi
user@localhost:~/xilinx_work/peta-xlnx-linux$

May you help me?

 

Thanks in advance for your answers.

 

0 Kudos
Highlighted
Voyager
Voyager
3,525 Views
Registered: ‎10-21-2015

The old version was used for petalinux2017.4

The attached file is the update for petalinux2018.2

 

https://github.com/analogdevicesinc/linux/tree/master/drivers/gpu/drm/adi_axi_hdmi

https://github.com/analogdevicesinc/linux/tree/master/drivers/gpu/drm/i2c : adv7511.h, adv7511_core.c adv7511_audio.c

https://github.com/analogdevicesinc/linux/blob/master/drivers/clk/clk-axi-clkgen.c

 

We should refer the above link whenever petalinux updates

 

0 Kudos
Highlighted
Contributor
Contributor
3,505 Views
Registered: ‎08-29-2018

Hi, 

 

Thank you hokim, now I've compiled all the modules succesfully and I've included them into my rootfs, but with no luck: adv7511 isn't working correctly.

 

The kernel outputs the messages related to the adv7511 voltages:

adv7511 3-0039: 3-0039 supply avdd not found, using dummy regulator
adv7511 3-0039: 3-0039 supply dvdd not found, using dummy regulator
adv7511 3-0039: 3-0039 supply pvdd not found, using dummy regulator
adv7511 3-0039: 3-0039 supply bgvdd not found, using dummy regulator
adv7511 3-0039: 3-0039 supply dvdd-3v not found, using dummy regulator

 

I think the device tree is correct: I've double checked the petalinux sources, the i2c mux and the adv7511 are mapped in the zc702 dts file.

 

I've tryed different PL implementations (my product and the .bit sourced by Analog Devices), with no luck and the same kernel output.

I've also included the fsbl.elf derived from the two different PL vivado projects.

 

In the petalinux kernel menuconfig I've included the support of the features listed in the post that you have linked above.

 

Any ideas or debug tools to understand where could be the problem?

 

P.s.: the adv7511 supplied with my ZC702 board works correctly. I've flashed into the SD card the analog devices .img and I saw the framebuffer working correctly.

 

Thanks in advance for your answers!

0 Kudos
Highlighted
Voyager
Voyager
3,493 Views
Registered: ‎10-21-2015

0 Kudos
Highlighted
Contributor
Contributor
3,027 Views
Registered: ‎08-29-2018

Hi,

I'm not using Zed board, but only Xilinx ZC702: therefore, I need informations and hints strictly related to ZC702.

Actually, I successfully developed my project, which doesn't require ADV7511, but, for debug purposes, I need to have the HDMI output up&running.

Honestly, I don't understand why ADV7511 (HDMI output) on ZC702 doesn't work "out of the box" in Xilinx Petalinux. This is the first time I encounter an evaluation kit with a primary peripheral installed but not activated by the vendor.

1) Why do I need to change the kernel from petalinux Kernel to ADI kernel? The 2018.3 xlnx kernel is not sufficient to have ADV7511 up&running?

2) I don't see in ADI kernel a specific defconfig for ZC702 + ADV7511, but only a generic zynq defconfig (I've opened it with menuconfig and I saw the ADV7511 kernel support was not enabled..)

3) Do I have to modify the xilinx device tree? Why petalinux 2018.3 xlnx kernel is not sufficient to have ADV7511 up&running?

Thanks in advance for the help.

 

0 Kudos
Highlighted
Contributor
Contributor
287 Views
Registered: ‎08-29-2018

Hi,

I'm trying to obtain a working HDMI interface for ADV7511. My purpose is to setup Linux [Petalinux] and Xorg. I'm testing this solution with a Xilinx ZC702 board. I'm developing this solution with 2020.1 release of Xilinx tools.

  • I successfully compiled the HDL design by using the master branch of ADI hdl (https://github.com/analogdevicesinc/hdl) for ZC702; the design implements all ADI IPs and matches the timing requirements;
  • I successfully compiled the ADI linux kernel by using the master branch of ADI linux (https://github.com/analogdevicesinc/linux) by inserting the kernel as ext_kernel_source into Petalinux build system; I've also inserted all the ADI linux modules, to be sure all the necessary drivers are available to be probed by the kernel;
  • I've [successfully, I think] edited the device tree source by modifying system-user.dtsi because Petalinux doesn't create a correct DTB for ADI AXI PL IPs; I've also decompiled the DTB into the DTS source to verify that Petalinux has modified the nodes according to my requirements.

Unfortunately, I encounter some issues and I'm not sure where is the problem.

Here is the DTB [system.dts] generated for ZC702:

/dts-v1/;

/ {
	#address-cells = <0x1>;
	#size-cells = <0x1>;
	compatible = "xlnx,zynq-zc702", "xlnx,zynq-7000";
	model = "Zynq ZC702 Development Board";

	cpus {
		#address-cells = <0x1>;
		#size-cells = <0x0>;

		cpu@0 {
			compatible = "arm,cortex-a9";
			device_type = "cpu";
			reg = <0x0>;
			clocks = <0x1 0x3>;
			clock-latency = <0x3e8>;
			cpu0-supply = <0x2>;
			operating-points = <0xa2c2a 0xf4240 0x51615 0xf4240>;
			phandle = <0x1a>;
		};

		cpu@1 {
			compatible = "arm,cortex-a9";
			device_type = "cpu";
			reg = <0x1>;
			clocks = <0x1 0x3>;
			phandle = <0x1c>;
		};
	};

	fpga-full {
		compatible = "fpga-region";
		fpga-mgr = <0x3>;
		#address-cells = <0x1>;
		#size-cells = <0x1>;
		ranges;
		phandle = <0x23>;
	};

	pmu@f8891000 {
		compatible = "arm,cortex-a9-pmu";
		interrupts = <0x0 0x5 0x4 0x0 0x6 0x4>;
		interrupt-parent = <0x4>;
		reg = <0xf8891000 0x1000 0xf8893000 0x1000>;
	};

	fixedregulator {
		compatible = "regulator-fixed";
		regulator-name = "VCCPINT";
		regulator-min-microvolt = <0xf4240>;
		regulator-max-microvolt = <0xf4240>;
		regulator-boot-on;
		regulator-always-on;
		phandle = <0x2>;
	};

	replicator {
		compatible = "arm,coresight-static-replicator";
		clocks = <0x1 0x1b 0x1 0x2e 0x1 0x2f>;
		clock-names = "apb_pclk", "dbg_trc", "dbg_apb";

		out-ports {
			#address-cells = <0x1>;
			#size-cells = <0x0>;

			port@0 {
				reg = <0x0>;

				endpoint {
					remote-endpoint = <0x5>;
					phandle = <0x16>;
				};
			};

			port@1 {
				reg = <0x1>;

				endpoint {
					remote-endpoint = <0x6>;
					phandle = <0x15>;
				};
			};
		};

		in-ports {

			port {

				endpoint {
					remote-endpoint = <0x7>;
					phandle = <0x17>;
				};
			};
		};
	};

	amba {
		u-boot,dm-pre-reloc;
		compatible = "simple-bus";
		#address-cells = <0x1>;
		#size-cells = <0x1>;
		interrupt-parent = <0x4>;
		ranges;
		phandle = <0x24>;

		adc@f8007100 {
			compatible = "xlnx,zynq-xadc-1.00.a";
			reg = <0xf8007100 0x20>;
			interrupts = <0x0 0x7 0x4>;
			interrupt-parent = <0x4>;
			clocks = <0x1 0xc>;
			phandle = <0x25>;
		};

		can@e0008000 {
			compatible = "xlnx,zynq-can-1.0";
			status = "okay";
			clocks = <0x1 0x13 0x1 0x24>;
			clock-names = "can_clk", "pclk";
			reg = <0xe0008000 0x1000>;
			interrupts = <0x0 0x1c 0x4>;
			interrupt-parent = <0x4>;
			tx-fifo-depth = <0x40>;
			rx-fifo-depth = <0x40>;
			pinctrl-names = "default";
			pinctrl-0 = <0x8>;
			phandle = <0x26>;
		};

		can@e0009000 {
			compatible = "xlnx,zynq-can-1.0";
			status = "disabled";
			clocks = <0x1 0x14 0x1 0x25>;
			clock-names = "can_clk", "pclk";
			reg = <0xe0009000 0x1000>;
			interrupts = <0x0 0x33 0x4>;
			interrupt-parent = <0x4>;
			tx-fifo-depth = <0x40>;
			rx-fifo-depth = <0x40>;
			phandle = <0x27>;
		};

		gpio@e000a000 {
			compatible = "xlnx,zynq-gpio-1.0";
			#gpio-cells = <0x2>;
			clocks = <0x1 0x2a>;
			gpio-controller;
			interrupt-controller;
			#interrupt-cells = <0x2>;
			interrupt-parent = <0x4>;
			interrupts = <0x0 0x14 0x4>;
			reg = <0xe000a000 0x1000>;
			pinctrl-names = "default";
			pinctrl-0 = <0x9>;
			emio-gpio-width = <0x40>;
			gpio-mask-high = <0x0>;
			gpio-mask-low = <0x5600>;
			phandle = <0xc>;
		};

		i2c@e0004000 {
			compatible = "cdns,i2c-r1p10";
			status = "okay";
			clocks = <0x1 0x26>;
			interrupt-parent = <0x4>;
			interrupts = <0x0 0x19 0x4>;
			reg = <0xe0004000 0x1000>;
			#address-cells = <0x1>;
			#size-cells = <0x0>;
			pinctrl-names = "default", "gpio";
			pinctrl-0 = <0xa>;
			pinctrl-1 = <0xb>;
			scl-gpios = <0xc 0x32 0x0>;
			sda-gpios = <0xc 0x33 0x0>;
			clock-frequency = <0x61a80>;
			i2c-reset = <0xc 0xd 0x0>;
			phandle = <0x28>;

			i2c-mux@74 {
				compatible = "nxp,pca9548";
				#address-cells = <0x1>;
				#size-cells = <0x0>;
				reg = <0x74>;

				i2c@0 {
					#address-cells = <0x1>;
					#size-cells = <0x0>;
					reg = <0x0>;

					clock-generator@5d {
						#clock-cells = <0x0>;
						compatible = "silabs,si570";
						temperature-stability = <0x32>;
						reg = <0x5d>;
						factory-fout = <0x9502f90>;
						clock-frequency = <0x8d9ee20>;
						phandle = <0x29>;
					};
				};

				i2c@1 {
					#address-cells = <0x1>;
					#size-cells = <0x0>;
					reg = <0x1>;

					hdmi-tx@39 {
						compatible = "adi,adv7511";
						reg = <0x39 0x3f>;
						adi,input-depth = <0x8>;
						adi,input-colorspace = "yuv422";
						adi,input-clock = "1x";
						adi,input-style = <0x1>;
						adi,input-justification = "right";
						reg-names = "primary", "edid";
						status = "okay";
						adi,clock-delay = <0x0>;
						#sound-dai-cells = <0x0>;
						phandle = <0x2a>;

						ports {
							#address-cells = <0x1>;
							#size-cells = <0x0>;

							port@0 {
								reg = <0x0>;

								endpoint {
									remote-endpoint = <0xd>;
									phandle = <0x20>;
								};
							};

							port@1 {
								reg = <0x1>;
							};
						};
					};
				};

				i2c@2 {
					#address-cells = <0x1>;
					#size-cells = <0x0>;
					reg = <0x2>;

					eeprom@54 {
						compatible = "atmel,24c08";
						reg = <0x54>;
					};
				};

				i2c@3 {
					#address-cells = <0x1>;
					#size-cells = <0x0>;
					reg = <0x3>;

					gpio@21 {
						compatible = "ti,tca6416";
						reg = <0x21>;
						gpio-controller;
						#gpio-cells = <0x2>;
					};
				};

				i2c@4 {
					#address-cells = <0x1>;
					#size-cells = <0x0>;
					reg = <0x4>;

					rtc@51 {
						compatible = "nxp,pcf8563";
						reg = <0x51>;
					};
				};

				i2c@7 {
					#address-cells = <0x1>;
					#size-cells = <0x0>;
					reg = <0x7>;

					hwmon@34 {
						compatible = "ti,ucd9248";
						reg = <0x34>;
					};

					hwmon@35 {
						compatible = "ti,ucd9248";
						reg = <0x35>;
					};

					hwmon@36 {
						compatible = "ti,ucd9248";
						reg = <0x36>;
					};
				};
			};
		};

		i2c@e0005000 {
			compatible = "cdns,i2c-r1p10";
			status = "disabled";
			clocks = <0x1 0x27>;
			interrupt-parent = <0x4>;
			interrupts = <0x0 0x30 0x4>;
			reg = <0xe0005000 0x1000>;
			#address-cells = <0x1>;
			#size-cells = <0x0>;
			phandle = <0x2b>;
		};

		interrupt-controller@f8f01000 {
			compatible = "arm,cortex-a9-gic";
			#interrupt-cells = <0x3>;
			interrupt-controller;
			reg = <0xf8f01000 0x1000 0xf8f00100 0x100>;
			num_cpus = <0x2>;
			num_interrupts = <0x60>;
			phandle = <0x4>;
		};

		cache-controller@f8f02000 {
			compatible = "arm,pl310-cache";
			reg = <0xf8f02000 0x1000>;
			interrupts = <0x0 0x2 0x4>;
			arm,data-latency = <0x3 0x2 0x2>;
			arm,tag-latency = <0x2 0x2 0x2>;
			cache-unified;
			cache-level = <0x2>;
			phandle = <0x2c>;
		};

		memory-controller@f8006000 {
			compatible = "xlnx,zynq-ddrc-a05";
			reg = <0xf8006000 0x1000>;
			phandle = <0x2d>;
		};

		ocmc@f800c000 {
			compatible = "xlnx,zynq-ocmc-1.0";
			interrupt-parent = <0x4>;
			interrupts = <0x0 0x3 0x4>;
			reg = <0xf800c000 0x1000>;
			phandle = <0x2e>;
		};

		serial@e0000000 {
			compatible = "xlnx,xuartps", "cdns,uart-r1p8";
			status = "disabled";
			clocks = <0x1 0x17 0x1 0x28>;
			clock-names = "uart_clk", "pclk";
			reg = <0xe0000000 0x1000>;
			interrupts = <0x0 0x1b 0x4>;
			phandle = <0x2f>;
		};

		serial@e0001000 {
			compatible = "xlnx,xuartps", "cdns,uart-r1p8";
			status = "okay";
			clocks = <0x1 0x18 0x1 0x29>;
			clock-names = "uart_clk", "pclk";
			reg = <0xe0001000 0x1000>;
			interrupts = <0x0 0x32 0x4>;
			u-boot,dm-pre-reloc;
			pinctrl-names = "default";
			pinctrl-0 = <0xe>;
			cts-override;
			device_type = "serial";
			port-number = <0x0>;
			phandle = <0x30>;
		};

		spi@e0006000 {
			compatible = "xlnx,zynq-spi-r1p6";
			reg = <0xe0006000 0x1000>;
			status = "okay";
			interrupt-parent = <0x4>;
			interrupts = <0x0 0x1a 0x4>;
			clocks = <0x1 0x19 0x1 0x22>;
			clock-names = "ref_clk", "pclk";
			#address-cells = <0x1>;
			#size-cells = <0x0>;
			is-decoded-cs = <0x0>;
			num-cs = <0x3>;
			phandle = <0x31>;
		};

		spi@e0007000 {
			compatible = "xlnx,zynq-spi-r1p6";
			reg = <0xe0007000 0x1000>;
			status = "okay";
			interrupt-parent = <0x4>;
			interrupts = <0x0 0x31 0x4>;
			clocks = <0x1 0x1a 0x1 0x23>;
			clock-names = "ref_clk", "pclk";
			#address-cells = <0x1>;
			#size-cells = <0x0>;
			is-decoded-cs = <0x0>;
			num-cs = <0x3>;
			phandle = <0x32>;
		};

		spi@e000d000 {
			clock-names = "ref_clk", "pclk";
			clocks = <0x1 0xa 0x1 0x2b>;
			compatible = "xlnx,zynq-qspi-1.0";
			status = "okay";
			interrupt-parent = <0x4>;
			interrupts = <0x0 0x13 0x4>;
			reg = <0xe000d000 0x1000>;
			#address-cells = <0x1>;
			#size-cells = <0x0>;
			u-boot,dm-pre-reloc;
			is-dual = <0x0>;
			num-cs = <0x1>;
			spi-rx-bus-width = <0x4>;
			spi-tx-bus-width = <0x4>;
			phandle = <0x33>;

			flash@0 {
				compatible = "n25q128a11";
				reg = <0x0>;
				spi-tx-bus-width = <0x1>;
				spi-rx-bus-width = <0x4>;
				spi-max-frequency = <0x2faf080>;
				#address-cells = <0x1>;
				#size-cells = <0x1>;
				phandle = <0x34>;

				partition@0 {
					label = "boot";
					reg = <0x0 0x500000>;
				};

				partition@c00000 {
					label = "qspi-bitstream";
					reg = <0xc00000 0x400000>;
				};

				partition@1 {
					label = "bootenv";
					reg = <0x500000 0x20000>;
				};

				partition@2 {
					label = "kernel";
					reg = <0x520000 0xa80000>;
				};

				partition@3 {
					label = "spare";
					reg = <0xfa0000 0x0>;
				};
			};
		};

		memory-controller@e000e000 {
			#address-cells = <0x1>;
			#size-cells = <0x1>;
			status = "disabled";
			clock-names = "memclk", "apb_pclk";
			clocks = <0x1 0xb 0x1 0x2c>;
			compatible = "arm,pl353-smc-r2p1", "arm,primecell";
			interrupt-parent = <0x4>;
			interrupts = <0x0 0x12 0x4>;
			ranges;
			reg = <0xe000e000 0x1000>;
			phandle = <0x35>;

			flash@e1000000 {
				status = "disabled";
				compatible = "arm,pl353-nand-r2p1";
				reg = <0xe1000000 0x1000000>;
				#address-cells = <0x1>;
				#size-cells = <0x1>;
				phandle = <0x36>;
			};

			flash@e2000000 {
				status = "disabled";
				compatible = "cfi-flash";
				reg = <0xe2000000 0x2000000>;
				#address-cells = <0x1>;
				#size-cells = <0x1>;
				phandle = <0x37>;
			};
		};

		ethernet@e000b000 {
			compatible = "cdns,zynq-gem", "cdns,gem";
			reg = <0xe000b000 0x1000>;
			status = "okay";
			interrupts = <0x0 0x16 0x4>;
			clocks = <0x1 0x1e 0x1 0x1e 0x1 0xd>;
			clock-names = "pclk", "hclk", "tx_clk";
			#address-cells = <0x1>;
			#size-cells = <0x0>;
			phy-handle = <0xf>;
			pinctrl-names = "default";
			pinctrl-0 = <0x10>;
			phy-reset-gpio = <0xc 0xb 0x0>;
			phy-reset-active-low;
			enet-reset = <0xc 0xb 0x0>;
			phy-mode = "rgmii-id";
			xlnx,ptp-enet-clock = <0x69f6bcb>;
			local-mac-address = [00 0a 35 00 1e 53];
			phandle = <0x38>;

			ethernet-phy@7 {
				reg = <0x7>;
				device_type = "ethernet-phy";
				phandle = <0xf>;
			};
		};

		ethernet@e000c000 {
			compatible = "cdns,zynq-gem", "cdns,gem";
			reg = <0xe000c000 0x1000>;
			status = "disabled";
			interrupts = <0x0 0x2d 0x4>;
			clocks = <0x1 0x1f 0x1 0x1f 0x1 0xe>;
			clock-names = "pclk", "hclk", "tx_clk";
			#address-cells = <0x1>;
			#size-cells = <0x0>;
			phandle = <0x39>;
		};

		mmc@e0100000 {
			compatible = "arasan,sdhci-8.9a";
			status = "okay";
			clock-names = "clk_xin", "clk_ahb";
			clocks = <0x1 0x15 0x1 0x20>;
			interrupt-parent = <0x4>;
			interrupts = <0x0 0x18 0x4>;
			reg = <0xe0100000 0x1000>;
			u-boot,dm-pre-reloc;
			pinctrl-names = "default";
			pinctrl-0 = <0x11>;
			xlnx,has-cd = <0x1>;
			xlnx,has-power = <0x0>;
			xlnx,has-wp = <0x1>;
			phandle = <0x3a>;
		};

		mmc@e0101000 {
			compatible = "arasan,sdhci-8.9a";
			status = "disabled";
			clock-names = "clk_xin", "clk_ahb";
			clocks = <0x1 0x16 0x1 0x21>;
			interrupt-parent = <0x4>;
			interrupts = <0x0 0x2f 0x4>;
			reg = <0xe0101000 0x1000>;
			phandle = <0x3b>;
		};

		slcr@f8000000 {
			u-boot,dm-pre-reloc;
			#address-cells = <0x1>;
			#size-cells = <0x1>;
			compatible = "xlnx,zynq-slcr", "syscon", "simple-mfd";
			reg = <0xf8000000 0x1000>;
			ranges;
			phandle = <0x12>;

			clkc@100 {
				u-boot,dm-pre-reloc;
				#clock-cells = <0x1>;
				compatible = "xlnx,ps7-clkc";
				fclk-enable = <0x3>;
				clock-output-names = "armpll", "ddrpll", "iopll", "cpu_6or4x", "cpu_3or2x", "cpu_2x", "cpu_1x", "ddr2x", "ddr3x", "dci", "lqspi", "smc", "pcap", "gem0", "gem1", "fclk0", "fclk1", "fclk2", "fclk3", "can0", "can1", "sdio0", "sdio1", "uart0", "uart1", "spi0", "spi1", "dma", "usb0_aper", "usb1_aper", "gem0_aper", "gem1_aper", "sdio0_aper", "sdio1_aper", "spi0_aper", "spi1_aper", "can0_aper", "can1_aper", "i2c0_aper", "i2c1_aper", "uart0_aper", "uart1_aper", "gpio_aper", "lqspi_aper", "smc_aper", "swdt", "dbg_trc", "dbg_apb";
				reg = <0x100 0x100>;
				ps-clk-frequency = <0x1fca055>;
				phandle = <0x1>;
			};

			rstc@200 {
				compatible = "xlnx,zynq-reset";
				reg = <0x200 0x48>;
				#reset-cells = <0x1>;
				syscon = <0x12>;
				phandle = <0x3c>;
			};

			pinctrl@700 {
				compatible = "xlnx,pinctrl-zynq";
				reg = <0x700 0x200>;
				syscon = <0x12>;
				phandle = <0x3d>;

				can0-default {
					phandle = <0x8>;

					mux {
						function = "can0";
						groups = "can0_9_grp";
					};

					conf {
						groups = "can0_9_grp";
						slew-rate = <0x0>;
						io-standard = <0x1>;
					};

					conf-rx {
						pins = "MIO46";
						bias-high-impedance;
					};

					conf-tx {
						pins = "MIO47";
						bias-disable;
					};
				};

				gem0-default {
					phandle = <0x10>;

					mux {
						function = "ethernet0";
						groups = "ethernet0_0_grp";
					};

					conf {
						groups = "ethernet0_0_grp";
						slew-rate = <0x0>;
						io-standard = <0x4>;
					};

					conf-rx {
						pins = "MIO22", "MIO23", "MIO24", "MIO25", "MIO26", "MIO27";
						bias-high-impedance;
						low-power-disable;
					};

					conf-tx {
						pins = "MIO16", "MIO17", "MIO18", "MIO19", "MIO20", "MIO21";
						bias-disable;
						low-power-enable;
					};

					mux-mdio {
						function = "mdio0";
						groups = "mdio0_0_grp";
					};

					conf-mdio {
						groups = "mdio0_0_grp";
						slew-rate = <0x0>;
						io-standard = <0x1>;
						bias-disable;
					};
				};

				gpio0-default {
					phandle = <0x9>;

					mux {
						function = "gpio0";
						groups = "gpio0_7_grp", "gpio0_8_grp", "gpio0_9_grp", "gpio0_10_grp", "gpio0_11_grp", "gpio0_12_grp", "gpio0_13_grp", "gpio0_14_grp";
					};

					conf {
						groups = "gpio0_7_grp", "gpio0_8_grp", "gpio0_9_grp", "gpio0_10_grp", "gpio0_11_grp", "gpio0_12_grp", "gpio0_13_grp", "gpio0_14_grp";
						slew-rate = <0x0>;
						io-standard = <0x1>;
					};

					conf-pull-up {
						pins = "MIO9", "MIO10", "MIO11", "MIO12", "MIO13", "MIO14";
						bias-pull-up;
					};

					conf-pull-none {
						pins = "MIO7", "MIO8";
						bias-disable;
					};
				};

				i2c0-default {
					phandle = <0xa>;

					mux {
						groups = "i2c0_10_grp";
						function = "i2c0";
					};

					conf {
						groups = "i2c0_10_grp";
						bias-pull-up;
						slew-rate = <0x0>;
						io-standard = <0x1>;
					};
				};

				i2c0-gpio {
					phandle = <0xb>;

					mux {
						groups = "gpio0_50_grp", "gpio0_51_grp";
						function = "gpio0";
					};

					conf {
						groups = "gpio0_50_grp", "gpio0_51_grp";
						slew-rate = <0x0>;
						io-standard = <0x1>;
					};
				};

				sdhci0-default {
					phandle = <0x11>;

					mux {
						groups = "sdio0_2_grp";
						function = "sdio0";
					};

					conf {
						groups = "sdio0_2_grp";
						slew-rate = <0x0>;
						io-standard = <0x1>;
						bias-disable;
					};

					mux-cd {
						groups = "gpio0_0_grp";
						function = "sdio0_cd";
					};

					conf-cd {
						groups = "gpio0_0_grp";
						bias-high-impedance;
						bias-pull-up;
						slew-rate = <0x0>;
						io-standard = <0x1>;
					};

					mux-wp {
						groups = "gpio0_15_grp";
						function = "sdio0_wp";
					};

					conf-wp {
						groups = "gpio0_15_grp";
						bias-high-impedance;
						bias-pull-up;
						slew-rate = <0x0>;
						io-standard = <0x1>;
					};
				};

				uart1-default {
					phandle = <0xe>;

					mux {
						groups = "uart1_10_grp";
						function = "uart1";
					};

					conf {
						groups = "uart1_10_grp";
						slew-rate = <0x0>;
						io-standard = <0x1>;
					};

					conf-rx {
						pins = "MIO49";
						bias-high-impedance;
					};

					conf-tx {
						pins = "MIO48";
						bias-disable;
					};
				};

				usb0-default {
					phandle = <0x14>;

					mux {
						groups = "usb0_0_grp";
						function = "usb0";
					};

					conf {
						groups = "usb0_0_grp";
						slew-rate = <0x0>;
						io-standard = <0x1>;
					};

					conf-rx {
						pins = "MIO29", "MIO31", "MIO36";
						bias-high-impedance;
					};

					conf-tx {
						pins = "MIO28", "MIO30", "MIO32", "MIO33", "MIO34", "MIO35", "MIO37", "MIO38", "MIO39";
						bias-disable;
					};
				};
			};
		};

		dmac@f8003000 {
			compatible = "arm,pl330", "arm,primecell";
			reg = <0xf8003000 0x1000>;
			interrupt-parent = <0x4>;
			interrupt-names = "abort", "dma0", "dma1", "dma2", "dma3", "dma4", "dma5", "dma6", "dma7";
			interrupts = <0x0 0xd 0x4 0x0 0xe 0x4 0x0 0xf 0x4 0x0 0x10 0x4 0x0 0x11 0x4 0x0 0x28 0x4 0x0 0x29 0x4 0x0 0x2a 0x4 0x0 0x2b 0x4>;
			#dma-cells = <0x1>;
			#dma-channels = <0x8>;
			#dma-requests = <0x4>;
			clocks = <0x1 0x1b>;
			clock-names = "apb_pclk";
			phandle = <0x22>;
		};

		devcfg@f8007000 {
			compatible = "xlnx,zynq-devcfg-1.0";
			interrupt-parent = <0x4>;
			interrupts = <0x0 0x8 0x4>;
			reg = <0xf8007000 0x100>;
			clocks = <0x1 0xc 0x1 0xf 0x1 0x10 0x1 0x11 0x1 0x12>;
			clock-names = "ref_clk", "fclk0", "fclk1", "fclk2", "fclk3";
			syscon = <0x12>;
			phandle = <0x3>;
		};

		efuse@f800d000 {
			compatible = "xlnx,zynq-efuse";
			reg = <0xf800d000 0x20>;
			phandle = <0x3e>;
		};

		timer@f8f00200 {
			compatible = "arm,cortex-a9-global-timer";
			reg = <0xf8f00200 0x20>;
			interrupts = <0x1 0xb 0x301>;
			interrupt-parent = <0x4>;
			clocks = <0x1 0x4>;
			phandle = <0x3f>;
		};

		timer@f8001000 {
			interrupt-parent = <0x4>;
			interrupts = <0x0 0xa 0x4 0x0 0xb 0x4 0x0 0xc 0x4>;
			compatible = "cdns,ttc";
			clocks = <0x1 0x6>;
			reg = <0xf8001000 0x1000>;
			phandle = <0x40>;
		};

		timer@f8002000 {
			interrupt-parent = <0x4>;
			interrupts = <0x0 0x25 0x4 0x0 0x26 0x4 0x0 0x27 0x4>;
			compatible = "cdns,ttc";
			clocks = <0x1 0x6>;
			reg = <0xf8002000 0x1000>;
			phandle = <0x41>;
		};

		timer@f8f00600 {
			interrupt-parent = <0x4>;
			interrupts = <0x1 0xd 0x301>;
			compatible = "arm,cortex-a9-twd-timer";
			reg = <0xf8f00600 0x20>;
			clocks = <0x1 0x4>;
			phandle = <0x42>;
		};

		usb@e0002000 {
			compatible = "xlnx,zynq-usb-2.20a", "chipidea,usb2";
			status = "okay";
			clocks = <0x1 0x1c>;
			interrupt-parent = <0x4>;
			interrupts = <0x0 0x15 0x4>;
			reg = <0xe0002000 0x1000>;
			phy_type = "ulpi";
			dr_mode = "host";
			usb-phy = <0x13>;
			pinctrl-names = "default";
			pinctrl-0 = <0x14>;
			usb-reset = <0xc 0x7 0x0>;
			phandle = <0x43>;
		};

		usb@e0003000 {
			compatible = "xlnx,zynq-usb-2.20a", "chipidea,usb2";
			status = "disabled";
			clocks = <0x1 0x1d>;
			interrupt-parent = <0x4>;
			interrupts = <0x0 0x2c 0x4>;
			reg = <0xe0003000 0x1000>;
			phy_type = "ulpi";
			phandle = <0x44>;
		};

		watchdog@f8005000 {
			clocks = <0x1 0x2d>;
			compatible = "cdns,wdt-r1p2";
			interrupt-parent = <0x4>;
			interrupts = <0x0 0x9 0x1>;
			reg = <0xf8005000 0x1000>;
			timeout-sec = <0xa>;
			phandle = <0x45>;
		};

		etb@f8801000 {
			compatible = "arm,coresight-etb10", "arm,primecell";
			reg = <0xf8801000 0x1000>;
			clocks = <0x1 0x1b 0x1 0x2e 0x1 0x2f>;
			clock-names = "apb_pclk", "dbg_trc", "dbg_apb";

			in-ports {

				port {

					endpoint {
						remote-endpoint = <0x15>;
						phandle = <0x6>;
					};
				};
			};
		};

		tpiu@f8803000 {
			compatible = "arm,coresight-tpiu", "arm,primecell";
			reg = <0xf8803000 0x1000>;
			clocks = <0x1 0x1b 0x1 0x2e 0x1 0x2f>;
			clock-names = "apb_pclk", "dbg_trc", "dbg_apb";

			in-ports {

				port {

					endpoint {
						remote-endpoint = <0x16>;
						phandle = <0x5>;
					};
				};
			};
		};

		funnel@f8804000 {
			compatible = "arm,coresight-static-funnel", "arm,primecell";
			reg = <0xf8804000 0x1000>;
			clocks = <0x1 0x1b 0x1 0x2e 0x1 0x2f>;
			clock-names = "apb_pclk", "dbg_trc", "dbg_apb";

			out-ports {

				port {

					endpoint {
						remote-endpoint = <0x17>;
						phandle = <0x7>;
					};
				};
			};

			in-ports {
				#address-cells = <0x1>;
				#size-cells = <0x0>;

				port@0 {
					reg = <0x0>;

					endpoint {
						remote-endpoint = <0x18>;
						phandle = <0x1b>;
					};
				};

				port@1 {
					reg = <0x1>;

					endpoint {
						remote-endpoint = <0x19>;
						phandle = <0x1d>;
					};
				};

				port@2 {
					reg = <0x2>;

					endpoint {
						phandle = <0x46>;
					};
				};
			};
		};

		ptm@f889c000 {
			compatible = "arm,coresight-etm3x", "arm,primecell";
			reg = <0xf889c000 0x1000>;
			clocks = <0x1 0x1b 0x1 0x2e 0x1 0x2f>;
			clock-names = "apb_pclk", "dbg_trc", "dbg_apb";
			cpu = <0x1a>;

			out-ports {

				port {

					endpoint {
						remote-endpoint = <0x1b>;
						phandle = <0x18>;
					};
				};
			};
		};

		ptm@f889d000 {
			compatible = "arm,coresight-etm3x", "arm,primecell";
			reg = <0xf889d000 0x1000>;
			clocks = <0x1 0x1b 0x1 0x2e 0x1 0x2f>;
			clock-names = "apb_pclk", "dbg_trc", "dbg_apb";
			cpu = <0x1c>;

			out-ports {

				port {

					endpoint {
						remote-endpoint = <0x1d>;
						phandle = <0x19>;
					};
				};
			};
		};
	};

	gpio-keys {
		compatible = "gpio-keys";
		autorepeat;

		sw14 {
			label = "sw14";
			gpios = <0xc 0xc 0x0>;
			linux,code = <0x6c>;
			wakeup-source;
			autorepeat;
		};

		sw13 {
			label = "sw13";
			gpios = <0xc 0xe 0x0>;
			linux,code = <0x67>;
			wakeup-source;
			autorepeat;
		};
	};

	leds {
		compatible = "gpio-leds";

		ds23 {
			label = "ds23";
			gpios = <0xc 0xa 0x0>;
			linux,default-trigger = "heartbeat";
		};
	};

	phy0@e0002000 {
		compatible = "ulpi-phy";
		#phy-cells = <0x0>;
		reg = <0xe0002000 0x1000>;
		view-port = <0x170>;
		drv-vbus;
		phandle = <0x13>;
	};

	amba_pl {
		#address-cells = <0x1>;
		#size-cells = <0x1>;
		compatible = "simple-bus";
		ranges;
		phandle = <0x47>;

		axi_clkgen@79000000 {
			clock-names = "clk", "s_axi_aclk";
			clocks = <0x1 0x10 0x1 0xf>;
			compatible = "adi,axi-clkgen-2.00.a";
			reg = <0x79000000 0x10000>;
			#clock-cells = <0x0>;
			status = "okay";
			phandle = <0x1e>;
		};

		axi_hdmi_tx@70e00000 {
			clock-names = "hdmi_clk", "vdma_clk", "s_axi_aclk";
			clocks = <0x1e 0x1 0xf 0x1 0xf>;
			compatible = "adi,axi-hdmi-tx-1.00.a";
			reg = <0x70e00000 0x10000>;
			dmas = <0x1f 0x0>;
			dma-names = "video";
			status = "okay";
			phandle = <0x48>;

			port {

				endpoint {
					remote-endpoint = <0x20>;
					phandle = <0xd>;
				};
			};
		};

		misc_clk_0 {
			#clock-cells = <0x0>;
			clock-frequency = <0x8d9b2f0>;
			compatible = "fixed-clock";
			phandle = <0x49>;
		};

		axi_dmac@43000000 {
			clock-names = "s_axi_aclk", "m_src_axi_aclk", "m_axis_aclk";
			clocks = <0x1 0xf 0x1 0xf 0x1 0xf>;
			compatible = "adi,axi-dmac-1.00.a";
			interrupt-names = "irq";
			interrupt-parent = <0x4>;
			interrupts = <0x0 0x3b 0x4>;
			reg = <0x43000000 0x1000>;
			#dma-cells = <0x1>;
			status = "okay";
			phandle = <0x1f>;

			adi,channels {
				#size-cells = <0x0>;
				#address-cells = <0x1>;

				dma-channel@0 {
					reg = <0x0>;
					adi,source-bus-width = <0x40>;
					adi,source-bus-type = <0x0>;
					adi,destination-bus-width = <0x40>;
					adi,destination-bus-type = <0x1>;
				};
			};
		};

		i2c@41600000 {
			#address-cells = <0x1>;
			#size-cells = <0x0>;
			clock-names = "s_axi_aclk";
			clocks = <0x1 0xf>;
			compatible = "xlnx,axi-iic-2.0", "xlnx,xps-iic-2.00.a";
			interrupt-names = "iic2intc_irpt";
			interrupt-parent = <0x4>;
			interrupts = <0x0 0x3a 0x4>;
			reg = <0x41600000 0x1000>;
			phandle = <0x4a>;
		};

		axi_spdif_tx@75c00000 {
			clock-names = "spdif_data_clk", "s_axi_aclk", "dma_req_aclk";
			clocks = <0x21 0x1 0xf 0x1 0xf>;
			compatible = "adi,axi-spdif-tx-1.00.a";
			reg = <0x75c00000 0x1000>;
			dmas = <0x22 0x0>;
			dma-names = "tx";
			status = "okay";
			#sound-dai-cells = <0x0>;
			phandle = <0x4b>;
		};

		misc_clk_1 {
			#clock-cells = <0x0>;
			clock-frequency = <0xbb7ff4>;
			compatible = "fixed-clock";
			phandle = <0x21>;
		};

		axi_sysid@45000000 {
			clock-names = "s_axi_aclk";
			clocks = <0x1 0xf>;
			compatible = "adi,axi-sysid-1.00.a";
			reg = <0x45000000 0x10000>;
			status = "okay";
			phandle = <0x4c>;
		};
	};

	chosen {
		bootargs = "console=ttyPS0,115200 earlycon root=/dev/mmcblk0p2 rw rootwait";
		stdout-path = "serial0:115200n8";
	};

	aliases {
		ethernet0 = "/amba/ethernet@e000b000";
		i2c0 = "/amba_pl/i2c@41600000";
		i2c1 = "/amba/i2c@e0004000";
		serial0 = "/amba/serial@e0001000";
		spi0 = "/amba/spi@e000d000";
		spi1 = "/amba/spi@e0006000";
		spi2 = "/amba/spi@e0007000";
	};

	memory {
		device_type = "memory";
		reg = <0x0 0x40000000>;
	};

	__symbols__ {
		cpu0 = "/cpus/cpu@0";
		cpu1 = "/cpus/cpu@1";
		fpga_full = "/fpga-full";
		regulator_vccpint = "/fixedregulator";
		replicator_out_port0 = "/replicator/out-ports/port@0/endpoint";
		replicator_out_port1 = "/replicator/out-ports/port@1/endpoint";
		replicator_in_port0 = "/replicator/in-ports/port/endpoint";
		amba = "/amba";
		adc = "/amba/adc@f8007100";
		can0 = "/amba/can@e0008000";
		can1 = "/amba/can@e0009000";
		gpio0 = "/amba/gpio@e000a000";
		i2c0 = "/amba/i2c@e0004000";
		si570 = "/amba/i2c@e0004000/i2c-mux@74/i2c@0/clock-generator@5d";
		adv7511 = "/amba/i2c@e0004000/i2c-mux@74/i2c@1/hdmi-tx@39";
		adv7511_in = "/amba/i2c@e0004000/i2c-mux@74/i2c@1/hdmi-tx@39/ports/port@0/endpoint";
		i2c1 = "/amba/i2c@e0005000";
		intc = "/amba/interrupt-controller@f8f01000";
		L2 = "/amba/cache-controller@f8f02000";
		mc = "/amba/memory-controller@f8006000";
		ocmc = "/amba/ocmc@f800c000";
		uart0 = "/amba/serial@e0000000";
		uart1 = "/amba/serial@e0001000";
		spi0 = "/amba/spi@e0006000";
		spi1 = "/amba/spi@e0007000";
		qspi = "/amba/spi@e000d000";
		flash0 = "/amba/spi@e000d000/flash@0";
		smcc = "/amba/memory-controller@e000e000";
		nand0 = "/amba/memory-controller@e000e000/flash@e1000000";
		nor0 = "/amba/memory-controller@e000e000/flash@e2000000";
		gem0 = "/amba/ethernet@e000b000";
		ethernet_phy = "/amba/ethernet@e000b000/ethernet-phy@7";
		gem1 = "/amba/ethernet@e000c000";
		sdhci0 = "/amba/mmc@e0100000";
		sdhci1 = "/amba/mmc@e0101000";
		slcr = "/amba/slcr@f8000000";
		clkc = "/amba/slcr@f8000000/clkc@100";
		rstc = "/amba/slcr@f8000000/rstc@200";
		pinctrl0 = "/amba/slcr@f8000000/pinctrl@700";
		pinctrl_can0_default = "/amba/slcr@f8000000/pinctrl@700/can0-default";
		pinctrl_gem0_default = "/amba/slcr@f8000000/pinctrl@700/gem0-default";
		pinctrl_gpio0_default = "/amba/slcr@f8000000/pinctrl@700/gpio0-default";
		pinctrl_i2c0_default = "/amba/slcr@f8000000/pinctrl@700/i2c0-default";
		pinctrl_i2c0_gpio = "/amba/slcr@f8000000/pinctrl@700/i2c0-gpio";
		pinctrl_sdhci0_default = "/amba/slcr@f8000000/pinctrl@700/sdhci0-default";
		pinctrl_uart1_default = "/amba/slcr@f8000000/pinctrl@700/uart1-default";
		pinctrl_usb0_default = "/amba/slcr@f8000000/pinctrl@700/usb0-default";
		dmac_s = "/amba/dmac@f8003000";
		devcfg = "/amba/devcfg@f8007000";
		efuse = "/amba/efuse@f800d000";
		global_timer = "/amba/timer@f8f00200";
		ttc0 = "/amba/timer@f8001000";
		ttc1 = "/amba/timer@f8002000";
		scutimer = "/amba/timer@f8f00600";
		usb0 = "/amba/usb@e0002000";
		usb1 = "/amba/usb@e0003000";
		watchdog0 = "/amba/watchdog@f8005000";
		etb_in_port = "/amba/etb@f8801000/in-ports/port/endpoint";
		tpiu_in_port = "/amba/tpiu@f8803000/in-ports/port/endpoint";
		funnel_out_port = "/amba/funnel@f8804000/out-ports/port/endpoint";
		funnel0_in_port0 = "/amba/funnel@f8804000/in-ports/port@0/endpoint";
		funnel0_in_port1 = "/amba/funnel@f8804000/in-ports/port@1/endpoint";
		funnel0_in_port2 = "/amba/funnel@f8804000/in-ports/port@2/endpoint";
		ptm0_out_port = "/amba/ptm@f889c000/out-ports/port/endpoint";
		ptm1_out_port = "/amba/ptm@f889d000/out-ports/port/endpoint";
		usb_phy0 = "/phy0@e0002000";
		amba_pl = "/amba_pl";
		axi_hdmi_clkgen = "/amba_pl/axi_clkgen@79000000";
		axi_hdmi_core = "/amba_pl/axi_hdmi_tx@70e00000";
		axi_hdmi_out = "/amba_pl/axi_hdmi_tx@70e00000/port/endpoint";
		misc_clk_0 = "/amba_pl/misc_clk_0";
		axi_hdmi_dma = "/amba_pl/axi_dmac@43000000";
		axi_iic_main = "/amba_pl/i2c@41600000";
		axi_spdif_tx_core = "/amba_pl/axi_spdif_tx@75c00000";
		misc_clk_1 = "/amba_pl/misc_clk_1";
		axi_sysid_0 = "/amba_pl/axi_sysid@45000000";
	};
};

 

 Here is the output of the kernel, during bootup:

U-Boot 2020.01 (Nov 12 2020 - 09:27:50 +0000)

CPU:   Zynq 7z020
Silicon: v3.1
Model: Zynq ZC702 Development Board
DRAM:  ECC disabled 1 GiB
Flash: 0 Bytes
NAND:  0 MiB
MMC:   mmc@e0100000: 0
Loading Environment from SPI Flash... SF: Detected n25q128a11 with page size 256 Bytes, erase size 4 KiB, total 16 MiB
*** Warning - bad CRC, using default environment

In:    serial@e0001000
Out:   serial@e0001000
Err:   serial@e0001000
Net:
ZYNQ GEM: e000b000, mdio bus e000b000, phyaddr 7, interface rgmii-id

Warning: ethernet@e000b000 using MAC address from DT
eth0: ethernet@e000b000
Hit any key to stop autoboot:  0
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
Found U-Boot script /boot.scr
2010 bytes read in 18 ms (108.4 KiB/s)
## Executing script at 03000000
5977328 bytes read in 392 ms (14.5 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:    5946792 Bytes = 5.7 MiB
     Architecture: ARM
     OS:           Linux
     Load Address: 0x00200000
     Entry Point:  0x00200000
     Hash algo:    sha256
     Hash value:   a1c76d53b819a1ad7db2613f527006b11e5780567ea179c7fa1b18a5816ae7b0
   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:   0x105abf9c
     Data Size:    28655 Bytes = 28 KiB
     Architecture: ARM
     Hash algo:    sha256
     Hash value:   19ea3b2101954fa1754d5780b79669672aa17ede2e254718041c25553f3423c2
   Verifying Hash Integrity ... sha256+ OK
   Booting using the fdt blob at 0x105abf9c
   Loading Kernel Image
   Loading Device Tree to 1fff6000, end 1fffffee ... OK

Starting kernel ...

Booting Linux on physical CPU 0x0
Linux version 4.19.0 (oe-user@oe-host) (gcc version 9.2.0 (GCC)) #1 SMP PREEMPT Wed Nov 11 10:20:01 UTC 2020
CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=18c5387d
CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
OF: fdt: Machine model: Zynq ZC702 Development Board
earlycon: cdns0 at MMIO 0xe0001000 (options '115200n8')
bootconsole [cdns0] enabled
Memory policy: Data cache writealloc
cma: Reserved 128 MiB at 0x38000000
random: get_random_bytes called from start_kernel+0xa0/0x41c with crng_init=0
percpu: Embedded 16 pages/cpu @(ptrval) s33548 r8192 d23796 u65536
Built 1 zonelists, mobility grouping on.  Total pages: 260608
Kernel command line: console=ttyPS0,115200 earlycon root=/dev/mmcblk0p2 rw rootwait
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
Memory: 890472K/1048576K available (8192K kernel code, 760K rwdata, 6528K rodata, 1024K init, 160K bss, 27032K reserved, 131072K cma-reserved, 131072K highmem)
Virtual kernel memory layout:
    vector  : 0xffff0000 - 0xffff1000   (   4 kB)
    fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
    vmalloc : 0xf0800000 - 0xff800000   ( 240 MB)
    lowmem  : 0xc0000000 - 0xf0000000   ( 768 MB)
    pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
    modules : 0xbf000000 - 0xbfe00000   (  14 MB)
      .text : 0x(ptrval) - 0x(ptrval)   (9184 kB)
      .init : 0x(ptrval) - 0x(ptrval)   (1024 kB)
      .data : 0x(ptrval) - 0x(ptrval)   ( 761 kB)
       .bss : 0x(ptrval) - 0x(ptrval)   ( 161 kB)
rcu: Preemptible hierarchical RCU implementation.
rcu:    RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.
        Tasks RCU enabled.
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
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
clocksource: ttc_clocksource: mask: 0xffff max_cycles: 0xffff, max_idle_ns: 537538477 ns
timer #0 at (ptrval), irq=17
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: 2048 (order: 1, 8192 bytes)
Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes)
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)
pinctrl core: initialized pinctrl subsystem
NET: Registered protocol family 16
DMA: preallocated 256 KiB pool for atomic coherent allocations
cpuidle: using governor ladder
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)
zynq-pinctrl 700.pinctrl: zynq pinctrl initialized
e0001000.serial: ttyPS0 at MMIO 0xe0001000 (irq = 27, base_baud = 3125000) is a xuartps
console [ttyPS0] enabled
console [ttyPS0] enabled
bootconsole [cdns0] disabled
bootconsole [cdns0] disabled
SCSI subsystem initialized
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
media: Linux media interface: v0.10
videodev: Linux video capture interface: v2.00
jesd204: found 0 devices and 0 topologies
FPGA manager framework
Advanced Linux Sound Architecture Driver Initialized.
clocksource: Switched to clocksource arm_global_timer
NET: Registered protocol family 2
tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 6144 bytes)
TCP established hash table entries: 8192 (order: 3, 32768 bytes)
TCP bind hash table entries: 8192 (order: 4, 65536 bytes)
TCP: Hash tables configured (established 8192 bind 8192)
UDP hash table entries: 512 (order: 2, 16384 bytes)
UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)
NET: Registered protocol family 1
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=30 max_order=18 bucket_order=0
bounce: pool size: 64 pages
io scheduler noop registered
io scheduler deadline registered
io scheduler cfq registered (default)
io scheduler mq-deadline registered
io scheduler kyber registered
adi-axi-clkgen 79000000.axi_clkgen: Missing input clock, see 'clkin1' and 'clkin2'
adi-axi-clkgen: probe of 79000000.axi_clkgen failed with error -22
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
Registered mathworks_ip class
m25p80 spi0.0: SPI-NOR-UniqueID 1000002315040812003800141204122d84
m25p80 spi0.0: n25q128a11 (16384 Kbytes)
5 fixed-partitions partitions found on MTD device spi0.0
Creating 5 MTD partitions on "spi0.0":
0x000000000000-0x000000500000 : "boot"
0x000000c00000-0x000001000000 : "qspi-bitstream"
0x000000500000-0x000000520000 : "bootenv"
0x000000520000-0x000000fa0000 : "kernel"
0x000000fa0000-0x000001000000 : "spare"
MACsec IEEE 802.1AE
libphy: Fixed MDIO Bus: probed
tun: Universal TUN/TAP device driver, 1.6
libphy: MACB_mii_bus: probed
Marvell 88E1116R e000b000.ethernet-ffffffff:07: attached PHY driver [Marvell 88E1116R] (mii_bus:phy_addr=e000b000.ethernet-ffffffff:07, irq=POLL)
macb e000b000.ethernet eth0: Cadence GEM rev 0x00020118 at 0xe000b000 irq 31 (00:0a:35:00:1e:53)
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
usbcore: registered new interface driver usb-storage
usbcore: registered new interface driver usbserial_generic
usbserial: USB Serial support registered for generic
usbcore: registered new interface driver ftdi_sio
usbserial: USB Serial support registered for FTDI USB Serial Device
usbcore: registered new interface driver upd78f0730
usbserial: USB Serial support registered for upd78f0730
chipidea-usb2 e0002000.usb: e0002000.usb supply vbus not found, using dummy regulator
chipidea-usb2 e0002000.usb: Linked as a consumer to regulator.0
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 24
si570 2-005d: registered, current frequency 148500000 Hz
i2c i2c-1: Added multiplexed i2c bus 2
adv7511 3-0039: 3-0039 supply avdd not found, using dummy regulator
adv7511 3-0039: Linked as a consumer to regulator.0
adv7511 3-0039: 3-0039 supply dvdd not found, using dummy regulator
adv7511 3-0039: 3-0039 supply pvdd not found, using dummy regulator
adv7511 3-0039: 3-0039 supply bgvdd not found, using dummy regulator
adv7511 3-0039: 3-0039 supply dvdd-3v not found, using dummy regulator
i2c i2c-1: Added multiplexed i2c bus 3
at24 4-0054: 1024 byte 24c08 EEPROM, writable, 1 bytes/write
i2c i2c-1: Added multiplexed i2c bus 4
pca953x 5-0021: 5-0021 supply vcc not found, using dummy regulator
pca953x 5-0021: Linked as a consumer to regulator.0
i2c i2c-1: Added multiplexed i2c bus 5
rtc rtc0: invalid alarm value: 2020-11-30 35:73:0
rtc-pcf8563 6-0051: rtc core: registered rtc-pcf8563 as rtc0
i2c i2c-1: Added multiplexed i2c bus 6
i2c i2c-1: Added multiplexed i2c bus 7
i2c i2c-1: Added multiplexed i2c bus 8
i2c i2c-1: Added multiplexed i2c bus 9
pca954x 1-0074: registered 8 multiplexed busses for I2C switch pca9548
usbcore: registered new interface driver uvcvideo
USB Video Class driver (1.1.1)
gspca_main: v2.14.0 registered
ucd9200 9-0034: Device ID UCD9248-80|5.8.0.11400|091112
ucd9200 9-0034: 4 rails configured
random: fast init done
usb 1-1: new high-speed USB device number 2 using ci_hdrc
ucd9200 9-0035: Device ID UCD9248-80|5.8.0.11400|091112
ucd9200 9-0035: 4 rails configured
hub 1-1:1.0: USB hub found
hub 1-1:1.0: 4 ports detected
ucd9200 9-0036: Device ID UCD9248-80|5.8.0.11400|091112
ucd9200 9-0036: 2 rails configured
cdns-wdt f8005000.watchdog: Xilinx Watchdog Timer with timeout 10s
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
ledtrig-cpu: registered to indicate activity on CPUs
hidraw: raw HID events driver (C) Jiri Kosina
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
axi_sysid 45000000.axi_sysid: system ID header version mismatch. Expected 1, Reported 0
fpga_manager fpga0: Xilinx Zynq FPGA Manager registered
mmc0: new high speed SDHC card at address aaaa
mmcblk0: mmc0:aaaa SL08G 7.40 GiB
axi-spdif: probe of 75c00000.axi_spdif_tx failed with error -2
NET: Registered protocol family 10
 mmcblk0: p1 p2
Segment Routing with IPv6
sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
NET: Registered protocol family 17
NET: Registered protocol family 36
Registering SWP/SWPB emulation handler
input: gpio-keys as /devices/soc0/gpio-keys/input/input0
rtc-pcf8563 6-0051: setting system clock to 2020-11-12 09:57:31 UTC (1605175051)
ALSA device list:
  No soundcards found.
EXT4-fs (mmcblk0p2): recovery complete
EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
usb 1-1.1: new low-speed USB device number 3 using ci_hdrc
VFS: Mounted root (ext4 filesystem) on device 179:2.
devtmpfs: mounted
Freeing unused kernel memory: 1024K
Run /sbin/init as init process
INIT: version 2.88 booting
input: HP HP USB 1000dpi Laser Mouse as /devices/soc0/amba/e0002000.usb/ci_hdrc.0/usb1/1-1/1-1.1/1-1.1:1.0/0003:03F0:1198.0001/input/input1
hid-generic 0003:03F0:1198.0001: input,hidraw0: USB HID v2.00 Mouse [HP HP USB 1000dpi Laser Mouse] on usb-ci_hdrc.0-1.1/input0
hid-generic 0003:03F0:1198.0002: hiddev96,hidraw1: USB HID v2.00 Device [HP HP USB 1000dpi Laser Mouse] on usb-ci_hdrc.0-1.1/input1
usb 1-1.2: new low-speed USB device number 4 using ci_hdrc
Starting udev
input: Dell Dell USB Keyboard as /devices/soc0/amba/e0002000.usb/ci_hdrc.0/usb1/1-1/1-1.2/1-1.2:1.0/0003:413C:2003.0003/input/input2
udevd[1171]: starting version 3.2.8
hid-generic 0003:413C:2003.0003: input,hidraw2: USB HID v1.10 Keyboard [Dell Dell USB Keyboard] on usb-ci_hdrc.0-1.2/input0
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[1172]: starting eudev-3.2.8
FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
urandom_read: 4 callbacks suppressed
random: dd: uninitialized urandom read (512 bytes read)
INIT: Entering runlevel: 5
Configuring network interfaces... IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
udhcpc: started, v1.31.0
udhcpc: sending discover
macb e000b000.ethernet eth0: link up (1000/Full)
IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
udhcpc: sending discover
udhcpc: sending discover
udhcpc: no lease, forking to background
done.

root@plnx-hdmi:~#

 

As you see, the AXI peripherals are not correctly probed by the kernel. For example, the first problem I encounter is related to adi-axi-clkgen IP.

root@plnx-hdmi:~# dmesg | grep axi
adi-axi-clkgen 79000000.axi_clkgen: Missing input clock, see 'clkin1' and 'clkin2'
adi-axi-clkgen: probe of 79000000.axi_clkgen failed with error -22
axi_sysid 45000000.axi_sysid: system ID header version mismatch. Expected 1, Reported 0
axi-spdif: probe of 75c00000.axi_spdif_tx failed with error -2

 

I'm quite sure that the two clocks required by the module are up&running because I setup them in the device tree node and they were compiled successfully [system.dts]:

...

	amba_pl {
		#address-cells = <0x1>;
		#size-cells = <0x1>;
		compatible = "simple-bus";
		ranges;
		phandle = <0x47>;

		axi_clkgen@79000000 {
			clock-names = "clk", "s_axi_aclk";
			clocks = <0x1 0x10 0x1 0xf>;
			compatible = "adi,axi-clkgen-2.00.a";
			reg = <0x79000000 0x10000>;
			#clock-cells = <0x0>;
			status = "okay";
			phandle = <0x1e>;
		};

...

 

if I check the clock status by using kernel sysfs debug, I see that flck0 and fclk1 are up&running:

root@plnx-hdmi:~# cat /sys/kernel/debug/clk/clk_summary
                                 enable  prepare  protect                                duty
   clock                          count    count    count        rate   accuracy phase  cycle
---------------------------------------------------------------------------------------------
 pcf8563-clkout                       0        0        0       32768          0     0  50000
 clock-generator                      0        0        0   148499999          0     0  50000
 misc_clk_1                           0        0        0    12287988          0     0  50000
 misc_clk_0                           0        0        0   148484848          0     0  50000
 ps_clk                               3        3        0    33333333          0     0  50000
    iopll_int                         1        1        0   999999990          0     0  50000
       iopll                          8        8        0   999999990          0     0  50000
          dbg_mux                     1        1        0   999999990          0     0  50000
             dbg_div                  1        1        0    66666666          0     0  50000
                dbg_emio_mux          1        1        0    66666666          0     0  50000
                   dbg_trc            1        1        0    66666666          0     0  50000
          can_mux                     0        0        0   999999990          0     0  50000
             can_div0                 0        0        0   142857142          0     0  50000
                can_div1              0        0        0    23809524          0     0  50000
                   can1_gate          0        0        0    23809524          0     0  50000
                      can1            0        0        0    23809524          0     0  50000
                   can0_gate          0        0        0    23809524          0     0  50000
                      can0            0        0        0    23809524          0     0  50000
          gem1_mux                    0        0        0   999999990          0     0  50000
             gem1_div0                0        0        0    16666667          0     0  50000
                gem1_div1             0        0        0    16666667          0     0  50000
                   gem1_emio_mux       0        0        0    16666667          0     0  50000
                      gem1            0        0        0    16666667          0     0  50000
          gem0_mux                    1        1        0   999999990          0     0  50000
             gem0_div0                1        1        0   124999999          0     0  50000
                gem0_div1             1        1        0   124999999          0     0  50000
                   gem0_emio_mux       1        1        0   124999999          0     0  50000
                      gem0            1        1        0   124999999          0     0  50000
          spi0_mux                    0        0        0   999999990          0     0  50000
             spi0_div                 0        0        0   166666665          0     0  50000
                spi1                  0        0        0   166666665          0     0  50000
                spi0                  0        0        0   166666665          0     0  50000
          uart0_mux                   1        1        0   999999990          0     0  50000
             uart0_div                1        1        0    50000000          0     0  50000
                uart1                 1        1        0    50000000          0     0  50000
                uart0                 0        0        0    50000000          0     0  50000
          sdio0_mux                   1        1        0   999999990          0     0  50000
             sdio0_div                1        1        0    50000000          0     0  50000
                sdio1                 0        0        0    50000000          0     0  50000
                sdio0                 1        1        0    50000000          0     0  50000
          pcap_mux                    1        1        0   999999990          0     0  50000
             pcap_div                 1        1        0   199999998          0     0  50000
                pcap                  1        2        0   199999998          0     0  50000
          lqspi_mux                   1        1        0   999999990          0     0  50000
             lqspi_div                1        1        0   199999998          0     0  50000
                lqspi                 1        1        0   199999998          0     0  50000
          fclk3_mux                   0        0        0   999999990          0     0  50000
             fclk3_div0               0        0        0    41666667          0     0  50000
                fclk3_div1            0        0        0    41666667          0     0  50000
                   fclk3              0        0        0    41666667          0     0  50000
          fclk2_mux                   0        0        0   999999990          0     0  50000
             fclk2_div0               0        0        0    41666667          0     0  50000
                fclk2_div1            0        0        0    41666667          0     0  50000
                   fclk2              0        0        0    41666667          0     0  50000
          fclk1_mux                   1        1        0   999999990          0     0  50000
             fclk1_div0               1        1        0   199999998          0     0  50000
                fclk1_div1            1        1        0   199999998          0     0  50000
                   fclk1              1        1        0   199999998          0     0  50000
          fclk0_mux                   1        1        0   999999990          0     0  50000
             fclk0_div0               1        1        0   199999998          0     0  50000
                fclk0_div1            1        1        0    99999999          0     0  50000
                   fclk0              2        3        0    99999999          0     0  50000
    ddrpll_int                        1        1        0  1066666656          0     0  50000
       ddrpll                         3        3        0  1066666656          0     0  50000
          dci_div0                    1        1        0    71111111          0     0  50000
             dci_div1                 1        1        0    10158731          0     0  50000
                dci                   1        1        0    10158731          0     0  50000
          ddr3x_div                   1        1        0   533333328          0     0  50000
             ddr3x                    1        1        0   533333328          0     0  50000
          ddr2x_div                   1        1        0   355555552          0     0  50000
             ddr2x                    1        1        0   355555552          0     0  50000
    armpll_int                        1        1        0  1333333320          0     0  50000
       armpll                         1        1        0  1333333320          0     0  50000
          smc_mux                     0        0        0  1333333320          0     0  50000
             smc_div                  0        0        0    22222222          0     0  50000
                smc                   0        0        0    22222222          0     0  50000
          cpu_mux                     1        1        0  1333333320          0     0  50000
             cpu_div                  3        3        0   666666660          0     0  50000
                cpu_1x_div            1        1        0   111111110          0     0  50000
                   cpu_1x            10       11        0   111111110          0     0  50000
                      smc_aper        0        0        0   111111110          0     0  50000
                      lqspi_aper       1        1        0   111111110          0     0  50000
                      gpio_aper       1        1        0   111111110          0     0  50000
                      uart1_aper       1        1        0   111111110          0     0  50000
                      uart0_aper       0        0        0   111111110          0     0  50000
                      i2c1_aper       0        0        0   111111110          0     0  50000
                      i2c0_aper       0        1        0   111111110          0     0  50000
                      can1_aper       0        0        0   111111110          0     0  50000
                      can0_aper       0        0        0   111111110          0     0  50000
                      spi1_aper       0        0        0   111111110          0     0  50000
                      spi0_aper       0        0        0   111111110          0     0  50000
                      sdio1_aper       0        0        0   111111110          0     0  50000
                      sdio0_aper       1        1        0   111111110          0     0  50000
                      gem1_aper       0        0        0   111111110          0     0  50000
                      gem0_aper       2        2        0   111111110          0     0  50000
                      usb1_aper       0        0        0   111111110          0     0  50000
                      usb0_aper       1        1        0   111111110          0     0  50000
                      dbg_apb         1        1        0   111111110          0     0  50000
                      swdt            1        1        0   111111110          0     0  50000
                cpu_2x_div            1        1        0   222222220          0     0  50000
                   cpu_2x             1        2        0   222222220          0     0  50000
                      dma             0        1        0   222222220          0     0  50000
                cpu_3or2x_div         1        1        0   333333330          0     0  50000
                   cpu_3or2x          2        2        0   333333330          0     0  50000
                cpu_6or4x             0        0        0   666666660          0     0  50000
 can1_mio_mux                         0        0        0           0          0     0  50000
 can0_mio_mux                         0        0        0           0          0     0  50000
root@plnx-hdmi:~#

 

I've tried also to pass add to the bootargs the "clk_ignore_unused" parameter, without success.

 

Do you have any suggestion?

Thank you.

 

 

0 Kudos
Highlighted
Contributor
Contributor
273 Views
Registered: ‎06-10-2018

@silentlab54

1.

Are you booting from SD card or from SPI flash? The log shows the latter.

 

2.

You have a clock issue so it won't work:

 

adi-axi-clkgen 79000000.axi_clkgen: Missing input clock, see 'clkin1' and 'clkin2'
adi-axi-clkgen: probe of 79000000.axi_clkgen failed with error -22

 

3.

Can you show the Vivado design?

Also can you show the Petalinux mods step by step?

0 Kudos
Highlighted
Contributor
Contributor
121 Views
Registered: ‎08-29-2018

Hi @dimiter ,

thank you for your answer.

1. I'm booting from SD card. [To be more precise: my objective is to boot from SD card.] I think the boot media setup is correct because, if I remove the SD card, the system doesn't boot.

2. I saw that, but what I don't understand is why: the clock is routed directly from the Zynq FCLK0/1 output to the modules.

3. The reference design was generated and compiled from Analog Devices hdl sources. I'll attach to this post an image. If you need other files, please ask, you're welcome. 

Regarding Petalinux Mods, they're minimal: I've selected and external kernel source:

 

petalinux-config -> Linux Component Selection -> linux-kernel -> (ext-local-src)

petalinux-config -> Linux Component Selection -> External linux-kernel local source settings -> (${PROOT}/components/ext_sources/adi-linux-xlnx) External linux-kernel local source path

 

 

I've written the necessary device-tree node alteration code into $PROOT/project-spec/meta-user/recipes-bsp/device-tree/files/system-user.dtsi 

this is my system-user.dtsi:

 

/include/ "system-conf.dtsi"

/ {
};

&axi_hdmi_clkgen {
	compatible = "adi,axi-clkgen-2.00.a";
	#clock-cells = <0>;
	clocks = <&clkc 16>, <&clkc 15>;
	clock-names = "clk", "s_axi_aclk";
	status = "okay";
};

&axi_hdmi_core {
	compatible = "adi,axi-hdmi-tx-1.00.a";
	dmas = <&axi_hdmi_dma 0>;
	dma-names = "video";
	clocks = <&axi_hdmi_clkgen>, <&clkc 15>, <&clkc 15>;
	clock-names = "hdmi_clk", "vdma_clk", "s_axi_aclk";
	status = "okay";

	port {
		axi_hdmi_out: endpoint {
			remote-endpoint = <&adv7511_in>;
		};
	};
};

&axi_hdmi_dma {
	compatible = "adi,axi-dmac-1.00.a";
	clocks = <&clkc 15>, <&clkc 15>, <&clkc 15>;
	clock-names = "s_axi_aclk", "m_src_axi_aclk", "m_axis_aclk";
	#dma-cells = <1>;
	status = "okay";

	adi,channels {
		#size-cells = <0>;
		#address-cells = <1>;

		dma-channel@0 {
			reg = <0>;
			adi,source-bus-width = <64>;
			adi,source-bus-type = <0>;
			adi,destination-bus-width = <64>;
			adi,destination-bus-type = <1>;
		};
	};
};

&axi_spdif_tx_core {
	compatible = "adi,axi-spdif-tx-1.00.a";
	reg = <0x75c00000 0x1000>;
	dmas = <&dmac_s 0>;
	dma-names = "tx";
	clocks = <&misc_clk_1>, <&clkc 15>, <&clkc 15>;
	clock-names = "spdif_data_clk", "s_axi_aclk", "dma_req_aclk";
	status = "okay";

	#sound-dai-cells = <0>;	
};

&axi_sysid_0 {
	compatible = "adi,axi-sysid-1.00.a";
	reg = <0x45000000 0x10000>;
	status = "okay";
};

&adv7511 {
	compatible = "adi,adv7511";
	reg = <0x39>, <0x3f>;
	reg-names = "primary", "edid";
	status = "okay";

	adi,input-depth = <8>;
	adi,input-colorspace = "yuv422";
	adi,input-clock = "1x";
	adi,input-style = <1>;
	adi,input-justification = "right";
	adi,clock-delay = <0>;

	#sound-dai-cells = <0>;

	ports {
		#address-cells = <1>;
		#size-cells = <0>;

		port@0 {
			reg = <0>;
			adv7511_in: endpoint {
				remote-endpoint = <&axi_hdmi_out>;
			};
		};

		port@1 {
			reg = <1>;
		};
	};	
};

 

 

Thanks for your support!

ZC702-ADV7511-axiAdresses.PNG
ZC702-ADV7511-blockdesign.PNG
0 Kudos
Highlighted
Contributor
Contributor
229 Views
Registered: ‎08-29-2018

Hi @dimiter ,

thank you for your answer.

1. I'm booting from SD card. I think this feature is configured correctly because, if I remove the SD card, the system doesn't boot.

2. I saw that the problem could be related to the clocks, but I'm not understanding why. The modules (axi_hdmi_clkgen, for example) are directly fed from FCLK0/FCLK1, without gates or muxes. I've also searched into the kernel sources: this error is raised when there's an issue related to non-existent input clocks for axi_hdmi_clkgen.

3. I've attached two images explaining the design [block design + axi addresses]. Feel free to ask for other files If you need more data to analyze the problem.

 

I've made only a few Petalinux mods. I wrote down some code into $PROOT/project-spec/meta-user-recipes-bsp/device-tree/files/system-user.dtsi to populate the device-tree with correct nodes:

/include/ "system-conf.dtsi"

/ {
};

&axi_hdmi_clkgen {
	compatible = "adi,axi-clkgen-2.00.a";
	#clock-cells = <0>;
	clocks = <&clkc 16>, <&clkc 15>;
	clock-names = "clk", "s_axi_aclk";
	status = "okay";
};

&axi_hdmi_core {
	compatible = "adi,axi-hdmi-tx-1.00.a";
	dmas = <&axi_hdmi_dma 0>;
	dma-names = "video";
	clocks = <&axi_hdmi_clkgen>, <&clkc 15>, <&clkc 15>;
	clock-names = "hdmi_clk", "vdma_clk", "s_axi_aclk";
	status = "okay";

	port {
		axi_hdmi_out: endpoint {
			remote-endpoint = <&adv7511_in>;
		};
	};
};

&axi_hdmi_dma {
	compatible = "adi,axi-dmac-1.00.a";
	clocks = <&clkc 15>, <&clkc 15>, <&clkc 15>;
	clock-names = "s_axi_aclk", "m_src_axi_aclk", "m_axis_aclk";
	#dma-cells = <1>;
	status = "okay";

	adi,channels {
		#size-cells = <0>;
		#address-cells = <1>;

		dma-channel@0 {
			reg = <0>;
			adi,source-bus-width = <64>;
			adi,source-bus-type = <0>;
			adi,destination-bus-width = <64>;
			adi,destination-bus-type = <1>;
		};
	};
};

&axi_spdif_tx_core {
	compatible = "adi,axi-spdif-tx-1.00.a";
	reg = <0x75c00000 0x1000>;
	dmas = <&dmac_s 0>;
	dma-names = "tx";
	clocks = <&misc_clk_1>, <&clkc 15>, <&clkc 15>;
	clock-names = "spdif_data_clk", "s_axi_aclk", "dma_req_aclk";
	status = "okay";

	#sound-dai-cells = <0>;	
};

&axi_sysid_0 {
	compatible = "adi,axi-sysid-1.00.a";
	reg = <0x45000000 0x10000>;
	status = "okay";
};

&adv7511 {
	compatible = "adi,adv7511";
	reg = <0x39>, <0x3f>;
	reg-names = "primary", "edid";
	status = "okay";

	adi,input-depth = <8>;
	adi,input-colorspace = "yuv422";
	adi,input-clock = "1x";
	adi,input-style = <1>;
	adi,input-justification = "right";
	adi,clock-delay = <0>;

	#sound-dai-cells = <0>;

	ports {
		#address-cells = <1>;
		#size-cells = <0>;

		port@0 {
			reg = <0>;
			adv7511_in: endpoint {
				remote-endpoint = <&axi_hdmi_out>;
			};
		};

		port@1 {
			reg = <1>;
		};
	};	
};

 

I've also selected ADI kernel by using the tool petalinux-config. Following Xilinx UG1144, I've put the Analog Devices kernel sources into ext-local-src folder (${PROOT}/components/ext_sources/adi-linux-xlnx) and successfully built it.

 

Thanks for your support!

ZC702-ADV7511-axiAdresses.PNG
ZC702-ADV7511-blockdesign.PNG
0 Kudos
Highlighted
Contributor
Contributor
207 Views
Registered: ‎06-10-2018

@silentlab54

 

Have you tested the Vivado design without Linux.

Can you instrument the clock with a logic analyzer and confirm there is a clock output on axi_hdmi_clkgen feeding the HDMI module?

If there is indeed a clock input to the HDMI module, then i would think it's a device tree issue.

 

Can you post the tcl file for the block design?  It looks like you have an unconnected 200M reset on the BD above.

Are there any warnings?

 

EDIT: The AXI clock gen needs to be programmed if you want to verify using a baremetal setup.

0 Kudos
Highlighted
Contributor
Contributor
170 Views
Registered: ‎06-10-2018

@silentlab54 

I created your design and it seems you may be missing the kernel configuration defconfig

 

This is old, but check step 10. Based on what you shared above , this was not done.

https://blog.idv-tech.com/2014/05/25/hdmi-on-zedboard-with-petalinux/

 

The hardware looks the same , so it may be a kernel config issue.

One thing I can note is that compiling with 2020.1 is not supported. It gives 2-3 warning regarding HDMI clock.

Also , one reset is not used at all.

0 Kudos
Highlighted
Contributor
Contributor
118 Views
Registered: ‎08-29-2018

Hi @dimiter ,

thank you for your answers. As you said, axi_clkgen must be programmed to obtain the HDMI clock. FCLK0 and FCLK1 are up&running (I saw them with an oscilloscope inserting two debug probes into the ADI design).

Other notes: as you said, the synthesized design has the reset related to 200 MHz FCLK1 unused.

I think my kernel is correctly configured because I made "petalinux-config -c kernel" adding all the Analog Devices peripherals, I2C device & expanders support, ADV7511 support, Xilinx peripheral, DMAs, framebuffers, etc. 

As you said, the compilation of the ADI design with version 2020.1 is not supported. I think I will try to compile the design with Vivado 2019.2 and I will post the results.

 

Thank you!

 

 

0 Kudos