Showing results for 
Show  only  | Search instead for 
Did you mean: 
Registered: ‎01-24-2014

Linux booting fail on ZC706 after using u-boot

Jump to solution



Recently, I am studying how to build linux for ZC706. By following the introduction, I obtained 'u-boot.elf' and 'uImage/zImage' using git compiling environment. The fsbl.elf and devicetree.dtb is obtained from SDK. Also I bootgen the boot.bin. The uramdisk.image.gz is obtained from xilinx.


By downloading the bitstream firstly to the board through Jtag cable, I download the fsbl.elf, devicetree.dtb, uramdisk.image.gz, uImage to the board sequentially. Then I download the u-boot.elf. 


The problem is:

I can stop at the u-boot to input the u-boot command but if I try to boot the linux image it will endlessly produce "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee..." on the monitoring screen.


Here is the log I use boot command in u-boot:


zynq-uboot> boot
Device: zynq_sdhci
Manufacturer ID: 3
OEM: 5344
Name: SU08G 
Tran Speed: 50000000
Rd Block Len: 512
SD version 3.0
High Capacity: Yes
Capacity: 7.4 GiB
Bus Width: 4-bit
reading uEnv.txt
** Unable to read file uEnv.txt **
Copying Linux from SD to RAM...
reading uImage
3101888 bytes read in 308 ms (9.6 MiB/s)
reading devicetree.dtb
7235 bytes read in 15 ms (470.7 KiB/s)
reading uramdisk.image.gz
5310047 bytes read in 509 ms (9.9 MiB/s)
## Booting kernel from Legacy Image at 03000000 ...
Image Name: Linux-3.12.0-xilinx
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 3101824 Bytes = 3 MiB
Load Address: 00008000
Entry Point: 00008000
Verifying Checksum ... OK
## Loading init Ramdisk from Legacy Image at 02000000 ...
Image Name: 
Image Type: ARM Linux RAMDisk Image (gzip compressed)
Data Size: 5309983 Bytes = 5.1 MiB
Load Address: 00000000
Entry Point: 00000000
Verifying Checksum ... OK
## Flattened Device Tree blob at 02a00000
Booting using the fdt blob at 0x2a00000
Loading Kernel Image ... OK
Loading Ramdisk to 1faef000, end 1ffff61f ... OK
Loading Device Tree to 1faea000, end 1faeec42 ... OK

Starting kernel ...

Uncompressing Linux... done, booting the kernel.
Booting Linux on physical CPU 0x0
Linux version 3.12.0-xilinx (yuwu@YUWU01-LNX) (gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5) ) #1 SMP PREEMPT Thu Jan 23 16:35:40 GMT 2014
CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=18c5387d
CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
Machine: Xilinx Zynq Platform, model: Xilinx Zynq
bootconsole [earlycon0] enabled
Memory policy: Data cache writealloc
PERCPU: Embedded 8 pages/cpu @c200a000 s9088 r8192 d15488 u32768
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 260624
Kernel command line: console=ttyPS0,115200n8 root=/dev/ram rw initrd=0x00800000,16M earlyprintk mtdparts=physmap-flash.0:512K(nor-fsbl),512K(nor-u-boot),5M(nor-linux),9M(nor-user),1M(nor-scratch),-(nor-rootfs)
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: 1011620K/1048576K available (4231K kernel code, 254K rwdata, 1372K rodata, 176K init, 183K bss, 36956K reserved, 270336K highmem)
Virtual kernel memory layout:
vector : 0xffff0000 - 0xffff1000 ( 4 kB)
fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
vmalloc : 0xf0000000 - 0xff000000 ( 240 MB)
lowmem : 0xc0000000 - 0xef800000 ( 760 MB)
pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB)
modules : 0xbf000000 - 0xbfe00000 ( 14 MB)
.text : 0xc0008000 - 0xc0580e78 (5604 kB)
.init : 0xc0581000 - 0xc05ad380 ( 177 kB)
.data : 0xc05ae000 - 0xc05eda48 ( 255 kB)
.bss : 0xc05eda54 - 0xc061b7e8 ( 184 kB)
Preemptible hierarchical RCU implementation.
Dump stacks of tasks blocking RCU-preempt GP.
RCU restricting CPUs from NR_CPUS=4 to nr_cpu_ids=2.
NR_IRQS:16 nr_irqs:16 16
ps7-slcr mapped to f0004000
Zynq clock init
sched_clock: 32 bits at 100 Hz, resolution 10000000ns, wraps every 4294967286ms
Console: colour dummy device 80x30
Calibrating delay loop... 1332.01 BogoMIPS (lpj=6660096)
pid_max: default: 32768 minimum: 301
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
CPU0: thread -1, cpu 0, socket 0, mpidr 80000000
Setting up static identity map for 0xc0400dd0 - 0xc0400e28
L310 cache controller enabled
l2x0: 8 ways, CACHE_ID 0x410000c8, AUX_CTRL 0x72360000, Cache size: 512 kB
CPU1: Booted secondary processor
CPU1: thread -1, cpu 1, socket 0, mpidr 80000001
Brought up 2 CPUs
SMP: Total of 2 processors activated.
CPU: All CPU(s) started in SVC mode.
devtmpfs: initialized
VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 4
regulator-dummy: no parameters
NET: Registered protocol family 16
DMA: preallocated 256 KiB pool for atomic coherent allocations
cpuidle: using governor ladder
cpuidle: using governor menu
zynq_gpio eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee


As you can see, the booting process stopped at 'zynq_gpio'. I cann't figure out what is the problem. I use a simple design without any PL part. Is this caused by building linux or the hardware configuration?


Can anyone help me please?


Thanks a lot.

Tags (5)
0 Kudos
1 Solution

Accepted Solutions
Registered: ‎01-24-2014

Thanks for you replay. Anyway, I solved the problem.


I am using the latest linux version from git. The problem happens when using a customized devicetree file created from SDK. If using the default devicetree file in git, it works.

View solution in original post

0 Kudos
4 Replies
Xilinx Employee
Xilinx Employee
Registered: ‎09-10-2008



I would suggest that you start with one of the releases on the wiki,, to get a baseline (maybe you already did).  I would boot it off of SD as that's easiest.


Then I would start the building process but not changing everything at the same time, only one element at a time, such as building the linux kernel.


Hope that helps.


0 Kudos
Registered: ‎01-24-2014

Thanks for you reply.


The reason I am not using prebuild release is because the ehternet does not work. Someone said using the BIST devicetree can solve it but it wouldn't work for me. By using the prebuild release it does can boot to zynq> prompt but the debug information shows that :

xemacps e000b000.ps7-ethernet: pdev->id -1, baseaddr 0xe000b000, irq 54

And since then I cannot use the SDK to debug application through SSH. 


Do you have any idea about this?


Many thanks.

0 Kudos
Xilinx Employee
Xilinx Employee
Registered: ‎09-10-2008
It looks like you might be using the top of the tree (master branch) from github, is that true along?. Ethernet has worked in the releases for a long time, which release are you seeing ethernet not work?

0 Kudos
Registered: ‎01-24-2014

Thanks for you replay. Anyway, I solved the problem.


I am using the latest linux version from git. The problem happens when using a customized devicetree file created from SDK. If using the default devicetree file in git, it works.

View solution in original post

0 Kudos