All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mao Han <han_mao@c-sky.com>
To: buildroot@busybox.net
Subject: [Buildroot] qemu_riscv64_virt can't boot up with large cpio initial RAM filesystem
Date: Wed, 16 Oct 2019 18:48:51 +0800	[thread overview]
Message-ID: <20191016104813.GA10000@vmh-VirtualBox> (raw)
In-Reply-To: <271a256064b670de4efcf805940de6b0926e4f24.camel@wdc.com>

On Tue, Oct 15, 2019 at 12:53:51AM +0000, Alistair Francis wrote:
> On Wed, 2019-10-09 at 15:26 +0800, han_mao at c-sky.com wrote:
> > Hi,
> > I got some troble when I tried to use init ram fs on riscv64 virt.
> > The default ext2 fs works fine. If I use cpio and init ram fs to
> > replace that. The kernel can boot up with small ram fs, but
> > a big ram fs(>100M) doesn't work.
> 
> It's possible that your addresses are colliding. As in something is
> being moved/written on top of your ramfs in memory and corrupting it.
> It's also possible that you are out of memory?
>

I ran the qemu with -m 1024 so it doesn't look like a out of memory.
LD_LIBRARY_PATH=../host/lib ../host/bin/qemu-system-riscv64 -M virt -m 1024 -kernel fw_jump.elf -device loader,file=Image,addr=0x80200000 -append "rootwait root=/dev/ram0" -nographic

> It's hard to debug without more information (such as a log).
>
Kernel almost output nothing when I start kernel with a large ram fs.
The log for small ram fs and large ram fs is attached.
 
> Why do you need such a large ram fs? Why not just attach the image as a
> drive?
>
I use buildroot to generate kernel image for our board, when the fpga
board don't have any network/usb storage support, ram fs is a simple
way to put all the required files into the system, and I want to verify
that image on qemu.

Thanks,
Mao Han 
-------------- next part --------------
LD_LIBRARY_PATH=../host/lib ../host/bin/qemu-system-riscv64 -M virt -m 1024 -kernel fw_jump.elf -device loader,file=Image,addr=0x80200000 -append "rootwait root=/dev/ram0" -nographic 

OpenSBI v0.3 (Oct  9 2019 15:09:29)
   ____                    _____ ____ _____
  / __ \                  / ____|  _ \_   _|
 | |  | |_ __   ___ _ __ | (___ | |_) || |
 | |  | | '_ \ / _ \ '_ \ \___ \|  _ < | |
 | |__| | |_) |  __/ | | |____) | |_) || |_
  \____/| .__/ \___|_| |_|_____/|____/_____|
        | |
        |_|

Platform Name          : QEMU Virt Machine
Platform HART Features : RV64ACDFIMSU
Platform Max HARTs     : 8
Current Hart           : 0
Firmware Base          : 0x80000000
Firmware Size          : 96 KB
Runtime SBI Version    : 0.1

