Nios® V/II Embedded Design Suite (EDS)
Support for Embedded Development Tools, Processors (SoCs and Nios® V/II processor), Embedded Development Suites (EDSs), Boot and Configuration, Operating Systems, C and C++

MTD + CFI

Altera_Forum
Honored Contributor II
1,410 Views

I can successfuly mount the root (ROMfs) using the pre-built Nios RAM/ROMfs mapping. Without moving the ROMfs (currently at 0x200000 relative, as usual), I was hoping to switch to a custom CFI mapper so that I could add a JFFS2 partition after the ROMfs parition. The chip itself is correctly probed at physical 0x1000000. The partition table I'm shooting for looks like: 

 

0x000000-0x1FFFFF - Kernel 

0x200000-0x5F8000 - ROMfs 

0x780000-0x800000 - JFFS2 (future) 

0x800000-END - TBD 

 

 

This layout works fine with the standard ROMfs, which simply maps 0x1200000-15f8000 as the entire MTD (i.e., not paritioning). I changed the boot to mount mtd1 instead of mtd0, and I also used MKDEV to set (I think) mtd1 as the rootdev. 

 

When I use my custom (modified physmap.c) mapper, I get the following: 

smc_probe: 50000 Khz Nios 

ISI flash device: 1000000 at 1000000 

phys_mapped_flash: Found 1 x16 devices at 0x0 in 16-bit bank 

Amd/Fujitsu Extended Query Table at 0x0040 

Using buffer write method 

phys_mapped_flash: CFI does not contain boot bank location. Assuming top. 

number of CFI chips: 1 

cfi_cmdset_0002: Disabling erase-suspend-program due to code brokenness. 

Using ISI specific partition definition 

Creating 4 MTD partitions on "phys_mapped_flash": 

0x00000000-0x00200000 : "kernel" 

mtd: Giving out device 0 to kernel 

0x00200000-0x005f8000 : "ROMfs" 

mtd: Giving out device 1 to ROMfs 

0x00780000-0x00800000 : "Flash FS" 

mtd: Giving out device 2 to Flash FS 

0x00800000-0x01000000 : "FPGA Cores" 

mtd: Giving out device 3 to FPGA Cores 

isimap[mtd]: set ROMfs to be root filesystem 

NET: Registered protocol family 2 

IP: routing cache hash table of 512 buckets, 4Kbytes 

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) 

NET: Registered protocol family 1 

NET: Registered protocol family 17 

mtdblock_open 

ok 

mtdblock_release 

ok 

mtdblock_open 

ok 

mtdblock_release 

ok 

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

 

 

Does the bankwidth affect addressing? The RAM/ROMfs mapper uses a 4-octet bankwidth in conjction with the ram_map. Since I'm tyring to use the cfi type, I specified a 2-octet bankwidth. Does that imply a change in the partition table?
0 Kudos
1 Reply
Altera_Forum
Honored Contributor II
461 Views

[Self - reply] 

I had somehow disable ROMfs file system support. It's possible that I confused it with the MTD->Mapping Driver->Nios RAM/ROMfs Suport setting.
0 Kudos
Reply