ARM Technical Support Knowledge Articles

Why is my cramfs root filesystem mount (/dev/mtdblock0) failing on the Versatile Express platform when running v2.6.35 and later Linux kernels?

Applies to: V2M-P1, V2P-CA9

Answer

Several ways exist to mount a root filesystem on an ARM platform running Linux. This article only applies to the case where the filesystem image is in flash and is accessed using the Linux MTD driver with 'mtdblock' as the FTL (flash translation layer).

MTD flash partitions are typically specified as part of the kernel boot arguments in the bootloader. Below is an example of how this is done when using U-Boot:

bootargs= root=/dev/mtdblock0 mtdparts=armflash.0:60000k@0x50000(cramfs) ...

The root filesystem is mounted to block device '/dev/mtdblock0'. The block device contains one or more partitions as specified with the 'mtdparts' option. Note that each partition specifies a flash device ('armflash.0'), a partition size (60000k), the relative address from the flash device base address (0x50000) and an arbitrary name ('cramfs').

The name of the flash device in the Linux kernel source for the Versatile Express has changed from 'armflash.0' to only 'armflash'. The U-Boot kernel boot arguments must be changed to reflect the new name as shown below:

bootargs= root=/dev/mtdblock0 mtdparts=armflash:60000k@0x50000(cramfs) ...

This change affects Linux kernel versions based on v2.6.35 and later with the ARM patch applied (2.6.35-arm1). The change only affects the Versatile Express platform. All previous ARM developments boards running this version of the kernel are unaffected.

Please visit the ARM Linux webpage for the latest release of prebuilt kernel and filesystem images, as well as the ARM Linux kernel patch.

Article last edited on: 2011-02-21 10:44:02

Rate this article

[Bad]
|
|
[Good]
Disagree? Move your mouse over the bar and click

Did you find this article helpful? Yes No

How can we improve this article?

Link to this article
Copyright © 2011 ARM Limited. All rights reserved. External (Open), Non-Confidential