I'm trying to boot a Linux kernel running on top of Xen with a initramfs copied into RAM by the bootloader.

In the device tree I took out a chunk of memory so the kernel will not overwrite the area I copy the initramfs to.

memory {
    device_type = "memory";
-    reg = <0x0 0x0 0x0 0x80000000 0x8 0x0 0x0 0x80000000>;
+    reg = <0x0 0x0 0x0 0x60000000 0x8 0x0 0x0 0x80000000>;

When in uboot, I copy the initramfs to 0x60000000 and a fitimage with the dom0 kernel, device tree, and xen image to 0x8000000 then boot.

My bootargs for dom0 are

xen,dom0-bootargs = "console=hvc0 earlycon=xen earlyprintk=xen rootdelay=1 root=/dev/ram0 rw rd_start=0x60000000 rd_size=0x114a3000 clk_ignore_unused";

I got the rd_start and rd_size bootargs from here which was initially suggested from this StackExchange question.

I'm questioning if I'm using an incorrect initramfs (ext4) because in the stack trace of the kernel panic, mount_block_root() is called and fails. However, before the panic it prints

No filesystem could mount root, tried: ext3 ext4 ext2 cramfs vfat msdos btrfs

Because of the lack of documentation on this I'm questioning if I'm going in the right direction here or if I'm way off.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.