PMP0: 0x0000000080000000-0x000000008001ffff (A)
PMP1: 0x0000000000000000-0xffffffffffffffff (A,R,W,X)
[    0.000000] OF: fdt: Ignoring memory range 0x80000000 - 0x80200000
[    0.000000] Linux version 5.1.12 (root at vmh-VirtualBox) (gcc version 8.3.0 (Buildroot 2019.08-git-g4bc68b3-dirty)) #9 SMP Thu Oct 10 09:14:54 CST 2019
[    0.000000] initrd not found or empty - disabling initrd
[    0.000000] Zone ranges:
[    0.000000]   DMA32    [mem 0x0000000080200000-0x00000000bfffffff]
[    0.000000]   Normal   empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000080200000-0x00000000bfffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000080200000-0x00000000bfffffff]
[    0.000000] software IO TLB: mapped [mem 0xbb1fc000-0xbf1fc000] (64MB)
[    0.000000] elf_hwcap is 0x112d
[    0.000000] percpu: Embedded 17 pages/cpu s31000 r8192 d30440 u69632
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 258055
[    0.000000] Kernel command line: rootwait root=/dev/ram0
[    0.000000] Dentry cache hash table entries: 131072 (order: 8, 1048576 bytes)
[    0.000000] Inode-cache hash table entries: 65536 (order: 7, 524288 bytes)
[    0.000000] Sorting __ex_table...
[    0.000000] Memory: 952484K/1046528K available (5748K kernel code, 356K rwdata, 1828K rodata, 3898K init, 309K bss, 94044K reserved, 0K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] rcu: Hierarchical RCU implementation.
[    0.000000] rcu: 	RCU restricting CPUs from NR_CPUS=8 to nr_cpu_ids=1.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1
[    0.000000] NR_IRQS: 0, nr_irqs: 0, preallocated irqs: 0
[    0.000000] plic: mapped 10 interrupts with 1 handlers for 2 contexts.
[    0.000000] riscv_timer_init_dt: Registering clocksource cpuid [0] hartid [0]
[    0.000000] clocksource: riscv_clocksource: mask: 0xffffffffffffffff max_cycles: 0x24e6a1710, max_idle_ns: 440795202120 ns
[    0.000144] sched_clock: 64 bits at 10MHz, resolution 100ns, wraps every 4398046511100ns
[    0.008328] Console: colour dummy device 80x25
[    0.009780] printk: console [tty0] enabled
[    0.011079] Calibrating delay loop (skipped), value calculated using timer frequency.. 20.00 BogoMIPS (lpj=40000)
[    0.011290] pid_max: default: 32768 minimum: 301
[    0.013313] Mount-cache hash table entries: 2048 (order: 2, 16384 bytes)
[    0.013415] Mountpoint-cache hash table entries: 2048 (order: 2, 16384 bytes)
[    0.024850] *** VALIDATE proc ***
[    0.028173] *** VALIDATE cgroup1 ***
[    0.028329] *** VALIDATE cgroup2 ***
[    0.046703] rcu: Hierarchical SRCU implementation.
[    0.054145] smp: Bringing up secondary CPUs ...
[    0.054279] smp: Brought up 1 node, 1 CPU
[    0.084655] devtmpfs: initialized
[    0.091660] random: get_random_u32 called from bucket_table_alloc+0x74/0x17e with crng_init=0
[    0.094741] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.094984] futex hash table entries: 256 (order: 2, 16384 bytes)
[    0.097885] NET: Registered protocol family 16
[    0.100744] DMA: preallocated 256 KiB pool for atomic allocations
[    0.144678] vgaarb: loaded
[    0.145809] SCSI subsystem initialized
[    0.148671] usbcore: registered new interface driver usbfs
[    0.149052] usbcore: registered new interface driver hub
[    0.149371] usbcore: registered new device driver usb
[    0.158318] clocksource: Switched to clocksource riscv_clocksource
[    0.187730] NET: Registered protocol family 2
[    0.193631] tcp_listen_portaddr_hash hash table entries: 512 (order: 1, 8192 bytes)
[    0.193884] TCP established hash table entries: 8192 (order: 4, 65536 bytes)
[    0.194172] TCP bind hash table entries: 8192 (order: 5, 131072 bytes)
[    0.194822] TCP: Hash tables configured (established 8192 bind 8192)
[    0.196607] UDP hash table entries: 512 (order: 2, 16384 bytes)
[    0.196897] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)
[    0.198666] NET: Registered protocol family 1
[    0.203797] RPC: Registered named UNIX socket transport module.
[    0.203896] RPC: Registered udp transport module.
[    0.203966] RPC: Registered tcp transport module.
[    0.204045] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.602355] workingset: timestamp_bits=62 max_order=18 bucket_order=0
[    0.621598] NFS: Registering the id_resolver key type
[    0.622489] Key type id_resolver registered
[    0.622766] Key type id_legacy registered
[    0.622960] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    0.771145] NET: Registered protocol family 38
[    0.771607] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 254)
[    0.771785] io scheduler mq-deadline registered
[    0.771933] io scheduler kyber registered
[    0.939617] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[    0.948760] 10000000.uart: ttyS0@MMIO 0x10000000 (irq = 10, base_baud = 230400) is a 16550A
[    0.983856] printk: console [ttyS0] enabled
[    0.986423] [drm] radeon kernel modesetting enabled.
[    1.004257] loop: module loaded
[    1.006835] libphy: Fixed MDIO Bus: probed
[    1.008199] e1000e: Intel(R) PRO/1000 Network Driver - 3.2.6-k
[    1.008703] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
[    1.009796] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    1.010625] ehci-pci: EHCI PCI platform driver
[    1.011225] ehci-platform: EHCI generic platform driver
[    1.011885] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    1.012375] ohci-pci: OHCI PCI platform driver
[    1.012949] ohci-platform: OHCI generic platform driver
[    1.014339] usbcore: registered new interface driver uas
[    1.014983] usbcore: registered new interface driver usb-storage
[    1.016531] mousedev: PS/2 mouse device common for all mice
[    1.018467] usbcore: registered new interface driver usbhid
[    1.018910] usbhid: USB HID core driver
[    1.023007] NET: Registered protocol family 10
[    1.031619] Segment Routing with IPv6
[    1.032574] sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
[    1.036357] NET: Registered protocol family 17
[    1.038036] Key type dns_resolver registered
[    1.106155] Freeing unused kernel memory: 3896K
[    1.106603] This architecture does not have kernel memory protection.
[    1.107444] Run /init as init process
mount: mounting debugfs on /sys/kernel/debug failed: No such file or directory
Starting syslogd: OK
Starting klogd: OK
Starting mdev... OK
Initializing random number generator... [    5.192033] random: dd: uninitialized urandom read (512 bytes read)
done.
Starting network: OK

