Jump to content
  • 0

ZCU102 AXI Interrupt Handling


eduardoparra

Question

Hi,

Im trying to catch an interrupt from an AXI GPIO switch from my board ZCU102. I have created the following design in Vivado:

 

Captura de pantalla de 2016-12-01 18:05:25.png

 

The design is validated so now im using Petalinux to boot linux. I have exported the .hdf file and built petalinux but i can't boot linux.It hangs after that:

Exit from FSBL
NOTICE:  ATF running on XCZU9EG/silicon v1/RTL5.1 at 0xfffe5000
NOTICE:  BL31: Secure code at 0xfffc0000
NOTICE:  BL31: Non secure code at 0x8000000
NOTICE:  BL31: v1.2(release):
NOTICE:  BL31: Built : 17:17:47, Dec  1 2016
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.4.0 (tecnobit@TBL241) (gcc version 4.9.2 20140904 (prerelease) (crosstool-NG linaro-1.13.1-4.9-2014.09 - Linaro GCC 4.9-2014.09) ) #2 SMP Thu Dec 1 17:19:05 CET 2016
[    0.000000] Boot CPU: AArch64 Processor [410fd034]
[    0.000000] earlycon: Early serial console at MMIO 0xff000000 (options '115200n8')
[    0.000000] bootconsole [uart0] enabled
[    0.000000] cma: Reserved 128 MiB at 0x0000000078000000
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv1.0 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: MIGRATE_INFO_TYPE not supported.
[    0.000000] PERCPU: Embedded 15 pages/cpu @ffffffc87ff71000 s23936 r8192 d29312 u61440
[    0.000000] Detected VIPT I-cache on CPU0
[    0.000000] CPU features: enabling workaround for ARM erratum 845719
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 1034240
[    0.000000] Kernel command line: earlycon=cdns,mmio,0xFF000000,115200n8
[    0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
[    0.000000] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes)
[    0.000000] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes)
[    0.000000] software IO TLB [mem 0x73fff000-0x77fff000] (64MB) mapped at [ffffffc073fff000-ffffffc077ffefff]
[    0.000000] Memory: 3908832K/4194304K available (7061K kernel code, 520K rwdata, 2692K rodata, 13604K init, 348K bss, 154400K reserved, 131072K cma-reserved)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vmalloc : 0xffffff8000000000 - 0xffffffbdffff0000   (   247 GB)
[    0.000000]     vmemmap : 0xffffffbe00000000 - 0xffffffbfc0000000   (     7 GB maximum)
[    0.000000]               0xffffffbe00000000 - 0xffffffbe1dc00000   (   476 MB actual)
[    0.000000]     fixed   : 0xffffffbffa7fd000 - 0xffffffbffac00000   (  4108 KB)
[    0.000000]     PCI I/O : 0xffffffbffae00000 - 0xffffffbffbe00000   (    16 MB)
[    0.000000]     modules : 0xffffffbffc000000 - 0xffffffc000000000   (    64 MB)
[    0.000000]     memory  : 0xffffffc000000000 - 0xffffffc880000000   ( 34816 MB)
[    0.000000]       .init : 0xffffffc000a07000 - 0xffffffc001750000   ( 13604 KB)
[    0.000000]       .text : 0xffffffc000080000 - 0xffffffc000a06ff4   (  9756 KB)
[    0.000000]       .data : 0xffffffc001762000 - 0xffffffc0017e4360   (   521 KB)
[    0.000000] Hierarchical RCU implementation.
[    0.000000]     Build-time adjustment of leaf fanout to 64.
[    0.000000]     RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=4.
[    0.000000] RCU: Adjusting geometry for rcu_fanout_leaf=64, nr_cpu_ids=4
[    0.000000] NR_IRQS:64 nr_irqs:64 0
[    0.000000] GIC: Using split EOI/Deactivate mode
[    0.000000] Architected cp15 timer(s) running at 100.00MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x171024e7e0, max_idle_ns: 440795205315 ns
[    0.000003] sched_clock: 56 bits at 100MHz, resolution 10ns, wraps every 4398046511100ns
[    0.008316] Console: colour dummy device 80x25
[    0.012575] console [tty0] enabled
[    0.015942] bootconsole [uart0] disabled

If i boot petalinux by qemu i manage boot linux, but the interrupt i defined in the design does not appear on the system

I'm beggining with embedded linux so i don't know if i'm missing something.

Any idea??

pl.dtsi

zynqmp.dtsi

pcw.dtsi

system-top.dts

system-conf.dtsi

Link to comment
Share on other sites

1 answer to this question

Recommended Posts

We don't have any MPSoC Zynq boards yet so I haven't had a chance to play with that part yet (Grrrrrrr). So basically I can't guarantee I'm right, but I got a guess...

It looks like you are booting successfully but your uart console is being disabled. Maybe you could try to ssh into it over a network connection to test this. If this is the case, you could try adding something along the lines of this to your bootargs using petalinux-config:

console=ttyPS0,115200 earlyprintk

I think that should ensure that you get a console over UART after boot. You might need to replace ttyPS0 with whatever node the MPSoC UART driver creates. For zynq this was always either ttyPS0 or ttyPS1.  

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...