Re: UBIFS problem on MPC8536DS
Hi, Scott Scott Wood wrote: On Fri, Oct 16, 2009 at 07:01:43AM +0200, Felix Radensky wrote: Thanks for confirmation. So the real problem is eLBC ? What happens if I access other devices on eLBC (e.g. FPGA) simultaneously with NAND or NOR ? AFAICT, the problem is NAND being accessed simultaneously with anything else on the eLBC (at least GPCM -- not sure about UPM). Instead of delaying the memory-like transaction until the NAND special operation has completed, it seems to just abort the NAND operation. eLBC can't really tell the difference whether you've got NOR or FPGA hooked up to a GPCM chip select, so the problem should still apply. Are you aware of Freescale plans to fix the problem in new silicon revisions ? Also, can you please tell what CPUs are affected by this, except 8536 and 8572. Thanks a lot. Felix. ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: UBIFS problem on MPC8536DS
Felix Radensky wrote: Are you aware of Freescale plans to fix the problem in new silicon revisions ? I don't know anything yet -- still trying to get in touch with the relevant hardware people. Also, can you please tell what CPUs are affected by this, except 8536 and 8572. I suppose anything with an eLBC could be affected. -Scott ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: UBIFS problem on MPC8536DS
Scott Wood wrote: Felix Radensky wrote: OK, no problem. I just wanted to get an idea of what should be done. Should the NOR code poll some eLBC register to wait for completion of NAND special operation ? Can you tell what register is relevant ? I was thinking you'd just share a mutex with the NAND code. OK, I have NOR and NAND synchronized properly now. Thanks a lot for your help. Felix. ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: UBIFS problem on MPC8536DS
On Sun, Oct 18, 2009 at 11:38:13AM +0200, Felix Radensky wrote: Hi, Scott Scott Wood wrote: On Fri, Oct 16, 2009 at 07:01:43AM +0200, Felix Radensky wrote: Thanks for confirmation. So the real problem is eLBC ? What happens if I access other devices on eLBC (e.g. FPGA) simultaneously with NAND or NOR ? AFAICT, the problem is NAND being accessed simultaneously with anything else on the eLBC (at least GPCM -- not sure about UPM). Instead of delaying the memory-like transaction until the NAND special operation has completed, it seems to just abort the NAND operation. eLBC can't really tell the difference whether you've got NOR or FPGA hooked up to a GPCM chip select, so the problem should still apply. Can you please provide some code example of synchronizing GPCM and NAND ? I don't have any. It's something that would have to be written. -Scott ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: UBIFS problem on MPC8536DS
Scott Wood wrote: On Sun, Oct 18, 2009 at 11:38:13AM +0200, Felix Radensky wrote: Hi, Scott Scott Wood wrote: On Fri, Oct 16, 2009 at 07:01:43AM +0200, Felix Radensky wrote: Thanks for confirmation. So the real problem is eLBC ? What happens if I access other devices on eLBC (e.g. FPGA) simultaneously with NAND or NOR ? AFAICT, the problem is NAND being accessed simultaneously with anything else on the eLBC (at least GPCM -- not sure about UPM). Instead of delaying the memory-like transaction until the NAND special operation has completed, it seems to just abort the NAND operation. eLBC can't really tell the difference whether you've got NOR or FPGA hooked up to a GPCM chip select, so the problem should still apply. Can you please provide some code example of synchronizing GPCM and NAND ? I don't have any. It's something that would have to be written. OK, no problem. I just wanted to get an idea of what should be done. Should the NOR code poll some eLBC register to wait for completion of NAND special operation ? Can you tell what register is relevant ? Thanks. Felix. ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: UBIFS problem on MPC8536DS
Felix Radensky wrote: OK, no problem. I just wanted to get an idea of what should be done. Should the NOR code poll some eLBC register to wait for completion of NAND special operation ? Can you tell what register is relevant ? I was thinking you'd just share a mutex with the NAND code. -Scott ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: UBIFS problem on MPC8536DS
Scott Wood wrote: Felix Radensky wrote: OK, no problem. I just wanted to get an idea of what should be done. Should the NOR code poll some eLBC register to wait for completion of NAND special operation ? Can you tell what register is relevant ? I was thinking you'd just share a mutex with the NAND code. Thanks. Do I understand correctly that in fsl_ebc_nand.c this mutex should protect the execution of special operation and wait for completion in fsl_elbc_run_command() routine ? Felix. ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: UBIFS problem on MPC8536DS
Hi, Scott Scott Wood wrote: On Fri, Oct 16, 2009 at 07:01:43AM +0200, Felix Radensky wrote: Thanks for confirmation. So the real problem is eLBC ? What happens if I access other devices on eLBC (e.g. FPGA) simultaneously with NAND or NOR ? AFAICT, the problem is NAND being accessed simultaneously with anything else on the eLBC (at least GPCM -- not sure about UPM). Instead of delaying the memory-like transaction until the NAND special operation has completed, it seems to just abort the NAND operation. eLBC can't really tell the difference whether you've got NOR or FPGA hooked up to a GPCM chip select, so the problem should still apply. Can you please provide some code example of synchronizing GPCM and NAND ? I may try implementing the NOR mapping driver you were talking about. Thanks. Felix. ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: UBIFS problem on MPC8536DS
On Fri, Oct 16, 2009 at 07:01:43AM +0200, Felix Radensky wrote: Thanks for confirmation. So the real problem is eLBC ? What happens if I access other devices on eLBC (e.g. FPGA) simultaneously with NAND or NOR ? AFAICT, the problem is NAND being accessed simultaneously with anything else on the eLBC (at least GPCM -- not sure about UPM). Instead of delaying the memory-like transaction until the NAND special operation has completed, it seems to just abort the NAND operation. eLBC can't really tell the difference whether you've got NOR or FPGA hooked up to a GPCM chip select, so the problem should still apply. -Scott ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: UBIFS problem on MPC8536DS
Hi Felix, do you have CONFIG_NO_HZ defined ? I've seen similar problems with powerpc + CONFIG_NO_HZ. In my case the low-level do_write_buffer (cfi_cmdset_0002.c) timed out too early. See http://lkml.org/lkml/2009/9/3/84 Maybe in your case it's the do_erase_chip timing out too early. --- NvBolhuis. Felix Radensky wrote: Hi, I have a strange problem in linux-2.6.31 running on MPC8536DS board. It is 100% reproducible, by opening a 350MB tar file into ubifs volume on NAND flash, and starting erase of NOR flash partition right after that. If I don't start NOR erase, everything works fine. Also, If I run sync after tar, no problem occurs. The NOR flash is 32MB Spansion, NAND is 4GB Samsung. The error messages are as follows: UBI error: ubi_io_write: error -5 while writing 2048 bytes to PEB 5812:12288, written 0 bytes UBI warning: ubi_eba_write_leb: failed to write data to PEB 5812 UBI: recover PEB 5812, move data to PEB 19400 UBI error: ubi_io_read: error -74 while reading 512 bytes from PEB 5812:512, read 512 bytes UBI error: ubi_io_write: error -5 while writing 512 bytes to PEB 19400:512, written 0 bytes UBI warning: recover_peb: failed to write to PEB 19400 UBI: try again UBI: recover PEB 5812, move data to PEB 19401 UBI: run torture test for PEB 19400 UBI error: ubi_io_write: error -5 while writing 512 bytes to PEB 19401:512, written 0 bytes UBI warning: recover_peb: failed to write to PEB 19401 UBI: try again UBI: recover PEB 5812, move data to PEB 19402 UBI error: ubi_io_write: error -5 while writing 512 bytes to PEB 19402:512, written 0 bytes UBI warning: recover_peb: failed to write to PEB 19402 UBI: try again UBI: recover PEB 5812, move data to PEB 19403 UBI error: ubi_io_write: error -5 while writing 512 bytes to PEB 19403:512, written 0 bytes UBI warning: recover_peb: failed to write to PEB 19403 UBI warning: ubi_ro_mode: switch to read-only mode UBIFS error (pid 1149): ubifs_wbuf_write_nolock: cannot write 2522 bytes to LEB 389:10240, error -5 UBIFS warning (pid 1149): ubifs_ro_mode: switched to read-only mode, error -5 UBIFS error (pid 1149): do_writepage: cannot write page 0 of inode 30708, error -5 UBIFS error (pid 1149): make_reservation: cannot reserve 858 bytes in jhead 2, error -30 UBIFS error (pid 1149): do_writepage: cannot write page 2 of inode 29486, error -30 UBIFS error (pid 1149): make_reservation: cannot reserve 721 bytes in jhead 2, error -30 UBIFS error (pid 1149): do_writepage: cannot write page 1 of inode 30070, error -30 UBI error: ubi_io_write: error -5 while writing 2048 bytes to PEB 5022:88064, written 0 bytes UBI warning: ubi_eba_write_leb: failed to write data to PEB 5022 UBI: recover PEB 5022, move data to PEB 19404 UBI error: ubi_io_read: error -74 while reading 512 bytes from PEB 5022:512, read 512 bytes UBI error: ubi_io_write: read-only mode UBI warning: recover_peb: failed to write to PEB 19404 UBI: try again UBI: recover PEB 5022, move data to PEB 19405 UBI error: ubi_io_write: read-only mode UBI warning: recover_peb: failed to write to PEB 19405 UBI: try again UBI: recover PEB 5022, move data to PEB 19406 UBI error: ubi_io_write: read-only mode UBI warning: recover_peb: failed to write to PEB 19406 UBI: try again UBI: recover PEB 5022, move data to PEB 19407 UBI error: ubi_io_write: read-only mode UBI warning: recover_peb: failed to write to PEB 19407 UBIFS error (pid 1044): ubifs_wbuf_sync_nolock: cannot write 2048 bytes to LEB 788:86016 UBIFS error (pid 1044): ubifs_bg_wbufs_sync: cannot sync write-buffer, error -30 UBIFS warning (pid 1044): ubifs_ro_mode: switched to read-only mode, error -30 UBI error: ubi_io_write: error -5 while writing 2048 bytes to PEB 5817:26624, written 0 bytes UBI warning: ubi_eba_write_leb: failed to write data to PEB 5817 UBI: recover PEB 5817, move data to PEB 19408 UBI error: ubi_io_read: error -74 while reading 512 bytes from PEB 5817:512, read 512 bytes UBI error: ubi_io_write: read-only mode UBI warning: recover_peb: failed to write to PEB 19408 UBI: try again UBI: recover PEB 5817, move data to PEB 19409 UBI error: ubi_io_write: read-only mode UBI warning: recover_peb: failed to write to PEB 19409 UBI: try again UBI: recover PEB 5817, move data to PEB 19410 UBI error: ubi_io_write: read-only mode UBI warning: recover_peb: failed to write to PEB 19410 UBI: try again UBI: recover PEB 5817, move data to PEB 19411 UBI error: ubi_io_write: read-only mode UBI warning: recover_peb: failed to write to PEB 19411 UBIFS error (pid 1047): ubifs_wbuf_sync_nolock: cannot write 2048 bytes to LEB 385:24576 UBIFS error (pid 1047): ubifs_bg_wbufs_sync: cannot sync write-buffer, error -30 UBIFS error (pid 1149): make_reservation: cannot reserve 160 bytes in jhead 1, error -30 UBIFS error (pid 1149): ubifs_write_inode: can't write inode 30709, error -30 UBIFS error (pid 1149): make_reservation: cannot reserve 160 bytes in jhead 1, error -30 UBIFS error (pid 1149): ubifs_write_inode: can't write
Re: UBIFS problem on MPC8536DS
Hi, Norbert Norbert van Bolhuis wrote: Hi Felix, do you have CONFIG_NO_HZ defined ? I've seen similar problems with powerpc + CONFIG_NO_HZ. In my case the low-level do_write_buffer (cfi_cmdset_0002.c) timed out too early. See http://lkml.org/lkml/2009/9/3/84 Maybe in your case it's the do_erase_chip timing out too early. --- NvBolhuis. Thanks for suggestion. I have CONFIG_NO_HZ defined, but disabling it doesn't help. I my case timeouts occur in NAND driver, fsl_elbc_nand.c Felix. ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: UBIFS problem on MPC8536DS
Scott Wood wrote: Felix Radensky wrote: Yes, NAND and NOR are on the same local bus controller. Maybe powerpc folks can provide some insight here. Is it possible that simultaneous access to NOR and NAND on MPC8536 can result in NAND timeouts ? I've heard other reports of such problems with eLBC, but was unable to reproduce it myself last time I tried. Could you reduce this down to a minimal set of specific reproduction instructions (e.g. eliminate UBI if possible, or else explain how to set up UBI)? OK, I was able to reproduce the problem on mpc8572 simply by sticking a read to NOR flash inside fsl_elbc_run_command -- I'm not sure what happened last time I tried. I suppose we'll need a special NOR mapping driver that does some sync with the NAND driver. -Scott ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: UBIFS problem on MPC8536DS
Hi, Scott Scott Wood wrote: Scott Wood wrote: Felix Radensky wrote: Yes, NAND and NOR are on the same local bus controller. Maybe powerpc folks can provide some insight here. Is it possible that simultaneous access to NOR and NAND on MPC8536 can result in NAND timeouts ? I've heard other reports of such problems with eLBC, but was unable to reproduce it myself last time I tried. Could you reduce this down to a minimal set of specific reproduction instructions (e.g. eliminate UBI if possible, or else explain how to set up UBI)? OK, I was able to reproduce the problem on mpc8572 simply by sticking a read to NOR flash inside fsl_elbc_run_command -- I'm not sure what happened last time I tried. I suppose we'll need a special NOR mapping driver that does some sync with the NAND driver. Thanks for confirmation. So the real problem is eLBC ? What happens if I access other devices on eLBC (e.g. FPGA) simultaneously with NAND or NOR ? Felix. ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: UBIFS problem on MPC8536DS
Hi, Adrian Adrian Hunter wrote: Felix Radensky wrote: Hi, I have a strange problem in linux-2.6.31 running on MPC8536DS board. It is 100% reproducible, by opening a 350MB tar file into ubifs volume on NAND flash, and starting erase of NOR flash partition right after that. If I don't start NOR erase, everything works fine. Also, If I run sync after tar, no problem occurs. The NOR flash is 32MB Spansion, NAND is 4GB Samsung. The error messages are as follows: UBI error: ubi_io_write: error -5 while writing 2048 bytes to PEB 5812:12288, written 0 bytes UBI warning: ubi_eba_write_leb: failed to write data to PEB 5812 UBI: recover PEB 5812, move data to PEB 19400 UBI error: ubi_io_read: error -74 while reading 512 bytes from PEB 5812:512, read 512 bytes UBI error: ubi_io_write: error -5 while writing 512 bytes to PEB 19400:512, written 0 bytes UBI warning: recover_peb: failed to write to PEB 19400 UBI: try again UBI: recover PEB 5812, move data to PEB 19401 UBI: run torture test for PEB 19400 UBI error: ubi_io_write: error -5 while writing 512 bytes to PEB 19401:512, written 0 bytes UBI warning: recover_peb: failed to write to PEB 19401 UBI: try again UBI: recover PEB 5812, move data to PEB 19402 UBI error: ubi_io_write: error -5 while writing 512 bytes to PEB 19402:512, written 0 bytes UBI warning: recover_peb: failed to write to PEB 19402 UBI: try again UBI: recover PEB 5812, move data to PEB 19403 UBI error: ubi_io_write: error -5 while writing 512 bytes to PEB 19403:512, written 0 bytes UBI warning: recover_peb: failed to write to PEB 19403 UBI warning: ubi_ro_mode: switch to read-only mode UBIFS error (pid 1149): ubifs_wbuf_write_nolock: cannot write 2522 bytes to LEB 389:10240, error -5 UBIFS warning (pid 1149): ubifs_ro_mode: switched to read-only mode, error -5 UBIFS error (pid 1149): do_writepage: cannot write page 0 of inode 30708, error -5 UBIFS error (pid 1149): make_reservation: cannot reserve 858 bytes in jhead 2, error -30 UBIFS error (pid 1149): do_writepage: cannot write page 2 of inode 29486, error -30 UBIFS error (pid 1149): make_reservation: cannot reserve 721 bytes in jhead 2, error -30 UBIFS error (pid 1149): do_writepage: cannot write page 1 of inode 30070, error -30 UBI error: ubi_io_write: error -5 while writing 2048 bytes to PEB 5022:88064, written 0 bytes UBI warning: ubi_eba_write_leb: failed to write data to PEB 5022 UBI: recover PEB 5022, move data to PEB 19404 UBI error: ubi_io_read: error -74 while reading 512 bytes from PEB 5022:512, read 512 bytes UBI error: ubi_io_write: read-only mode UBI warning: recover_peb: failed to write to PEB 19404 UBI: try again UBI: recover PEB 5022, move data to PEB 19405 UBI error: ubi_io_write: read-only mode UBI warning: recover_peb: failed to write to PEB 19405 UBI: try again UBI: recover PEB 5022, move data to PEB 19406 UBI error: ubi_io_write: read-only mode UBI warning: recover_peb: failed to write to PEB 19406 UBI: try again UBI: recover PEB 5022, move data to PEB 19407 UBI error: ubi_io_write: read-only mode UBI warning: recover_peb: failed to write to PEB 19407 UBIFS error (pid 1044): ubifs_wbuf_sync_nolock: cannot write 2048 bytes to LEB 788:86016 UBIFS error (pid 1044): ubifs_bg_wbufs_sync: cannot sync write-buffer, error -30 UBIFS warning (pid 1044): ubifs_ro_mode: switched to read-only mode, error -30 UBI error: ubi_io_write: error -5 while writing 2048 bytes to PEB 5817:26624, written 0 bytes UBI warning: ubi_eba_write_leb: failed to write data to PEB 5817 UBI: recover PEB 5817, move data to PEB 19408 UBI error: ubi_io_read: error -74 while reading 512 bytes from PEB 5817:512, read 512 bytes UBI error: ubi_io_write: read-only mode UBI warning: recover_peb: failed to write to PEB 19408 UBI: try again UBI: recover PEB 5817, move data to PEB 19409 UBI error: ubi_io_write: read-only mode UBI warning: recover_peb: failed to write to PEB 19409 UBI: try again UBI: recover PEB 5817, move data to PEB 19410 UBI error: ubi_io_write: read-only mode UBI warning: recover_peb: failed to write to PEB 19410 UBI: try again UBI: recover PEB 5817, move data to PEB 19411 UBI error: ubi_io_write: read-only mode UBI warning: recover_peb: failed to write to PEB 19411 UBIFS error (pid 1047): ubifs_wbuf_sync_nolock: cannot write 2048 bytes to LEB 385:24576 UBIFS error (pid 1047): ubifs_bg_wbufs_sync: cannot sync write-buffer, error -30 UBIFS error (pid 1149): make_reservation: cannot reserve 160 bytes in jhead 1, error -30 UBIFS error (pid 1149): ubifs_write_inode: can't write inode 30709, error -30 UBIFS error (pid 1149): make_reservation: cannot reserve 160 bytes in jhead 1, error -30 UBIFS error (pid 1149): ubifs_write_inode: can't write inode 30710, error -30 UBIFS error (pid 1149): make_reservation: cannot reserve 160 bytes in jhead 1, error -30 UBIFS error (pid 1149): ubifs_write_inode: can't write inode 30698, error -30 UBIFS error (pid 1149): make_reservation: cannot reserve 160 bytes in jhead 1,
Re: UBIFS problem on MPC8536DS
Adrian Hunter wrote: Felix Radensky wrote: Hi, I have a strange problem in linux-2.6.31 running on MPC8536DS board. It is 100% reproducible, by opening a 350MB tar file into ubifs volume on NAND flash, and starting erase of NOR flash partition right after that. If I don't start NOR erase, everything works fine. Also, If I run sync after tar, no problem occurs. The NOR flash is 32MB Spansion, NAND is 4GB Samsung. The error messages are as follows: UBI error: ubi_io_write: error -5 while writing 2048 bytes to PEB 5812:12288, written 0 bytes UBI warning: ubi_eba_write_leb: failed to write data to PEB 5812 UBI: recover PEB 5812, move data to PEB 19400 UBI error: ubi_io_read: error -74 while reading 512 bytes from PEB 5812:512, read 512 bytes UBI error: ubi_io_write: error -5 while writing 512 bytes to PEB 19400:512, written 0 bytes UBI warning: recover_peb: failed to write to PEB 19400 UBI: try again UBI: recover PEB 5812, move data to PEB 19401 UBI: run torture test for PEB 19400 UBI error: ubi_io_write: error -5 while writing 512 bytes to PEB 19401:512, written 0 bytes UBI warning: recover_peb: failed to write to PEB 19401 UBI: try again UBI: recover PEB 5812, move data to PEB 19402 UBI error: ubi_io_write: error -5 while writing 512 bytes to PEB 19402:512, written 0 bytes UBI warning: recover_peb: failed to write to PEB 19402 UBI: try again UBI: recover PEB 5812, move data to PEB 19403 UBI error: ubi_io_write: error -5 while writing 512 bytes to PEB 19403:512, written 0 bytes UBI warning: recover_peb: failed to write to PEB 19403 UBI warning: ubi_ro_mode: switch to read-only mode UBIFS error (pid 1149): ubifs_wbuf_write_nolock: cannot write 2522 bytes to LEB 389:10240, error -5 UBIFS warning (pid 1149): ubifs_ro_mode: switched to read-only mode, error -5 UBIFS error (pid 1149): do_writepage: cannot write page 0 of inode 30708, error -5 UBIFS error (pid 1149): make_reservation: cannot reserve 858 bytes in jhead 2, error -30 UBIFS error (pid 1149): do_writepage: cannot write page 2 of inode 29486, error -30 UBIFS error (pid 1149): make_reservation: cannot reserve 721 bytes in jhead 2, error -30 UBIFS error (pid 1149): do_writepage: cannot write page 1 of inode 30070, error -30 UBI error: ubi_io_write: error -5 while writing 2048 bytes to PEB 5022:88064, written 0 bytes UBI warning: ubi_eba_write_leb: failed to write data to PEB 5022 UBI: recover PEB 5022, move data to PEB 19404 UBI error: ubi_io_read: error -74 while reading 512 bytes from PEB 5022:512, read 512 bytes UBI error: ubi_io_write: read-only mode UBI warning: recover_peb: failed to write to PEB 19404 UBI: try again UBI: recover PEB 5022, move data to PEB 19405 UBI error: ubi_io_write: read-only mode UBI warning: recover_peb: failed to write to PEB 19405 UBI: try again UBI: recover PEB 5022, move data to PEB 19406 UBI error: ubi_io_write: read-only mode UBI warning: recover_peb: failed to write to PEB 19406 UBI: try again UBI: recover PEB 5022, move data to PEB 19407 UBI error: ubi_io_write: read-only mode UBI warning: recover_peb: failed to write to PEB 19407 UBIFS error (pid 1044): ubifs_wbuf_sync_nolock: cannot write 2048 bytes to LEB 788:86016 UBIFS error (pid 1044): ubifs_bg_wbufs_sync: cannot sync write-buffer, error -30 UBIFS warning (pid 1044): ubifs_ro_mode: switched to read-only mode, error -30 UBI error: ubi_io_write: error -5 while writing 2048 bytes to PEB 5817:26624, written 0 bytes UBI warning: ubi_eba_write_leb: failed to write data to PEB 5817 UBI: recover PEB 5817, move data to PEB 19408 UBI error: ubi_io_read: error -74 while reading 512 bytes from PEB 5817:512, read 512 bytes UBI error: ubi_io_write: read-only mode UBI warning: recover_peb: failed to write to PEB 19408 UBI: try again UBI: recover PEB 5817, move data to PEB 19409 UBI error: ubi_io_write: read-only mode UBI warning: recover_peb: failed to write to PEB 19409 UBI: try again UBI: recover PEB 5817, move data to PEB 19410 UBI error: ubi_io_write: read-only mode UBI warning: recover_peb: failed to write to PEB 19410 UBI: try again UBI: recover PEB 5817, move data to PEB 19411 UBI error: ubi_io_write: read-only mode UBI warning: recover_peb: failed to write to PEB 19411 UBIFS error (pid 1047): ubifs_wbuf_sync_nolock: cannot write 2048 bytes to LEB 385:24576 UBIFS error (pid 1047): ubifs_bg_wbufs_sync: cannot sync write-buffer, error -30 UBIFS error (pid 1149): make_reservation: cannot reserve 160 bytes in jhead 1, error -30 UBIFS error (pid 1149): ubifs_write_inode: can't write inode 30709, error -30 UBIFS error (pid 1149): make_reservation: cannot reserve 160 bytes in jhead 1, error -30 UBIFS error (pid 1149): ubifs_write_inode: can't write inode 30710, error -30 UBIFS error (pid 1149): make_reservation: cannot reserve 160 bytes in jhead 1, error -30 UBIFS error (pid 1149): ubifs_write_inode: can't write inode 30698, error -30 UBIFS error (pid 1149): make_reservation: cannot reserve 160 bytes in jhead 1, error -30
Re: UBIFS problem on MPC8536DS
Felix Radensky wrote: Hi, I have a strange problem in linux-2.6.31 running on MPC8536DS board. It is 100% reproducible, by opening a 350MB tar file into ubifs volume on NAND flash, and starting erase of NOR flash partition right after that. If I don't start NOR erase, everything works fine. Also, If I run sync after tar, no problem occurs. The NOR flash is 32MB Spansion, NAND is 4GB Samsung. The error messages are as follows: UBI error: ubi_io_write: error -5 while writing 2048 bytes to PEB 5812:12288, written 0 bytes UBI warning: ubi_eba_write_leb: failed to write data to PEB 5812 UBI: recover PEB 5812, move data to PEB 19400 UBI error: ubi_io_read: error -74 while reading 512 bytes from PEB 5812:512, read 512 bytes UBI error: ubi_io_write: error -5 while writing 512 bytes to PEB 19400:512, written 0 bytes UBI warning: recover_peb: failed to write to PEB 19400 UBI: try again UBI: recover PEB 5812, move data to PEB 19401 UBI: run torture test for PEB 19400 UBI error: ubi_io_write: error -5 while writing 512 bytes to PEB 19401:512, written 0 bytes UBI warning: recover_peb: failed to write to PEB 19401 UBI: try again UBI: recover PEB 5812, move data to PEB 19402 UBI error: ubi_io_write: error -5 while writing 512 bytes to PEB 19402:512, written 0 bytes UBI warning: recover_peb: failed to write to PEB 19402 UBI: try again UBI: recover PEB 5812, move data to PEB 19403 UBI error: ubi_io_write: error -5 while writing 512 bytes to PEB 19403:512, written 0 bytes UBI warning: recover_peb: failed to write to PEB 19403 UBI warning: ubi_ro_mode: switch to read-only mode UBIFS error (pid 1149): ubifs_wbuf_write_nolock: cannot write 2522 bytes to LEB 389:10240, error -5 UBIFS warning (pid 1149): ubifs_ro_mode: switched to read-only mode, error -5 UBIFS error (pid 1149): do_writepage: cannot write page 0 of inode 30708, error -5 UBIFS error (pid 1149): make_reservation: cannot reserve 858 bytes in jhead 2, error -30 UBIFS error (pid 1149): do_writepage: cannot write page 2 of inode 29486, error -30 UBIFS error (pid 1149): make_reservation: cannot reserve 721 bytes in jhead 2, error -30 UBIFS error (pid 1149): do_writepage: cannot write page 1 of inode 30070, error -30 UBI error: ubi_io_write: error -5 while writing 2048 bytes to PEB 5022:88064, written 0 bytes UBI warning: ubi_eba_write_leb: failed to write data to PEB 5022 UBI: recover PEB 5022, move data to PEB 19404 UBI error: ubi_io_read: error -74 while reading 512 bytes from PEB 5022:512, read 512 bytes UBI error: ubi_io_write: read-only mode UBI warning: recover_peb: failed to write to PEB 19404 UBI: try again UBI: recover PEB 5022, move data to PEB 19405 UBI error: ubi_io_write: read-only mode UBI warning: recover_peb: failed to write to PEB 19405 UBI: try again UBI: recover PEB 5022, move data to PEB 19406 UBI error: ubi_io_write: read-only mode UBI warning: recover_peb: failed to write to PEB 19406 UBI: try again UBI: recover PEB 5022, move data to PEB 19407 UBI error: ubi_io_write: read-only mode UBI warning: recover_peb: failed to write to PEB 19407 UBIFS error (pid 1044): ubifs_wbuf_sync_nolock: cannot write 2048 bytes to LEB 788:86016 UBIFS error (pid 1044): ubifs_bg_wbufs_sync: cannot sync write-buffer, error -30 UBIFS warning (pid 1044): ubifs_ro_mode: switched to read-only mode, error -30 UBI error: ubi_io_write: error -5 while writing 2048 bytes to PEB 5817:26624, written 0 bytes UBI warning: ubi_eba_write_leb: failed to write data to PEB 5817 UBI: recover PEB 5817, move data to PEB 19408 UBI error: ubi_io_read: error -74 while reading 512 bytes from PEB 5817:512, read 512 bytes UBI error: ubi_io_write: read-only mode UBI warning: recover_peb: failed to write to PEB 19408 UBI: try again UBI: recover PEB 5817, move data to PEB 19409 UBI error: ubi_io_write: read-only mode UBI warning: recover_peb: failed to write to PEB 19409 UBI: try again UBI: recover PEB 5817, move data to PEB 19410 UBI error: ubi_io_write: read-only mode UBI warning: recover_peb: failed to write to PEB 19410 UBI: try again UBI: recover PEB 5817, move data to PEB 19411 UBI error: ubi_io_write: read-only mode UBI warning: recover_peb: failed to write to PEB 19411 UBIFS error (pid 1047): ubifs_wbuf_sync_nolock: cannot write 2048 bytes to LEB 385:24576 UBIFS error (pid 1047): ubifs_bg_wbufs_sync: cannot sync write-buffer, error -30 UBIFS error (pid 1149): make_reservation: cannot reserve 160 bytes in jhead 1, error -30 UBIFS error (pid 1149): ubifs_write_inode: can't write inode 30709, error -30 UBIFS error (pid 1149): make_reservation: cannot reserve 160 bytes in jhead 1, error -30 UBIFS error (pid 1149): ubifs_write_inode: can't write inode 30710, error -30 UBIFS error (pid 1149): make_reservation: cannot reserve 160 bytes in jhead 1, error -30 UBIFS error (pid 1149): ubifs_write_inode: can't write inode 30698, error -30 UBIFS error (pid 1149): make_reservation: cannot reserve 160 bytes in jhead 1, error -30 UBIFS error (pid 1149):
Re: UBIFS problem on MPC8536DS
Felix Radensky wrote: Adrian Hunter wrote: Felix Radensky wrote: Hi, I have a strange problem in linux-2.6.31 running on MPC8536DS board. It is 100% reproducible, by opening a 350MB tar file into ubifs volume on NAND flash, and starting erase of NOR flash partition right after that. If I don't start NOR erase, everything works fine. Also, If I run sync after tar, no problem occurs. The NOR flash is 32MB Spansion, NAND is 4GB Samsung. The error messages are as follows: UBI error: ubi_io_write: error -5 while writing 2048 bytes to PEB 5812:12288, written 0 bytes UBI warning: ubi_eba_write_leb: failed to write data to PEB 5812 UBI: recover PEB 5812, move data to PEB 19400 UBI error: ubi_io_read: error -74 while reading 512 bytes from PEB 5812:512, read 512 bytes UBI error: ubi_io_write: error -5 while writing 512 bytes to PEB 19400:512, written 0 bytes UBI warning: recover_peb: failed to write to PEB 19400 UBI: try again UBI: recover PEB 5812, move data to PEB 19401 UBI: run torture test for PEB 19400 UBI error: ubi_io_write: error -5 while writing 512 bytes to PEB 19401:512, written 0 bytes UBI warning: recover_peb: failed to write to PEB 19401 UBI: try again UBI: recover PEB 5812, move data to PEB 19402 UBI error: ubi_io_write: error -5 while writing 512 bytes to PEB 19402:512, written 0 bytes UBI warning: recover_peb: failed to write to PEB 19402 UBI: try again UBI: recover PEB 5812, move data to PEB 19403 UBI error: ubi_io_write: error -5 while writing 512 bytes to PEB 19403:512, written 0 bytes UBI warning: recover_peb: failed to write to PEB 19403 UBI warning: ubi_ro_mode: switch to read-only mode UBIFS error (pid 1149): ubifs_wbuf_write_nolock: cannot write 2522 bytes to LEB 389:10240, error -5 UBIFS warning (pid 1149): ubifs_ro_mode: switched to read-only mode, error -5 UBIFS error (pid 1149): do_writepage: cannot write page 0 of inode 30708, error -5 UBIFS error (pid 1149): make_reservation: cannot reserve 858 bytes in jhead 2, error -30 UBIFS error (pid 1149): do_writepage: cannot write page 2 of inode 29486, error -30 UBIFS error (pid 1149): make_reservation: cannot reserve 721 bytes in jhead 2, error -30 UBIFS error (pid 1149): do_writepage: cannot write page 1 of inode 30070, error -30 UBI error: ubi_io_write: error -5 while writing 2048 bytes to PEB 5022:88064, written 0 bytes UBI warning: ubi_eba_write_leb: failed to write data to PEB 5022 UBI: recover PEB 5022, move data to PEB 19404 UBI error: ubi_io_read: error -74 while reading 512 bytes from PEB 5022:512, read 512 bytes UBI error: ubi_io_write: read-only mode UBI warning: recover_peb: failed to write to PEB 19404 UBI: try again UBI: recover PEB 5022, move data to PEB 19405 UBI error: ubi_io_write: read-only mode UBI warning: recover_peb: failed to write to PEB 19405 UBI: try again UBI: recover PEB 5022, move data to PEB 19406 UBI error: ubi_io_write: read-only mode UBI warning: recover_peb: failed to write to PEB 19406 UBI: try again UBI: recover PEB 5022, move data to PEB 19407 UBI error: ubi_io_write: read-only mode UBI warning: recover_peb: failed to write to PEB 19407 UBIFS error (pid 1044): ubifs_wbuf_sync_nolock: cannot write 2048 bytes to LEB 788:86016 UBIFS error (pid 1044): ubifs_bg_wbufs_sync: cannot sync write-buffer, error -30 UBIFS warning (pid 1044): ubifs_ro_mode: switched to read-only mode, error -30 UBI error: ubi_io_write: error -5 while writing 2048 bytes to PEB 5817:26624, written 0 bytes UBI warning: ubi_eba_write_leb: failed to write data to PEB 5817 UBI: recover PEB 5817, move data to PEB 19408 UBI error: ubi_io_read: error -74 while reading 512 bytes from PEB 5817:512, read 512 bytes UBI error: ubi_io_write: read-only mode UBI warning: recover_peb: failed to write to PEB 19408 UBI: try again UBI: recover PEB 5817, move data to PEB 19409 UBI error: ubi_io_write: read-only mode UBI warning: recover_peb: failed to write to PEB 19409 UBI: try again UBI: recover PEB 5817, move data to PEB 19410 UBI error: ubi_io_write: read-only mode UBI warning: recover_peb: failed to write to PEB 19410 UBI: try again UBI: recover PEB 5817, move data to PEB 19411 UBI error: ubi_io_write: read-only mode UBI warning: recover_peb: failed to write to PEB 19411 UBIFS error (pid 1047): ubifs_wbuf_sync_nolock: cannot write 2048 bytes to LEB 385:24576 UBIFS error (pid 1047): ubifs_bg_wbufs_sync: cannot sync write-buffer, error -30 UBIFS error (pid 1149): make_reservation: cannot reserve 160 bytes in jhead 1, error -30 UBIFS error (pid 1149): ubifs_write_inode: can't write inode 30709, error -30 UBIFS error (pid 1149): make_reservation: cannot reserve 160 bytes in jhead 1, error -30 UBIFS error (pid 1149): ubifs_write_inode: can't write inode 30710, error -30 UBIFS error (pid 1149): make_reservation: cannot reserve 160 bytes in jhead 1, error -30 UBIFS error (pid 1149): ubifs_write_inode: can't write inode 30698, error -30 UBIFS error (pid 1149): make_reservation: cannot reserve 160 bytes in
Re: UBIFS problem on MPC8536DS
Adrian Hunter wrote: Felix Radensky wrote: Adrian Hunter wrote: Felix Radensky wrote: Hi, I have a strange problem in linux-2.6.31 running on MPC8536DS board. It is 100% reproducible, by opening a 350MB tar file into ubifs volume on NAND flash, and starting erase of NOR flash partition right after that. If I don't start NOR erase, everything works fine. Also, If I run sync after tar, no problem occurs. The NOR flash is 32MB Spansion, NAND is 4GB Samsung. The error messages are as follows: UBI error: ubi_io_write: error -5 while writing 2048 bytes to PEB 5812:12288, written 0 bytes UBI warning: ubi_eba_write_leb: failed to write data to PEB 5812 UBI: recover PEB 5812, move data to PEB 19400 UBI error: ubi_io_read: error -74 while reading 512 bytes from PEB 5812:512, read 512 bytes UBI error: ubi_io_write: error -5 while writing 512 bytes to PEB 19400:512, written 0 bytes UBI warning: recover_peb: failed to write to PEB 19400 UBI: try again UBI: recover PEB 5812, move data to PEB 19401 UBI: run torture test for PEB 19400 UBI error: ubi_io_write: error -5 while writing 512 bytes to PEB 19401:512, written 0 bytes UBI warning: recover_peb: failed to write to PEB 19401 UBI: try again UBI: recover PEB 5812, move data to PEB 19402 UBI error: ubi_io_write: error -5 while writing 512 bytes to PEB 19402:512, written 0 bytes UBI warning: recover_peb: failed to write to PEB 19402 UBI: try again UBI: recover PEB 5812, move data to PEB 19403 UBI error: ubi_io_write: error -5 while writing 512 bytes to PEB 19403:512, written 0 bytes UBI warning: recover_peb: failed to write to PEB 19403 UBI warning: ubi_ro_mode: switch to read-only mode UBIFS error (pid 1149): ubifs_wbuf_write_nolock: cannot write 2522 bytes to LEB 389:10240, error -5 UBIFS warning (pid 1149): ubifs_ro_mode: switched to read-only mode, error -5 UBIFS error (pid 1149): do_writepage: cannot write page 0 of inode 30708, error -5 UBIFS error (pid 1149): make_reservation: cannot reserve 858 bytes in jhead 2, error -30 UBIFS error (pid 1149): do_writepage: cannot write page 2 of inode 29486, error -30 UBIFS error (pid 1149): make_reservation: cannot reserve 721 bytes in jhead 2, error -30 UBIFS error (pid 1149): do_writepage: cannot write page 1 of inode 30070, error -30 UBI error: ubi_io_write: error -5 while writing 2048 bytes to PEB 5022:88064, written 0 bytes UBI warning: ubi_eba_write_leb: failed to write data to PEB 5022 UBI: recover PEB 5022, move data to PEB 19404 UBI error: ubi_io_read: error -74 while reading 512 bytes from PEB 5022:512, read 512 bytes UBI error: ubi_io_write: read-only mode UBI warning: recover_peb: failed to write to PEB 19404 UBI: try again UBI: recover PEB 5022, move data to PEB 19405 UBI error: ubi_io_write: read-only mode UBI warning: recover_peb: failed to write to PEB 19405 UBI: try again UBI: recover PEB 5022, move data to PEB 19406 UBI error: ubi_io_write: read-only mode UBI warning: recover_peb: failed to write to PEB 19406 UBI: try again UBI: recover PEB 5022, move data to PEB 19407 UBI error: ubi_io_write: read-only mode UBI warning: recover_peb: failed to write to PEB 19407 UBIFS error (pid 1044): ubifs_wbuf_sync_nolock: cannot write 2048 bytes to LEB 788:86016 UBIFS error (pid 1044): ubifs_bg_wbufs_sync: cannot sync write-buffer, error -30 UBIFS warning (pid 1044): ubifs_ro_mode: switched to read-only mode, error -30 UBI error: ubi_io_write: error -5 while writing 2048 bytes to PEB 5817:26624, written 0 bytes UBI warning: ubi_eba_write_leb: failed to write data to PEB 5817 UBI: recover PEB 5817, move data to PEB 19408 UBI error: ubi_io_read: error -74 while reading 512 bytes from PEB 5817:512, read 512 bytes UBI error: ubi_io_write: read-only mode UBI warning: recover_peb: failed to write to PEB 19408 UBI: try again UBI: recover PEB 5817, move data to PEB 19409 UBI error: ubi_io_write: read-only mode UBI warning: recover_peb: failed to write to PEB 19409 UBI: try again UBI: recover PEB 5817, move data to PEB 19410 UBI error: ubi_io_write: read-only mode UBI warning: recover_peb: failed to write to PEB 19410 UBI: try again UBI: recover PEB 5817, move data to PEB 19411 UBI error: ubi_io_write: read-only mode UBI warning: recover_peb: failed to write to PEB 19411 UBIFS error (pid 1047): ubifs_wbuf_sync_nolock: cannot write 2048 bytes to LEB 385:24576 UBIFS error (pid 1047): ubifs_bg_wbufs_sync: cannot sync write-buffer, error -30 UBIFS error (pid 1149): make_reservation: cannot reserve 160 bytes in jhead 1, error -30 UBIFS error (pid 1149): ubifs_write_inode: can't write inode 30709, error -30 UBIFS error (pid 1149): make_reservation: cannot reserve 160 bytes in jhead 1, error -30 UBIFS error (pid 1149): ubifs_write_inode: can't write inode 30710, error -30 UBIFS error (pid 1149): make_reservation: cannot reserve 160 bytes in jhead 1, error -30 UBIFS error (pid 1149): ubifs_write_inode: can't write inode 30698, error -30 UBIFS error (pid 1149): make_reservation:
Re: UBIFS problem on MPC8536DS
Felix Radensky wrote: Yes, NAND and NOR are on the same local bus controller. Maybe powerpc folks can provide some insight here. Is it possible that simultaneous access to NOR and NAND on MPC8536 can result in NAND timeouts ? I've heard other reports of such problems with eLBC, but was unable to reproduce it myself last time I tried. Could you reduce this down to a minimal set of specific reproduction instructions (e.g. eliminate UBI if possible, or else explain how to set up UBI)? -Scott ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev
Re: UBIFS problem on MPC8536DS
Hi, Scott Scott Wood wrote: Felix Radensky wrote: Yes, NAND and NOR are on the same local bus controller. Maybe powerpc folks can provide some insight here. Is it possible that simultaneous access to NOR and NAND on MPC8536 can result in NAND timeouts ? I've heard other reports of such problems with eLBC, but was unable to reproduce it myself last time I tried. Could you reduce this down to a minimal set of specific reproduction instructions (e.g. eliminate UBI if possible, or else explain how to set up UBI)? -Scott I use u-boot-2009.08 and linux-2.6.31 compiled with ELDK 4.2 UBI (under Device Drivers-MTD-UBI) and UBIFS (under File Systems-Miscellaneous filesystems) should be enabled in kernel configuration. I use the following configuration options (default ones): CONFIG_MTD_UBI=y CONFIG_MTD_UBI_WL_THRESHOLD=4096 CONFIG_MTD_UBI_BEB_RESERVE=1 # CONFIG_MTD_UBI_GLUEBI is not set # UBI debugging options # CONFIG_MTD_UBI_DEBUG is not set # CONFIG_JFFS2_RUBIN is not set CONFIG_UBIFS_FS=y # CONFIG_UBIFS_FS_XATTR is not set # CONFIG_UBIFS_FS_ADVANCED_COMPR is not set CONFIG_UBIFS_FS_LZO=y CONFIG_UBIFS_FS_ZLIB=y # CONFIG_UBIFS_FS_DEBUG is not set Root file system is mounted over NFS (also ELDK 4.2). udev is not used. mtd-utils (which include ubi tools) are from latest git://git.infradead.org/mtd-utils.git I've added the following eLBC node to mpc8536ds.dts local...@ffe05000 { #address-cells = 2; #size-cells = 1; compatible = fsl,mpc8536-elbc, fsl,elbc, simple-bus; reg = 0xffe05000 0x1000; interrupts = 19 2; interrupt-parent = mpic; ranges = 0x0 0x0 0xe800 0x0800 0x1 0x0 0xe800 0x0800 0x2 0x0 0xffa0 0x0004 0x3 0x0 0xffdf 0x8000 0x4 0x0 0xffa4 0x0004 0x5 0x0 0xffa8 0x0004 0x6 0x0 0xffac 0x0004; n...@0,0 { #address-cells = 1; #size-cells = 1; compatible = cfi-flash; reg = 0x0 0x0 0x800; bank-width = 2; device-width = 1; partit...@0 { label = ramdisk; reg = 0x0 0x0300; read-only; }; partit...@300 { label = diagnostics; reg = 0x0300 0x00e0; read-only; }; partit...@3e0 { label = dink; reg = 0x03e0 0x0020; read-only; }; partit...@400 { label = kernel; reg = 0x0400 0x0040; read-only; }; partit...@440 { label = jffs2; reg = 0x0440 0x03b0; }; partit...@7f0 { label = dtb; reg = 0x07f0 0x0008; read-only; }; partit...@7f8 { label = u-boot; reg = 0x07f8 0x0008; read-only; }; }; n...@2,0 { compatible = fsl,mpc8536-fcm-nand, fsl,elbc-fcm-nand; reg = 0x2 0x0 0x4; }; n...@4,0 { compatible = fsl,mpc8536-fcm-nand, fsl,elbc-fcm-nand; reg = 0x4 0x0 0x4; }; n...@5,0 { compatible = fsl,mpc8536-fcm-nand, fsl,elbc-fcm-nand; reg = 0x5 0x0 0x4; }; n...@6,0 { compatible = fsl,mpc8536-fcm-nand, fsl,elbc-fcm-nand; reg = 0x6 0x0 0x4; }; board-cont...@3,0 { compatible = fsl,mpc8536ds-fpga-pixis; reg = 0x3 0x0 0x8000; }; }; I use the script below to reproduce the problem. rfs.tar.bz2 is 350MiB. nand_dev=mtd7 nand_num=7 nor_dev=mtd4 flash_eraseall /dev/$nand_dev || exit 1 ubiformat /dev/$nand_dev || exit 1 ubictrl_major=`cat /sys/class/misc/ubi_ctrl/dev | cut -d: -f1` ubictrl_minor=`cat /sys/class/misc/ubi_ctrl/dev | cut -d: -f2` rm -f /dev/ubi_ctrl mknod /dev/ubi_ctrl c $ubictrl_major $ubictrl_minor ubiattach /dev/ubi_ctrl -m $nand_num || exit 1 ubi0_major=`cat /sys/class/ubi/ubi0/dev | cut -d: -f1` ubi0_minor=`cat /sys/class/ubi/ubi0/dev | cut -d: -f2` rm -f /dev/ubi0 mknod /dev/ubi0 c $ubi0_major $ubi0_minor ubimkvol /dev/ubi0 -N rootfs -s 800MiB || exit 1 mkdir /mnt/rfs mount -t ubifs ubi0:rootfs /mnt/rfs || exit 1 tar xf /root/rfs.tar.bz2 -C /mnt/rfs flash_eraseall /dev/$nor_dev || exit 1 Felix. ___ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev