AnsweredAssumed Answered

Trouble booting Linux on Mini-ITX with FMCOMMS4

Question asked by rmm92vt on Jan 4, 2017
Latest reply on Jan 19, 2017 by rmm92vt
Branched to a new discussion

I have a Mini-ITX platform with the z100 Zynq. The fully supported part is the z045 Zynq, but following instructions obtained through this forum I was able to successfully re-target the HDL reference design to the z100 part and get a bitfile that worked wonderfully for my no-OS design:


Mini-ITX Z100 + FMCOMMS4 


I then proceeded down a number of different paths to get my system to boot up to a full Linux desktop so I could run IIOScope, GNURadio and Python. The most straightforward approach was to grab your reference design SD Card image as instructed here:


Zynq & Altera SoC Quick Start Guide [Analog Devices Wiki] 


I used the latest image (2016_12_23) and configured the resulting /BOOT partition of the SD card as follows:

* Copied devicetree.dtb from the "zynq-mini-itx-adv7511-ad9364-fmcomms4" folder to root

* Copied uImage and uEnv.txt from "zynq-common" folder to root

* Created a new BOOT.BIN containing my own bitfile:

  - Copied bootgen_sysfiles.tgz from "zynq-mini-itx-adv7511-ad9364-fmcomms4" and unzipped it

  - Used the provided FSBL / u-boot binaries along with my own bitfile

  - Edited the BIF appropriately and created a new BOOT.BIN using bootgen

* Placed the new BOOT.BIN on the SD card /BOOT root directory along with the other three files.


This SD Card boots on the Mini-ITX z100 and the Xfce Linux desktop comes up just fine. I can run IIOScope, inspect the device folders via command line and mess around with GNURadio. It all seems good except for the fact that audio isn't working and I get this annoying dump on my UART:



devtmpfs: mounted
Freeing unused kernel memory: 248K (c069e000 - c06dc000)
This architecture does not have kernel memory protection.
random: init urandom read with 82 bits of entropy available
init: hwclock main process (823) terminated with status 1
systemd-udevd[923]: starting version 204
systemd-udevd[1235]: could not open moddep file '/lib/modules/4.6.0-gca4cf2a/modules.dep.bin'
init: udev-fallback-graphics main process (1325) terminated with status 1
random: nonblocking pool is initialized
init: samba-ad-dc main process (1602) terminated with status 1
init: tty1 main process (1743) killed by TERM signal
xemacps e000b000.eth: Set clk to 124999999 Hz
xemacps e000b000.eth: link up (1000/FULL)
Unhandled fault: imprecise external abort (0x406) at 0x00080de4
pgd = e8f18000
[00080de4] *pgd=28f11831, *pte=3567f75f, *ppte=3567fc7f
Internal error: : 406 [#1] PREEMPT SMP ARM
Modules linked in:
CPU: 1 PID: 2095 Comm: pulseaudio Not tainted 4.6.0-gca4cf2a #21
Hardware name: Xilinx Zynq Platform
task: ef1e2f40 ti: e8edc000 task.ti: e8edc000
PC is at regmap_mmio_read32le+0x10/0x14
LR is at regmap_mmio_read+0x2c/0x5c
pc : [<c0263944>]    lr : [<c0263aa8>]    psr: 200f0093
sp : e8eddcb0  ip : 00000000  fp : be9be904
r10: ee87680c  r9 : 00000001  r8 : 00000001
r7 : ee961600  r6 : 00000000  r5 : e8eddce4  r4 : ef3bb840
r3 : f097e000  r2 : e8eddce4  r1 : f097e000  r0 : 00000000
Flags: nzCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment none
Control: 18c5387d  Table: 28f1804a  DAC: 00000051
Process pulseaudio (pid: 2095, stack limit = 0xe8edc210)
Stack: (0xe8eddcb0 to 0xe8ede000)
dca0:                                     ee961600 00000000 e8eddce4 c025da88
dcc0: c025da74 c025edac 00000001 00000000 ee961600 00000001 00000000 c025f0c8
dce0: ee961600 00000000 00000001 ee961600 00000001 00000001 00000000 eeaa1c00

note: pulseaudio[2095] exited with preempt_count 1


I've attached a full dmesg log here for reference. Not a 'normal' boot by any stretch. Despite the fact that the system appears to be operating okay, I still have no audio out. I noticed this while trying to build a GNURadio FM demod and the flowgraph kept hanging whenever I connected an audio sink.


Things I've tried:

* I ran the and scripts as advised in the Wiki

* I tried the mods to /etc/pulse/ found here under "Fixing Issues with Pulse Audio":


Linux with HDMI video output on the ZED, ZC702 and ZC706 boards [Analog Devices Wiki] 


Any ideas? I'd try a normal unmodified boot as a sanity check, but I don't have a Mini-ITX z045 platform to do so with.


Thanks in advance