fail to boot with MTD root fs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

I'm using Pb1500 evaluation board and met somewhat serious problem.
The problem is that failing to mount FlashROM filesystem as root fs
and go into infinite loop without any message.  Does anyone have a
good (or better) solution?

I'm using SGI kernel source tree, linux-2.4.18 of linux_2_4 branch.

When booting with nfs root, and using MTD FlashROM fs, it works well.

I traced code from init/main.c with printk.  It reached at schedule()
and go into infinite loop.  I also used kernel gdb, but fail to trace.
It may be sensible with timing or interrupt.  So printk trace may be
fake result, too.

Some month ago, I ported 2.4.16 kernel to L-Card+, a small VR4181
board.  At this time, it can boot with FlashROM root fs.  It works
well.

I compared 2.4.16 and 2.4.18 code.  And I found a difference at
mount_root().

at 2.4.18:

        for (p = fs_names; *p; p += strlen(p)+1) {
                struct file_system_type * fs_type = get_fs_type(p);
                if (!fs_type)
                        continue;
                atomic_inc(&bdev->bd_count);
                retval = blkdev_get(bdev, mode, 0, BDEV_FS); ///// <-
				/// go into infinite loop at this line
                if (retval)
                        goto Eio;
                sb = read_super(ROOT_DEV, bdev, fs_type,
                                root_mountflags, root_mount_data);
                put_filesystem(fs_type);
                if (sb) {
                        blkdev_put(bdev, BDEV_FS);
                        goto mount_it;
                }
        }
        panic("VFS: Unable to mount root fs on %s", kdevname(ROOT_DEV));


at 2.4.16:

        for (p = fs_names; *p; p += strlen(p)+1) {
                struct file_system_type * fs_type = get_fs_type(p);
                if (!fs_type)
                        continue;
                sb = read_super(ROOT_DEV, bdev, fs_type,
                                root_mountflags, root_mount_data);
                if (sb) 
                        goto mount_it;
                put_filesystem(fs_type);
        }
        panic("VFS: Unable to mount root fs on %s", kdevname(ROOT_DEV));


Reverting this part as 2.4.16, then it can boot.  But I'm afraid that
this reverting causes another problem...

Thanks.
_._. __._  _ . ... _  .___ ._. _____ _... ._ _._ _.._. .____  _ . ... _

                                                          Kunihiko IMAI

[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux