[meta-xilinx] Zynq boot unreliable
Nathan Rossi
nathan.rossi at xilinx.com
Mon Apr 28 18:20:40 PDT 2014
> -----Original Message-----
> From: meta-xilinx-bounces at yoctoproject.org [mailto:meta-xilinx-
> bounces at yoctoproject.org] On Behalf Of Rich Wilson
> Sent: Tuesday, April 29, 2014 9:00 AM
> To: meta-xilinx at yoctoproject.org
> Subject: [meta-xilinx] Zynq boot unreliable
>
> I have a somewhat-working yocto system on my zedboard.
> I have put everything on an SD card, and it boots... sometimes.
> Sometimes it halts with a kernel panic. And sometimes it gets
> into an endless loop; probably the same problem, except it
> never halts.
> Any ideas why it might be unreliable?
>
> At the risk of filling up everyone's mail boxes, I will include two
> examples below: First a bad one, and then a good one for reference.
>
>
> =====================================================
>
> ** Unable to read file uEnv.txt **
> Copying Linux from SD to RAM...
> reading uImage
> 2858720 bytes read in 385 ms (7.1 MiB/s)
> reading devicetree.dtb
> 23080 bytes read in 19 ms (1.2 MiB/s)
> ## Booting kernel from Legacy Image at 03000000 ...
> Image Name: Linux-3.8.11-xilinx
> Image Type: ARM Linux Kernel Image (uncompressed)
> Data Size: 2858656 Bytes = 2.7 MiB
> Load Address: 00008000
> Entry Point: 00008000
> Verifying Checksum ... OK
> ## Flattened Device Tree blob at 02a00000
> Booting using the fdt blob at 0x02a00000
> Loading Kernel Image ... OK
> OK
> Loading Device Tree to 1fb4e000, end 1fb56a27 ... OK
>
> Starting kernel ...
>
> Booting Linux on physical CPU 0x0
> Linux version 3.8.11-xilinx (rw at linux-cyy8) (gcc version 4.8.1 (GCC) ) #1
> SMP PREEMPT Wed Apr 23 10:46:38 PDT 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: ZedBoard
> bootconsole [earlycon0] enabled
> cma: CMA: reserved 16 MiB at 1e800000
> Memory policy: ECC disabled, Data cache writealloc
> PERCPU: Embedded 7 pages/cpu @c09a6000 s7616 r8192 d12864 u32768
> Built 1 zonelists in Zone order, mobility grouping on. Total pages:
> 130048
> Kernel command line: console=ttyPS0,115200 root=/dev/mmcblk0p2 ro
> earlyprintk
Add "rootwait" as a parameter to the boot args (either in uEnv.txt or in your device tree), this will cause the kernel to wait for the device to become ready before trying to mount it as the root filesystem. This is generally required for SD cards as they may not respond immediately on power up/probe, same applies to most removable media.
Boot args similar to 'console=ttyPS0,115200 root=/dev/mmcblk0p2 ro rootwait earlyprintk' is all you need to make it reliable for the root mount.
Regards,
Nathan
More information about the meta-xilinx
mailing list