2008-02-11 00:45:31     VFS: Cannot open root device "mtdblock0" or unknown-block(0,0)

Document created by Aaronwu Employee on Aug 5, 2013
Version 1Show Document
  • View in full screen mode

2008-02-11 00:45:31     VFS: Cannot open root device "mtdblock0" or unknown-block(0,0)

Ming Leung (CANADA)

Message: 50896    I got the following error during boot up after the successful uclinux image download via tftp:


## Booting image at 01000000 ...                                              

   Image Name:   Linux-                             

   Created:      2008-02-11   5:26:30 UTC                                     

   Image Type:   Blackfin Linux Kernel Image (gzip compressed)                

   Data Size:    4606315 Bytes =  4.4 MB                                      

   Load Address: 00001000                                                     

   Entry Point:  0017c000                                                     

   Verifying Checksum ... OK                                                  

   Uncompressing Kernel Image ... OK                                          

Starting Kernel at 0x17c000                                                   

Linux version (mingdee@DV6000) (gcc version 4.1

.2 (ADI svn)) #489 PREEMPT Mon Feb 11 00:26:27 EST 2008                       

Hardware Trace Active and Enabled                                             

Warning: limiting memory to 31MB due to hardware anomaly 05000263             

Blackfin support (C) 2004-2007 Analog Devices, Inc.                           

Compiled for ADSP-BF531 Rev 0.4                                               

Blackfin Linux support by http://blackfin.uclinux.org/                        

Processor Speed: 324 MHz core clock and 81 MHz System Clock                   

Board Memory: 32MB                                                            

Kernel Managed Memory: 32MB                                                   

Memory map:                                                                   

  text      = 0x00001000-0x00116ee0                                           

  rodata    = 0x00117000-0x00167228                                           

  data      = 0x00168000-0x0017c000                                           

    stack   = 0x00168000-0x0016a000                                           

  init      = 0x0017c000-0x00901000                                           

  bss       = 0x00901000-0x00912810                                           

  available = 0x00912810-0x01eff000                                           

  DMA Zone  = 0x01f00000-0x02000000                                           

Instruction Cache Enabled                                                     

Data Cache Enabled (write-through)                                            

Built 1 zonelists.  Total pages: 7874                                         

Kernel command line: root=/dev/mtdblock0 rw console=ttyBF0,115200n8 ip=192.168.5

.253: kgdboe=@


Configuring Blackfin Priority Driven Interrupts                               

PID hash table entries: 128 (order: 7, 512 bytes)                             

Console: colour dummy device 80x25                                            

Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)                 

Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)                   

Physical pages: 1eff                                                          

Memory available: 22148k/31328k RAM, (7700k init code, 1111k kernel code, 70k da

ta, 1024k dma)                                                                

Blackfin Scratchpad data SRAM: 4 KB                                           

Blackfin Data A SRAM: 16 KB (16 KB free)                                      

Blackfin Data B SRAM: 16 KB (16 KB free)                                      

Blackfin Instruction SRAM: 64 KB (56 KB free)                                 

Mount-cache hash table entries: 512                                           

NET: Registered protocol family 16                                            

Blackfin GPIO Controller                                                      

Blackfin DMA Controller                                                       

hhbf_init: registering device resources                                       

NET: Registered protocol family 2                                             

IP route cache hash table entries: 1024 (order: 0, 4096 bytes)                

TCP established hash table entries: 1024 (order: 1, 8192 bytes)               

TCP bind hash table entries: 1024 (order: 0, 4096 bytes)                      

TCP: Hash tables configured (established 1024 bind 1024)                      

TCP reno registered                                                           

io scheduler noop registered                                                  

io scheduler anticipatory registered (default)                                

io scheduler cfq registered                                                   

BF53X-T350MCQH-01: 320x240 16-bit RGB FrameBuffer initializing...             

dma_alloc_init: dma_page @ 0x01b09000 - 256 pages at 0x01f00000               

Serial: Blackfin serial driver                                                

bfin-uart.1: ttyBF0 at MMIO 0xffc00400 (irq = 21) is a BFIN-UART              

RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize         

dm9000 Ethernet Driver                                                        

eth0: dm9000 at 20300000,20300004 IRQ 33 MAC: 02:19:80:01:04:20               

