Re: problems with mounting JFFS2 using CFI for AM29LV160MT on ppc8245 k2.4.x
From: Ben Warren <hidden>
Date: 2006-07-24 14:14:57
Arun, Looks like there are still some things broken in your MTD partition definition. I highly recommend that when debugging this, you boot from an NFS mount. That way you can modify files off-line (ie. from your development host). I'll point out a few things, but you're going to have to surf the source code a bit: On Mon, 2006-07-24 at 13:54 +0530, Arun Kumar wrote:
Hi Ben , Thanks for your reply .It was indeed very comrehensive .I am able to proceed further But still there is a bit problem . When I try to mknod physically viz mknod /dev/mtd0 ..... It says the node is readonly . Can you please point out the problem . I am attaching a dump of the console .
Again, put your root FS on an NFS mount and this won't be an issue. You can work out the ramdisk details later.
AMD_FLASH_INIT called *aks * physmap flash device: 800000 at ff800000 virtual address Number of erase regions : 4 Primary Vendor Command Set: 0002 (AMD/Fujitsu Standard) Primary Algorithm Table at 0040 Alternative Vendor Command Set: 0000 (None) No Alternate Algorithm Table Vcc Minimum: 2.7 V Vcc Maximum: 3.6 V No Vpp line Typical byte/word write timeout: 128 µs Maximum byte/word write timeout: 256 µs Full buffer write not supported Typical block erase timeout: 1024 ms Maximum block erase timeout: 16384 ms Chip erase not supported Device size: 0x200000 bytes (2 MiB) Flash Device Interface description: 0x0002 - supports x8 and x16 via BYTE# with asynchronous interface Max. bytes in buffer write: 0x1 Number of Erase Block Regions: 4 Erase Region #0: BlockSize 0x4000 bytes, 1 blocks Erase Region #1: BlockSize 0x2000 bytes, 2 blocks Erase Region #2: BlockSize 0x8000 bytes, 1 blocks Erase Region #3: BlockSize 0x10000 bytes, 31 blocks Amd/Fujitsu Extended Query Table v1.3 at 0x0040 number of CFI chips: 4 in amdstd_setup 0: offset=0x0,size=0x10000,blocks=1 1: offset=0x10000,size=0x8000,blocks=2 2: offset=0x20000,size=0x20000,blocks=1 3: offset=0x40000,size=0x40000,blocks=31 4: offset=0x800000,size=0x10000,blocks=1 5: offset=0x810000,size=0x8000,blocks=2 6: offset=0x820000,size=0x20000,blocks=1 7: offset=0x840000,size=0x40000,blocks=31 8: offset=0x1000000,size=0x10000,blocks=1 9: offset=0x1010000,size=0x8000,blocks=2 10: offset=0x1020000,size=0x20000,blocks=1 11: offset=0x1040000,size=0x40000,blocks=31 12: offset=0x1800000,size=0x10000,blocks=1 13: offset=0x1810000,size=0x8000,blocks=2 14: offset=0x1820000,size=0x20000,blocks=1 15: offset=0x1840000,size=0x40000,blocks=31 cfi_cmdset_0002: Disabling fast programming due to code brokenness. aks Enabling *
Are you sure you have the correct chip family chosen in your CONFIG? The block sizes found by CFI are different than those mentioned in amdstd_setup... CFI shows your devices being 2MB in size, while the other shows (1*10000 + 2*8000 + 1*20000 + 31*40000 = 0x800000) 8MB per chip. Something is amiss here. I don't have a clue about the fast programming. 'grep -R' is your friend.
in MTD Partitioning <5>No RedBoot partition table detected in phys_mapped_flash Using physmap partition definition Creating 3 MTD partitions on "phys_mapped_flash": 0x00000000-0x00040000 : "agere-ets0" mtd: Giving out device 0 to agere-ets0 0x00040000-0x00080000 : "agere-ets1" mtd: Giving out device 1 to agere-ets1 0x00080000-0x0007fffe : "agere-ets2" mtd: partition "agere-ets2" doesn't end on an erase block -- force read-only
There's definitely a problem here. First of all, 0x7fffe is < 0x80000. Note that the start and end addresses you specify for this must be on erase block boundaries. Clean up your partition table to reflect what you want. You didn't mention whether you're passing partition info by command line or in init code. Also, if you're not using Redboot, get rid of that CONFIG option. regards, Ben