m25p80, wait_till_ready removed
Baptiste Clenet
bapclenet at gmail.com
Wed Jun 24 05:53:17 PDT 2015
2015-06-23 22:53 GMT+02:00 Baptiste Clenet <bapclenet at gmail.com>:
> Hi,
>
> I'm working on the board Ralink MT7628 which uses the driver m25p80 to
> write the flash memory. I'm upgrading the kernel from 3.18 to 4.0.4
> and I've got some problems concerning the flash.
> jffs2 complains about wrong CRC:
>
> [ 18.900000] jffs2: jffs2_scan_inode_node(): CRC failed on node at
> 0x0047000c: Read 0x4552e06b, calculated 0x4900568b
> [ 18.930000] jffs2: jffs2_scan_dirent_node(): Node CRC failed on
> node at 0x00470050: Read 0xffffffff, calculated 0x602684d4
>
> ... many times
>
> Currently, my changes in /etc/config/network are not saved after
> reboot. I presume it is related to my errors. /etc/config/network is
> writeable since it is inside /overlay/upper (any edits inside it are
> not saved after reboot).
>
> I've attached a patch which failed when I upgrade to kernel 4.0.4.
> Obviously, nor->wait_till_ready(nor); couldn't work since it has been
> removed. I'm wondering how to replace it and if it could be related to
> my problem? (Only removing it brought me to my errors)
>
>
>
> Here are some details about the structure of my board:
> [ 0.480000] Creating 4 MTD partitions on "spi32766.0":
> [ 0.490000] 0x000000000000-0x000000030000 : "u-boot"
> [ 0.500000] 0x000000030000-0x000000040000 : "u-boot-env"
> [ 0.510000] 0x000000040000-0x000000050000 : "factory"
> [ 0.520000] 0x000000050000-0x000000800000 : "firmware"
>
> [ 0.550000] 2 uimage-fw partitions found on MTD device firmware
> [ 0.570000] 0x000000050000-0x00000016b46d : "kernel"
> [ 0.580000] 0x00000016b46d-0x000000800000 : "rootfs"
>
> [ 0.590000] mtd: device 5 (rootfs) set to be root filesystem
> [ 0.600000] 1 squashfs-split partitions found on MTD device rootfs
> [ 0.610000] 0x000000380000-0x000000800000 : "rootfs_data"
>
>
> root at OpenWrt:/overlay/upper/etc# cat /proc/mtd
> dev: size erasesize name
> mtd0: 00030000 00010000 "u-boot"
> mtd1: 00010000 00010000 "u-boot-env"
> mtd2: 00010000 00010000 "factory"
> mtd3: 007b0000 00010000 "firmware"
> mtd4: 0011b46d 00010000 "kernel"
> mtd5: 00694b93 00010000 "rootfs"
> mtd6: 00480000 00010000 "rootfs_data"
>
> root at OpenWrt:/overlay/upper/etc# cat /proc/partitions
> major minor #blocks name
>
> 31 0 192 mtdblock0
> 31 1 64 mtdblock1
> 31 2 64 mtdblock2
> 31 3 7872 mtdblock3
> 31 4 1133 mtdblock4
> 31 5 6738 mtdblock5
> 31 6 4608 mtdblock6
>
> root at OpenWrt:/overlay/upper/etc# cat /proc/mounts
> /dev/root /rom squashfs ro,relatime 0 0
> proc /proc proc rw,noatime 0 0
> sysfs /sys sysfs rw,noatime 0 0
> tmpfs /tmp tmpfs rw,nosuid,nodev,noatime 0 0
> /dev/mtdblock6 /overlay jffs2 rw,noatime 0 0
> overlayfs:/overlay / overlay
> rw,noatime,lowerdir=/,upperdir=/overlay/upper,workdir=/overlay/work 0
> 0
> tmpfs /dev tmpfs rw,relatime,size=512k,mode=755 0 0
> devpts /dev/pts devpts rw,relatime,mode=600 0 0
> debugfs /sys/kernel/debug debugfs rw,noatime 0 0
>
>
> I would be grateful if you could help me a bit on that.
>
> Cheers,
>
> Baptiste
I don't know if the problem comes from wait_till_ready missing but at
least this function sent a bunch of command before each reading of the
memory. This is the only diff I can observe while accessing the memory
between kernel 3.18 and 4.0.
--
Baptiste
More information about the linux-mtd
mailing list