bfin-spi bfin-spi.0: Blackfin BF5xx on-chip SPI Contoller Driver, Version 1.0, r

egs_base@ffc00500, dma channel@5                                              

rtc-bfin rtc-bfin: rtc core: registered rtc-bfin as rtc0                      

TCP cubic registered                                                          

NET: Registered protocol family 1                                             

NET: Registered protocol family 17                                            

rtc-bfin rtc-bfin: setting the system clock to 1970-06-03 16:24:32 (13278272) 

eth0: link down                                                               

IP-Config: Complete:                                                          

      device=eth0, addr=, mask=, gw=,    

     host=HHBF, domain=, nis-domain=(none),                                   

     bootserver=, rootserver=, rootpath=            

VFS: Cannot open root device "mtdblock0" or unknown-block(0,0)                

Please append a correct "root=" boot option; here are the available partitions:

Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

eth0: link up, 100Mbps, full-duplex, lpa 0xCDE1                               


I am using SVN trunk (4099) and the uImage.initramfs image. I am wondering the root=/dev/mtdblock0 in the kernel command line has anything to do with it.






2008-02-11 01:03:15     Re: VFS: Cannot open root device "mtdblock0" or unknown-block(0,0)

Mike Frysinger (UNITED STATES)

Message: 50897    you didnt enable any MTD device drivers, so mtdblock0 obviously wont exist


did you also disable CONFIG_BLK_DEV_INITRD in the kernel ?




2008-02-11 02:02:28     Re: VFS: Cannot open root device "mtdblock0" or unknown-block(0,0)

Ming Leung (CANADA)

Message: 50900    CONFIG_BLK_DEV_INITRD is not disabled in my build and I have not done any extra steps to enable any MTD device driver.


My system has only a root file system in ram and I don't need any other file storage. So there are two questions:


1/ What configurations I need to set and unset in order to enable the root file system in initramfs, which is the default in this distribution?


2/ Same question of 1, but the root file system is now a romfs/ramfs?? in ext2, like what we normally get in the 2007R3 distribution as default.


Also, I tried to unset CONFIG_BLK_DEV_INITRD and recompile. This time I do not have the compressed image (uImage) build. See the log below:


if [ -r System.map -a -x true ]; then true -ae -F System.map -b /home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/romfs -r; fi

make[1]: Leaving directory `/home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/linux-2.6.x'

Guessed module directory as /home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/romfs/lib/modules//

make ARCH=blackfin   -C vendors romfs.post

make[1]: Entering directory `/home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/vendors'

make -C /home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/vendors/TeamConcept/HHBF-531/. dir_v=/home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/vendors/TeamConcept/HHBF-531/. -f /home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/vendors/vendors-common.mak romfs.post

make[2]: Entering directory `/home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/vendors/TeamConcept/HHBF-531'

set -e; \

        t=`bfin-linux-uclibc-gcc -mcpu=bf531-0.4 -print-file-name=libc.a`; \

        t=`dirname $t`/../..; \

        for i in $t/lib/*so*; do \

                bn=`basename $i`; \

                if [ -f $i ] ; then \

                        romfs-inst.sh -p 755 $i /lib/$bn; \

                fi; \

        done; \

        for i in $t/lib/*so*; do \

                if [ -h $i -a -e $i ] ; then \

                        j=`readlink $i`; \

                        romfs-inst.sh -s \

                                `basename $j` \

                                /lib/`basename $i`; \

                fi; \

        done; \

        if type bfin-linux-uclibc-ldconfig >/dev/null 2>&1; then \

                bfin-linux-uclibc-ldconfig -r /home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/romfs; \


make[2]: Leaving directory `/home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/vendors/TeamConcept/HHBF-531'

make[1]: Leaving directory `/home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/vendors'

find /home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/romfs/. -name CVS | xargs -r rm -rf

[ -d /home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/images ] || mkdir /home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/images

make ARCH=blackfin   -C vendors image

make[1]: Entering directory `/home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/vendors'

make -C /home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/vendors/TeamConcept/HHBF-531/. dir_v=/home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/vendors/TeamConcept/HHBF-531/. -f /home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/vendors/vendors-common.mak image

