JFFS2 and LPD7A404
Gianluca
gianlucarenzi at eptar.com
Wed Aug 10 14:30:20 EDT 2005
Hello Marc!
I was wondering if (and naturally how) to use an unused partition on the
internal flash of LogicPD LH7A404 board. As you surely know this board has a
couple of IntelStrataflash 28F640 (2 chips x 16bit each) for a total of
16MBytes arranged in a 32bit format.
Assuming I am using the standard physical mapped partition scheme (from
command line as:
mtdparts=phys_mapped_flash:512k at 0(boot)ro,1536k at 512k(kernel)ro,-(user)
and the kernel is looking at them as:
physmap flash device: 1000000 at 0
phys_mapped_flash: Found 1 x32 devices at 0x0 in 32-bit bank
Intel/Sharp Extended Query Table at 0x0031
Using buffer write method
cfi_cmdset_0001: Erase suspend on write enabled
3 cmdlinepart partitions found on MTD device phys_mapped_flash
Creating 3 MTD partitions on "phys_mapped_flash":
0x00000000-0x00080000 : "boot"
mtd: Giving out device 0 to boot
0x00080000-0x00200000 : "kernel"
mtd: Giving out device 1 to kernel
0x00200000-0x00800000 : "user"
mtd: Giving out device 2 to user
and looking at /proc I can see:
# cat /proc/mtd
dev: size erasesize name
mtd0: 00080000 00020000 "boot"
mtd1: 00180000 00020000 "kernel"
mtd2: 00600000 00020000 "user"
# cat /proc/partitions
major minor #blocks name
3 0 125440 hda
3 1 125333 hda1
31 0 512 mtdblock0
31 1 1536 mtdblock1
31 2 6144 mtdblock2
Why is it:
phys_mapped_flash: Found 1 x32 devices at 0x0 in 32-bit bank
Intel/Sharp Extended Query Table at 0x0031
and not:
phys_mapped_flash: Found 2 x16 devices at 0x0 in 32-bit bank
Intel/Sharp Extended Query Table at 0x0031
??? Any clue?
So, supposing everything is working fine, I just downloaded (compiled and
cross-compiled latest mtd tools) and created a filesystem for my "user"
partition. (BTW has you checked out that the size is only 6MiB?)
On HOST machine:
mkfs.jffs2 -e 262144 -r /myhome/personaldata -o mhpersonaldata.jffs2.img
(about 1MiB)
Then on target (ARM):
flash_eraseall -j /dev/mtd2
After a while (it takes about 10 seconds to finish at 100% (BTW I saw the
flash erasesize block is only 128KiB!!!)) I tried to write it into a fresh
erased flash:
cp mhpersonaldata.jffs2.img /dev/mtdblock2
Finally I tried to mount as local filesystem:
mount -t jffs2 /dev/mtdblock2 /mhpersonaldata-folder/
...and I received a lot of errors like below:
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x005a0024: 0xffff
instead
Further such events for this erase block will not be printed
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x005c0000: 0xffff
instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x005c0004: 0xffff
instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x005c0008: 0xffff
instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x005c000c: 0xffff
instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x005c0010: 0xffff
instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x005c0014: 0xffff
instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x005c0018: 0xffff
instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x005c001c: 0xffff
instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x005c0020: 0xffff
instead
jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x005c0024: 0xffff
instead
Further such events for this erase block will not be printed
jffs2_scan_eraseblock(): Node at 0x005e0000 {0x1985, 0x00b0, 0x00b0000c) has
invalid CRC 0x00b0b0b1 (calculated 0x9c857fd2)
What is happened? Do I need a patch for using flash in this architecture? Or
what am I wrong?
Best regards,
--
Gianluca Renzi
Eptar s.r.l.
Via Celletta 8/B
40026 Imola (BO) ITALY
Tel.: +39-0542-609060
Fax.: +39-0542-609054
More information about the linux-mtd
mailing list