From mboxrd@z Thu Jan 1 00:00:00 1970 From: Bill Date: Wed, 12 Sep 2012 18:26:30 -0500 Subject: [U-Boot] using initrd with U-boot on the imx28evk In-Reply-To: <201209130029.27412.marex@denx.de> References: <504FADC1.1080507@techsi.com> <201209130029.27412.marex@denx.de> Message-ID: <50511A26.1010707@techsi.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de I'm using U-boot version: U-Boot 2012.07 Through googling, I've come across several variations of using a ramdisk. So I selected some things that looked good. So basically, I am building a rootfs as a ramdisk by: dd if=/dev/zero of=./myinitrd.img bs=1M count=35 mke2fs -m 1 ./myinitrd.img mkdir ./myinitrd mount -t ext2 ./myinitrd.img ./myinitrd -o loop cp -r rootfs/* ./myinitrd/. umount ./myinitrd/ gzip ./myinitrd.img rm -rf myinitrd Then I use the u-boot tool to prepare it for use with u-boot by: u-boot-imx/tools/mkimage -n 'MyRamDisk' -A arm -O linux -T ramdisk -C none -d ./myinitrd.img.gz rootfs-initrd I place both both my uImage and rootfs-initrd on a USB stick and insert it into the imx28evk and enter u-boot command line. I then do: usb start fatload usb 0 0x42000000 uimage fatload usb 0 0x43000000 rootfs-initrd setenv bootargs console=ttyAM0,115200n8 debug root=/dev/ram rw ip=dhcp fec_mac= bootm 0x42000000 0x43000000 u-boot then starts booting with: ## Booting kernel from Legacy Image at 42000000 ... Image Name: Linux-2.6.35.3-571-gcca29a0-g45b Created: 2012-09-08 22:31:46 UTC Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 2582304 Bytes = 2.5 MiB Load Address: 40008000 Entry Point: 40008000 Verifying Checksum ... OK ## Loading init Ramdisk from Legacy Image at 43000000 ... Image Name: MyRamDisk Created: 2012-09-12 20:51:35 UTC Image Type: ARM Linux RAMDisk Image (uncompressed) Data Size: 37774 Bytes = 36.9 KiB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK Loading Kernel Image ... OK OK Starting kernel ... Uncompressing Linux... done, booting the kernel. Linux version 2.6.35.3-571-gcca29a0-g45b53d0-dirty (blsousan at ubuntu) (gcc version 4.4.4 (4.4.4_09.06.2010) ) #13 PREEMPT Sat Sep 8 14:06:34 PDT 2012 CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00053177 CPU: VIVT data cache, VIVT instruction cache Machine: Freescale MX28EVK board .... .... .... The kernel starts to boot, I get all the kernel output, and at the end it does not find the rootfs. I get: ... ... ... List of all partitions: b300 3872256 mmcblk0 driver: mmcblk b301 1024 mmcblk0p1 0800 503808 sda driver: sd 0801 503792 sda1 No filesystem could mount root, tried: ext3 ext2 vfat msdos iso9660 Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(1,0) Backtrace: I not sure how the kernel knows where the ramdisk lives in memory ( 0x43000000) where the the uboot put it ? Thanks, Bill On 9/12/2012 5:29 PM, Marek Vasut wrote: > Dear Bill, > >> Has anyone used U-boot on the imx28evk with initrd to setup a small >> rootfs in RAM? I need the ability to do have a small temp rootfs to >> assist in mounting a full rootfs from a USB for field upgrade purposes. > Yes, it's a linux thingie though. What's the problem? What version of uboot do > you use? > >> Thanks, >> Bill > Best regards, > Marek Vasut -- William (Bill) L. Sousan, Ph.D. (w) 402.331.4977 ext. 4002 bsousan at techsi.com Technical Support Inc. 11253 John Galt Blvd Omaha, NE 68137 www.techsi.com 8(a) SDB Certified, ISO 9001:2008