make[2]: Entering directory `/home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/vendors/TeamConcept/HHBF-531'

mkdir -p /home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/images

rm -rf /home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/images/*

rm -rf /home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/romfs/dev;

cp /home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/linux-2.6.x/linux /home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/images/vmlinux

bfin-linux-uclibc-strip -g /home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/images/vmlinux

set -e ; \

        if [ -x /home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/user/mtd-utils/build/mkfs.jffs2 ] && [ -n "" -o -n "m" ]; then \

                /home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/user/mtd-utils/build/mkfs.jffs2 -d /home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/romfs -D device_table.txt -o /home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/images/rootfs.jffs2; \


set -e ; \

        if [ -x "/home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/user/blkfin-apps/yaffs-utils/utils/mkyaffsimage" -a -n "y" ]; then \

                /home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/user/blkfin-apps/yaffs-utils/utils/mkyaffsimage /home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/romfs /home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/images/rootfs.yaffs > /dev/null ; \

        fi ; \

        if [ -x "/home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/user/blkfin-apps/yaffs-utils/utils/mkyaffs2image" -a -n "y" ]; then \

                /home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/user/blkfin-apps/yaffs-utils/utils/mkyaffs2image /home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/romfs /home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/images/rootfs.yaffs2 > /dev/null ; \


bfin-linux-uclibc-genext2fs -m 0 -i 1024 -b 14336 -d /home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/romfs -D device_table.txt /home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/images/rootfs.ext2

bfin-linux-uclibc-objcopy --add-section .romfs=/home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/images/rootfs.ext2 \

                --adjust-section-vma .romfs=$(echo $(($(bfin-linux-uclibc-objdump -h /home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/images/vmlinux | awk '/.bss/ {print "0x"$4}') + $(bfin-linux-uclibc-objdump -h /home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/images/vmlinux | awk '/.bss/ {print "0x"$3}')))) --no-adjust-warnings \

                --set-section-flags .romfs=alloc,load,data /home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/images/vmlinux /home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/images/linux.ext2

BFD: /home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/images/linux.ext2: warning: allocated section `.romfs' not in segment

set -e ; \

        if which genromfs >/dev/null 2>&1; then \

                /home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/tools/mkdevdir.sh /home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/romfs device_table.txt; \

                genromfs -f /home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/images/rootfs.romfs -d /home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/romfs; \

                bfin-linux-uclibc-objcopy --add-section .romfs=/home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/images/rootfs.romfs \

                        --adjust-section-vma .romfs=$(echo $(($(bfin-linux-uclibc-objdump -h /home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/images/vmlinux | awk '/.bss/ {print "0x"$4}') + $(bfin-linux-uclibc-objdump -h /home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/images/vmlinux | awk '/.bss/ {print "0x"$3}')))) --no-adjust-warnings \

                        --set-section-flags .romfs=alloc,load,data /home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/images/vmlinux /home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/images/linux.romfs ; \

                rm -rf /home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/romfs/dev/*; \


cp /home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/linux-2.6.x/arch/blackfin/boot/vmImage /home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/images/vmImage

make[2]: Leaving directory `/home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/vendors/TeamConcept/HHBF-531'

make[1]: Leaving directory `/home/mingdee/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn/vendors'

mingdee@DV6000:~/Development/bfin/svn-3/toolchain/uclinux-dist-trunk-svn$ ls images/

linux.ext2  rootfs.ext2  vmImage  vmlinux






2008-02-11 14:51:27     Re: VFS: Cannot open root device "mtdblock0" or unknown-block(0,0)

Mike Frysinger (UNITED STATES)

Message: 50909    whoever gave you "TeamConcept/HHBF-531" needs to update their Makefile.  contact that group.




2008-02-11 17:24:54     Re: VFS: Cannot open root device "mtdblock0" or unknown-block(0,0)


Message: 50911    Ming:


As Mike pointed out - we can't support software that isn't downloaded from this web site. I found, and assume this is your hardware?




If HHCN is distributing their own version of the uClinux dist - then they need to maintain it. For support try:



If you are trying to update their version to the new version - the easiest thing to have someone from HHCN to submit a patch to our patch tracker, and we will just fix it, and commit it to our svn.