Welcome to Buildroot
buildroot login: root
# free
              total        used        free      shared  buff/cache   available
Mem:         956380       15872      929624          32       10884      927464
Swap:             0           0           0
-------------- next part --------------
LD_LIBRARY_PATH=../host/lib ../host/bin/qemu-system-riscv64 -M virt -m 1024 -kernel fw_jump.elf -device loader,file=Image,addr=0x80200000 -append "rootwait root=/dev/ram0" -nographic 

OpenSBI v0.3 (Oct  9 2019 15:09:29)
   ____                    _____ ____ _____
  / __ \                  / ____|  _ \_   _|
 | |  | |_ __   ___ _ __ | (___ | |_) || |
 | |  | | '_ \ / _ \ '_ \ \___ \|  _ < | |
 | |__| | |_) |  __/ | | |____) | |_) || |_
  \____/| .__/ \___|_| |_|_____/|____/_____|
        | |
        |_|

Platform Name          : QEMU Virt Machine
Platform HART Features : RV64ACDFIMSU
Platform Max HARTs     : 8
Current Hart           : 0
Firmware Base          : 0x80000000
Firmware Size          : 96 KB
Runtime SBI Version    : 0.1

PMP0: 0x0000000080000000-0x000000008001ffff (A)
PMP1: 0x0000000000000000-0xffffffffffffffff (A,R,W,X)
QEMU 3.1.0 monitor - type 'help' for more information
(qemu) q


ls -lt
total 612364
-rw-r--r-- 1 root root  71070520 10? 10 09:25 rootfs.tar.gz
-rw-r--r-- 1 root root 205998080 10? 10 09:25 rootfs.tar
-rw-r--r-- 1 root root  80056892 10? 10 09:24 Image
-rw-r--r-- 1 root root  71387525 10? 10 09:23 rootfs.cpio.gz
-rw-r--r-- 1 root root 197128192 10? 10 09:23 rootfs.cpio
-rw-r--r-- 1 root root    203592 10?  9 15:09 fw_jump.elf
-rw-r--r-- 1 root root     28904 10?  9 15:09 fw_jump.bin
-rw-r--r-- 1 root root      3688 10?  9 15:09 readme.txt
drwxr-xr-x 2 root root      4096 10?  9 15:09 hw

  reply	other threads:[~2019-10-16 10:48 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <2019100915262320629523@c-sky.com>
2019-10-15  0:53 ` [Buildroot] qemu_riscv64_virt can't boot up with large cpio initial RAM filesystem Alistair Francis
2019-10-16 10:48   ` Mao Han [this message]
2019-10-17 17:30     ` Alistair Francis
2019-10-09  7:46 han_mao at c-sky.com
2019-10-09 22:59 ` Arnout Vandecappelle
2019-10-10  1:41   ` Mao Han

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20191016104813.GA10000@vmh-VirtualBox \
    --to=han_mao@c-sky.com \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.