Hello,I'd like to place a root filesystem partition into the board NOR memory.And I have write the u-boot and linux kernel successfully into the nor flash.The system can be started normally and also can mount the NFS system successfully。 BUT when I login the system and enter the cat /proc/mtd, HyperTerminal displays only “dev: size erasesize name". I can not see the Partition information like
"mtd0: 00c00000 00020000 "ROOTFS"
mtd1: 00200000 00020000 "BOOTLOADER"
mtd2: 00200000 00020000 "KERNEL"
mtd3: 03200000 00020000 "NAND ROOTFS partition"
mtd4: 04b00000 00020000 "NAND DATAFS partition"".
My steps as fllowing:
First of all I think this is a kernel configuration issue. My Kernel configuration information about the MTD as fllows:
│<*> Memory Technology Device (MTD) support
│[*] MTD partitioning support
│<*> Direct char device access to MTD devices
<*> Caching block device access to MTD devices
RAM/ROM/Flash chip drivers --->
│<*> Detect flash chips by Common Flash Interface (CFI) probe
│ │<*> Support for Intel/Sharp flash chips
│ │<*> Support for AMD/Fujitsu flash chips
I have made the "ATA/ATAPI/MFM/RLL support" disable.
my nor flash partition information is :
#if defined(CONFIG_MTD) || defined(CONFIG_MTD_MODULE)
// NOR Flash base address set to CS0 by default
#define NOR_FLASH_PHYS 0x02000000
static struct mtd_partition davinci_evm_partitions[] = {
{
.name = "bootloader",
.offset = 0,
.size = SZ_128K,
.mask_flags = MTD_WRITEABLE, // force read-only
},
{
.name = "params",
.offset = MTDPART_OFS_APPEND,
.size = SZ_128K,
.mask_flags = MTD_WRITEABLE,
},
{
.name = "kernel",
.offset = MTDPART_OFS_APPEND,
.size = 0x00300000,
.mask_flags = 0
},
{
.name = "filesystem",
.offset = MTDPART_OFS_APPEND,
.size = MTDPART_SIZ_FULL,
.mask_flags = 0
}
};
static struct physmap_flash_data davinci_evm_flash_data = {
.width = 2,
.parts = davinci_evm_partitions,
.nr_parts = ARRAY_SIZE(davinci_evm_partitions),
};
static struct resource davinci_evm_flash_resource = {
.start = NOR_FLASH_PHYS,
.end = NOR_FLASH_PHYS + SZ_32M - 1,
.flags = IORESOURCE_MEM,
};
static struct platform_device davinci_evm_flash_device = {
.name = "physmap-flash",
.id = 0,
.dev = {
.platform_data = &davinci_evm_flash_data,
},
.num_resources = 1,
.resource = &davinci_evm_flash_resource,
};
#endif
and the information is in the board_evm.c.
After this I use the commond "make ARCH=arm CROSS_COMPILE=arm_v5t_le- uImage ".And produceed the the Kernel successfully. I use the JATA write the u-boot and the uImage into the nor flash.
Finally I star the system. Login it .Enter the "cat /proc/mtd",and the HyperTerminal displays only “dev: size erasesize name".
I want to know if I have missed some steps.I am very confused now.please help me .Thank you very much.