Starting and running system completely in RAM (from UBOOT)

  • To run a system without any ROM completely in RAM, on a efusa9x module, I tried the following steps, but failed to load the ROOTFS in the RAM from the LINUX kernel.


    Following the steps here to configured a minimal system and started it from RAM:

    https://imxdev.gitlab.io/tutor…o_boot_imx_using_ramdisk/


    The used buildroot configuration for the filesystem is the following:


    And starting the system with the following UBOOT commands leads to the error under [1]:




    [1]:



    P.s.:

    Additional I tried to define the ROOTFS by its address and size like mentioned here:

    https://lists.denx.de/pipermail/u-boot/2009-June/054782.html


    Code
    1. tftpboot . ${bootfile}
    2. tftpboot ${fdtaddr} ${bootfdt}
    3. tftpboot 83000000 rootfs.ext2.gz.uboot
    4. #setenv initrd_size ${filesize}
    5. #setenv bootargs 'console=ttymxc0,115200 login_tty=ttymxc0,115200 root=/dev/ram rw'
    6. setenv bootargs "console=ttymxc0,115200 login_tty=ttymxc0,115200 root=/dev/ram0 rd_start=83000000 rd_size=${filesize} rootfstype=ext2 rw"
    7. bootz 81000000 83000000 82000000

    But this results in the same error as in [1].



    How can I successfully let the kernel find the root filesystem?

  • Have you enabled the entry "General setup" -> "Initial RAM filesystem and RAM disk (initramfs/initrd) support" in the Linux kernel? For example by calling make linux-menuconfig in Buildroot. It looks like it is not enabled in our default fsimx6sx_defconfig.


    Your F&S Support Team

    F&S Elektronik Systeme GmbH
    As this is an international forum, please try to post in English.
    Da dies ein internationales Forum ist, bitten wir darum, Beiträge möglichst in Englisch zu verfassen.

  • To simplify the procedure above, I recommend to prepare a cpio image:


    Then you can (for example on a efusA9X module) run the following commands in the uboot shell:

    Code
    1. tftpboot . zImage
    2. tftpboot ${fdtaddr} efusa9x.dtb
    3. tftpboot 83000000 rootfs.cpio.uboot
    4. setenv bootargs "console=ttymxc0,115200 login_tty=ttymxc0,115200 root=/dev/ram0 ramdisk_size=0x${filesize} rootfstype=cpio rw"
    5. bootz 81000000 83000000 82000000