Hangup at AXI usually means the logic isn't really there. Either the address is wrong or you programmed the wrong FPGA image. What happens is that the CPU send out the AXI request, but no response arrives and there's no timeout, thus the whole system hangs.

On a side note, I'd strongly advise to get rid of the axi-gpio block and just use the EMIO GPIO ports on the Zynq itself. The EMIO GPIO ports use less resources on both sides, and there's 64 of them.



On 22-05-17 12:45, Giulio Presazzi wrote:
Hi all,

I'm struggling to solve Linux and PL AXI GPIO issue based on Microzed board.

I've a bitstream with FPGA configuration (working fine with bare-metal
application) , and I generated the .dts file starting from HDF using the
following steps:

/hsi open_hw_design <file>.hdf/

/hsi set_repo_path ../../../device-tree-xlnx/

/hsi create_sw_design device-tree -os device_tree -proc ps7_cortexa9_0/

/hsi generate_target -dir <foldername>/



When I include the dts in my new device tree file (to support LED GPIO), the
linux booting hang on starting kernel.

The node that generate the issue is:

/axi_gpio_LED_Output: gpio@81260000 {/

/                                               #gpio-cells = <2>;/

/                                               compatible =
"xlnx,xps-gpio-1.00.a";/

/                                               gpio-controller ;/

/                                               //reg = <0x81260000 0x10000>;/

/                                               xlnx,all-inputs = <0x0>;/

/                                               xlnx,all-inputs-2 = <0x0>;/

/                                               xlnx,all-outputs = <0x1>;/

/                                               xlnx,all-outputs-2 = <0x0>;/

/                                               xlnx,dout-default = 
<0x00000000>;/

/                                               xlnx,dout-default-2 =
<0x00000000>;/

/                                               xlnx,gpio-width = <0x4>;/

/                                               xlnx,gpio2-width = <0x20>;/

/                                               xlnx,interrupt-present = <0x0>;/

/                                               xlnx,is-dual = <0x0>;/

/                                               xlnx,tri-default = 
<0xFFFFFFFF>;/

/                                               xlnx,tri-default-2 =
<0xFFFFFFFF>;/

/                               };/

I've tried with devmem tool as well, from working linux configuration (dts
without previous node) and it hangs after calling:

*devmem -r 0x81260000*

I'm using YOCTO and meta-xilinx layer to generate the kernel, boot.ini and
rootfs. I'm working with openAMP configuration (core 0 linux + Core 1 bare 
metal).

This is the BOOT trace:

/ /

/U-Boot SPL 2016.07-dirty (May 02 2017 - 15:52:44)/

/mmc boot/

/Trying to boot from MMC1/

/reading fpga.bin/

/reading fpga.bin/

/zynq_validate_bitstream: Bitstream is not validated yet (diff 73)/

/reading system.dtb/

/spl_load_image_fat_os: error reading image system.dtb, err - -1/

/reading u-boot.img/

/reading u-boot.img/

/ /

/U-Boot 2016.07 (May 10 2017 - 07:35:46 +0000)/

/ /

/Model: Zynq MicroZED Board/

/Board: Xilinx Zynq/

/DRAM:  ECC disabled 1 GiB/

/MMC:   sdhci@e0100000: 0/

/SF: Detected S25FL128S_64K with page size 256 Bytes, erase size 64 KiB, total
16 MiB/

/In:    serial@e0001000/

/Out:   serial@e0001000/

/Err:   serial@e0001000/

/Model: Zynq MicroZED Board/

/Board: Xilinx Zynq/

/Net:   ZYNQ GEM: e000b000, phyaddr 0, interface rgmii-id/

/eth0: ethernet@e000b000/

/reading uEnv.txt/

/245 bytes read in 10 ms (23.4 KiB/s)/

/Importing environment from SD .../

/Hit any key to stop autoboot:  0 /

/Device: sdhci@e0100000/

/Manufacturer ID: 3/

/OEM: 5344/

/Name: SU04G /

/Tran Speed: 50000000/

/Rd Block Len: 512/

/SD version 3.0/

/High Capacity: Yes/

/Capacity: 3.7 GiB/

/Bus Width: 4-bit/

/Erase Group Size: 512 Bytes/

/reading uEnv.txt/

/245 bytes read in 10 ms (23.4 KiB/s)/

/Loaded environment from uEnv.txt/

/Importing environment from SD .../

/Running uenvcmd .../

/reading uImage/

/3781072 bytes read in 329 ms (11 MiB/s)/

/reading microzed-zynq7.dtb/

/23044 bytes read in 24 ms (937.5 KiB/s)/

/## Booting kernel from Legacy Image at 03000000 .../

/   Image Name:   Linux-4.9.0-xilinx-v2017.1/

/   Image Type:   ARM Linux Kernel Image (uncompressed)/

/   Data Size:    3781008 Bytes = 3.6 MiB/

/   Load Address: 10000000/

/   Entry Point:  10000000/

/   Verifying Checksum ... OK/

/## Flattened Device Tree blob at 02a00000/

/   Booting using the fdt blob at 0x2a00000/

/   Loading Kernel Image ... OK/

/   Loading Device Tree to 1fff7000, end 1ffffa03 ... OK/

/ /

/Starting kernel .../

/<Linux hangs>/

/ /

Do you have any advice or configuration I need to check ?



Thanks

Giulio Presazzi






Kind regards,

Mike Looijmans
System Expert

TOPIC Products
Materiaalweg 4, NL-5681 RJ Best
Postbus 440, NL-5680 AK Best
Telefoon: +31 (0) 499 33 69 79
E-mail: mike.looijm...@topicproducts.com
Website: www.topicproducts.com

Please consider the environment before printing this e-mail



Join our presentation at Electronics & Applications 2017:
FPGA for real-time data processing, subject “Hardware platform for industrial 
ultrasound steel plate Inspection” Topic Embedded Systems - Herman Kuster, 1st 
June 10 AM

Visit http://eabeurs.nl/author/612884/ for more information

--
_______________________________________________
meta-xilinx mailing list
meta-xilinx@yoctoproject.org
https://lists.yoctoproject.org/listinfo/meta-xilinx

Reply via email to