UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

AR# 70141

2017.1-2017.4 Zynq UltraScale+ MPSoC: Xen kernel panic when booting large rootfs.cpio.gz.u-boot file

Description

On Zynq UltraScale+ devices, a Xen kernel panic occurs when booting large rootfs.cpio.gz.u-boot files with a size greater than 70Mb.

Example error logs:

Starting kernel ...

 Xen 4.8.1-pre
(XEN) Xen version 4.8.1-pre (sandeepg@) (aarch64-xilinx-linux-gcc (Linaro GCC 6.2-2016.11) 6.2.1 20161016) debug=n  Mon Nov  6 15:38:38 MST 2017
(XEN) Latest ChangeSet: Sun Mar 26 23:37:13 2017 +0200 git:ba8ea4d-dirty
(XEN) Processor: 410fd034: "ARM Limited", variant: 0x0, part 0xd03, rev 0x4
(XEN) 64-bit Execution:
(XEN)   Processor Features: 0000000000002222 0000000000000000
(XEN)     Exception Levels: EL3:64+32 EL2:64+32 EL1:64+32 EL0:64+32
(XEN)     Extensions: FloatingPoint AdvancedSIMD
(XEN)   Debug Features: 0000000010305106 0000000000000000
(XEN)   Auxiliary Features: 0000000000000000 0000000000000000
(XEN)   Memory Model Features: 0000000000001122 0000000000000000
(XEN)   ISA Features:  0000000000011120 0000000000000000
(XEN) 32-bit Execution:
(XEN)   Processor Features: 00000131:00011011
(XEN)     Instruction Sets: AArch32 A32 Thumb Thumb-2 Jazelle
(XEN)     Extensions: GenericTimer Security
(XEN)   Debug Features: 03010066
(XEN)   Auxiliary Features: 00000000
(XEN)   Memory Model Features: 10201105 40000000 01260000 02102211
(XEN)  ISA Features: 02101110 13112111 21232042 01112131 00011142 00011121
(XEN) Generic Timer IRQ: phys=30 hyp=26 virt=27 Freq: 100000 KHz
(XEN) GICv2 initialization:
(XEN)         gic_dist_addr=00000000f9010000
(XEN)         gic_cpu_addr=00000000f9020000
(XEN)         gic_hyp_addr=00000000f9040000
(XEN)         gic_vcpu_addr=00000000f9060000
(XEN)         gic_maintenance_irq=25
(XEN) GICv2: Adjusting CPU interface base to 0xf902f000
(XEN) GICv2: 192 lines, 4 cpus, secure (IID 0200143b).
(XEN) Using scheduler: SMP Credit Scheduler (credit)
(XEN) Allocated console ring of 16 KiB.
(XEN) Bringing up CPU1
(XEN) Bringing up CPU2
(XEN) Bringing up CPU3
(XEN) Brought up 4 CPUs
(XEN) P2M: 40-bit IPA with 40-bit PA
(XEN) P2M: 3 levels with order-1 root, VTCR 0x80023558
(XEN) I/O virtualisation enabled
(XEN)  - Dom0 mode: Relaxed
(XEN) Interrupt remapping enabled
(XEN) *** LOADING DOMAIN 0 ***
(XEN) Loading kernel from boot module @ 0000000000080000
(XEN) Loading ramdisk from boot module @ 0000000077ab8000
(XEN) Allocating 1:1 mappings totalling 768MB for dom0:
(XEN) BANK[0] 0x00000020000000-0x00000040000000 (512MB)
(XEN) BANK[1] 0x00000840000000-0x00000850000000 (256MB)
(XEN) Grant table range: 0x0000007fe00000-0x0000007fe56000
(XEN) Loading zImage from 0000000000080000 to 0000000020080000-0000000023180000
(XEN) Loading dom0 initrd from 0000000077ab8000 to 0x0000000028200000-0x000000002e62ba1b
(XEN) Allocating PPI 16 for event channel interrupt
(XEN) Loading dom0 DTB to 0x0000000028000000-0x0000000028008ca6
(XEN) Std. Loglevel: Errors and warnings
(XEN) Guest Loglevel: Nothing (Rate-limited: Errors and warnings)
(XEN) *** Serial input -> DOM0 (type 'CTRL-a' three times to switch input to Xen)
(XEN) Freed 272kB init memory.
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.9.0-xilinx-v2017.1 (sandeepg@xcoapps62) (gcc version 6.2.1 20161016 (Linaro GCC 6.2-2016.11) ) #1 SMP Mon Nov 6 15:38:52 MST 2017
[    0.000000] Boot CPU: AArch64 Processor [410fd034]
[    0.000000] earlycon: xen0 at I/O port 0x0 (options '')
[    0.000000] bootconsole [xen0] enabled
[    0.000000] Xen 4.8 support found
[    0.000000] efi: Getting EFI parameters from FDT:
.........
.........
[    6.130944] RAMDISK: Couldn't find valid RAM disk image starting at 0.
[    6.137443] VFS: Cannot open root device "(null)" or unknown-block(0,0): error -6
[    6.144893] Please append a correct "root=" boot option; here are the available partitions:
[    6.153276] 0100           65536 ram0 [    6.156817]  (driver?)
[    6.159242] 0101           65536 ram1 [    6.162786]  (driver?)
[    6.165208] 0102           65536 ram2 [    6.168753]  (driver?)
[    6.171179] 0103           65536 ram3 [    6.174723]  (driver?)
[    6.177141] 0104           65536 ram4 [    6.180690]  (driver?)
[    6.183116] 0105           65536 ram5 [    6.186663]  (driver?)
[    6.189081] 0106           65536 ram6 [    6.192629]  (driver?)
[    6.195052] 0107           65536 ram7 [    6.198597]  (driver?)
[    6.201015] 0108           65536 ram8 [    6.204564]  (driver?)
[    6.206989] 0109           65536 ram9 [    6.210527]  (driver?)
[    6.212958] 010a           65536 ram10 [    6.216587]  (driver?)
[    6.219016] 010b           65536 ram11 [    6.222646]  (driver?)
[    6.225062] 010c           65536 ram12 [    6.228697]  (driver?)
[    6.231123] 010d           65536 ram13 [    6.234754]  (driver?)
[    6.237172] 010e           65536 ram14 [    6.240811]  (driver?)
[    6.243233] 010f           65536 ram15 [    6.246863]  (driver?)
[    6.249287] 1f00            1024 mtdblock0 [    6.253266]  (driver?)
[    6.255689] 1f01            5120 mtdblock1 [    6.259666]  (driver?)
[    6.262089] 1f02             128 mtdblock2 [    6.266066]  (driver?)
[    6.268491] 1f03            6016 mtdblock3 [    6.272470]  (driver?)
[    6.274892] 1f04           30720 mtdblock4 [    6.278869]  (driver?)
[    6.281290] 1f05             256 mtdblock5 [    6.285269]  (driver?)
[    6.287694] 1f06           36864 mtdblock6 [    6.291671]  (driver?)
[    6.294090] 1f07           63232 mtdblock7 [    6.298071]  (driver?)
[    6.300496] b300        15558144 mmcblk0 [    6.304299]  driver: mmcblk
[    6.307157]   b301        15554048 mmcblk0p1 00000000-01[    6.312257]
[    6.313811] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[    6.322116] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.9.0-xilinx-v2017.1 #1
[    6.329292] Hardware name: ZynqMP ZCU102 RevB (DT)
[    6.334136] Call trace:
[    6.336653] [<ffffff80080880f0>] dump_backtrace+0x0/0x198
[    6.342100] [<ffffff800808829c>] show_stack+0x14/0x20
[    6.347202] [<ffffff80083da114>] dump_stack+0x94/0xb8
[    6.352305] [<ffffff800812a350>] panic+0x114/0x25c
[    6.357150] [<ffffff8008be10e8>] mount_block_root+0x198/0x270
[    6.362943] [<ffffff8008be13f8>] mount_root+0x11c/0x134
[    6.368220] [<ffffff8008be157c>] prepare_namespace+0x16c/0x1b4
[    6.374102] [<ffffff8008be0d14>] kernel_init_freeable+0x1c0/0x1e0
[    6.380244] [<ffffff800890b0c8>] kernel_init+0x10/0x100
[    6.385519] [<ffffff8008082e80>] ret_from_fork+0x10/0x50
[    6.390881] Kernel Offset: disabled
[    6.394426] Memory Limit: none
[    6.397544] ---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

Solution

To fix this issue, you will need to increase the reserved memory of dom0 in xen-overlay.dtsi from 768M (the default size) to 1200M or above depending on the size of the image.

$ sed '/dom0_mem/ s/768M/1200M/' <plnx-proj-root>/project-spec/meta-user/recipes-bsp/device-tree/files/xen-overlay.dtsi
AR# 70141
Date 12/20/2017
Status Active
Type General Article
Devices
Tools More Less
Boards & Kits
Page Bookmarked