> > I have a Balloon 3 (P2) that has spent most of the afternoon spitting > out error messages like this whenever I've tried to boot it: > > BUG: soft lockup detected on CPU#0! > > Pid: 711, comm: depmod CPU: 0 PC is at nand_read_byte+0x18/0x20 LR is at > nand_command+0x114/0x1f4 pc : [] lr : [] Not tainted > sp : c3cbd9cc ip : c3cbd9dc fp : c3cbd9d8 r10: 00000000 r9 : 00000000 r8 > : ffffffff r7 : 000000ff r6 : c3c46000 r5 : c3c46180 r4 : ffffffff r3 : > c3c46180 r2 : c4812000 r1 : c4814014 r0 : 00000000 Flags: nZcv IRQs on > FIQs on Mode SVC_32 Segment user Control: 397F Table: A3AB4000 DAC: > 00000015 [] (show_regs+0x0/0x4c) from [] > (softlockup_tick+0x68/0x80) > r4 = C3CBD984 [] (softlockup_tick+0x0/0x80) from [] > (do_timer+0x70/0x10c) > r4 = 00000001 [] (do_timer+0x0/0x10c) from [] > (timer_tick+0xe0/0x134) [] (timer_tick+0x0/0x134) from > [] (pxa_timer_interrupt+0x34/0x84) > r6 = 00000001 r5 = C3CBD984 r4 = F2A00000 [] > (pxa_timer_interrupt+0x0/0x84) from [] (__do_irq+0x4c/0x90) > r8 = 00000000 r7 = 0000001A r6 = C3CBD984 r5 = 00000000 > r4 = C027B2F8 > [] (__do_irq+0x0/0x90) from [] (do_level_IRQ+0x68/0xc0) > r8 = FFFFFFFF r7 = 000000FF r6 = C3CBD984 r5 = 0000001A > r4 = C02D22C8 [] (do_level_IRQ+0x0/0xc0) from [] > (asm_do_IRQ+0x4c/0x74) > r6 = 04000000 r5 = C3CBD9B8 r4 = C3CBD984 > [] (asm_do_IRQ+0x0/0x74) from [] (__irq_svc+0x24/0x60) > r4 = FFFFFFFF [] (nand_read_byte+0x0/0x20) from [] > (nand_command+0x114/0x1f4) [] (nand_command+0x0/0x1f4) from > [] (nand_write_oob+0xc8/0x22c) > r8 = C3C46000 r7 = C3C46180 r6 = FFFFFFFB r5 = FFFFFFFF > r4 = 00000000 [] (nand_write_oob+0x0/0x22c) from [] > (part_write_oob+0x78/0xb0) [] (part_write_oob+0x0/0xb0) from > [] (nandmtd_WriteChunkToNAND+0x108/0x114) > r6 = C3DAF600 r5 = 00000000 r4 = 00F83E00 [] > (nandmtd_WriteChunkToNAND+0x0/0x114) from [] > (yaffs_WriteChunkToNAND+0x4c/0x54) > r8 = C3CBDAB8 r7 = 00000000 r6 = C3DEF000 r5 = 00000000 > r4 = 00007C1F [] (yaffs_WriteChunkToNAND+0x0/0x54) from > [] (yaffs_TagsCompatabilityWriteChunkWithTagsToNAND+0xf0/0xfc) > r6 = 00007C1F r5 = C3DEF000 r4 = C3CBDB1C [] > (yaffs_TagsCompatabilityWriteChunkWithTagsToNAND+0x0/0xfc) from > [] (yaffs_WriteChunkWithTagsToNAND+0xac/0x114) [] > (yaffs_WriteChunkWithTagsToNAND+0x0/0x114) from [] > (yaffs_DeleteChunk+0x20c/0x264) > r8 = 00000000 r7 = 00007C3F r6 = 000003E1 r5 = C3DEF000 > r4 = C3CBDB1C [] (yaffs_DeleteChunk+0x0/0x264) from > [] (yaffs_HandleWriteChunkError+0x94/0xb4) [] > (yaffs_HandleWriteChunkError+0x0/0xb4) from [] > (yaffs_WriteNewChunkWithTagsToNAND+0xc0/0xe0) > r6 = 00000000 r5 = C3DEF000 r4 = 00007C3F [] > (yaffs_WriteNewChunkWithTagsToNAND+0x0/0xe0) from [] > (yaffs_WriteChunkDataToObject+0x84/0xc8) [] > (yaffs_WriteChunkDataToObject+0x0/0xc8) from [] > (yaffs_WriteDataToFile+0x2a0/0x2bc) [] > (yaffs_WriteDataToFile+0x0/0x2bc) from [] > (yaffs_file_write+0x98/0x190) [] (yaffs_file_write+0x0/0x190) > from [] (yaffs_commit_write+0x90/0x160) [] > (yaffs_commit_write+0x0/0x160) from [] > (generic_file_buffered_write+0x26c/0x614) [] > (generic_file_buffered_write+0x4/0x614) from [] > (__generic_file_aio_write_nolock+0x260/0x500) [] > (__generic_file_aio_write_nolock+0x0/0x500) from [] > (__generic_file_write_nolock+0x84/0xb0) [] > (__generic_file_write_nolock+0x0/0xb0) from [] > (generic_file_write+0x48/0xbc) [] > (generic_file_write+0x0/0xbc) from [] (vfs_write+0xc0/0x184) > [] (vfs_write+0x0/0x184) from [] > (sys_write+0x50/0x7c) [] (sys_write+0x0/0x7c) from > [] (ret_fast_syscall+0x0/0x2c) > r9 = C3CBC000 r8 = C0021E44 r7 = 00000004 r6 = 000185F8 > r5 = 00001000 r4 = 40330000 > **>> Block 993 retired > **>> yaffs chunk 31808 was not erased > **>> yaffs chunk 31809 was not erased > **>> yaffs chunk 31810 was not erased > **>> yaffs chunk 31811 was not erased > **>> yaffs chunk 31812 was not erased > **>> yaffs chunk 31813 was not erased > **>> yaffs chunk 31814 was not erased > **>> yaffs chunk 31815 was not erased > **>> yaffs chunk 31816 was not erased > **>> yaffs chunk 31817 was not erased > **>> yaffs chunk 31818 was not erased > **>> yaffs chunk 31819 was not erased > **>> yaffs chunk 31820 was not erased > **>> yaffs chunk 31821 was not erased > **>> yaffs chunk 31822 was not erased > **>> yaffs chunk 31823 was not erased > **>> yaffs chunk 31824 was not erased > **>> yaffs chunk 31825 was not erased > > It keeps doing this (but with progressively higher chunk numbers) until > grinding to a halt after several minutes. It also occasionally throws > out a message about retiring a block. > > This evening however, it has started behaving normally again and it > boots all the way through to the login prompt, but I hadn't done anything > to it to try and fix it. > > > The same board was producing similar 'yaffs chunk n was not erased' > messages on Thursday, but while trying to download a big file via > zmodem, not while booting. On that occasion the only way to cure it and > get a stable system again was a force-erase of the nand. (A non-forced > erase didn't seem to work). It's been back to TCL and there doesn't seem > to be anything wrong with the hardware. TCL were also able to cure it by > doing a force-erase and managed to squirt several MBs over zmodem > without reproducing any sysmptons. > > Any suggestions as to what's going on? Is it just encountering bad nand > that's been marked as good (thanks to the forced erasing), or is there > something else going on? > I have also seen this. I was investigating this stable bad behaviour and then .. it went away. Gah! I have not (yet) been able to make it do it again except that on my E1 board a reboot of the kernel sometimes spits out loads of bad blocks where it was working fine. After I sort out bootldr (again) I need to look at this. Note that the balloon mtd nand interface is using absolute timings to wait for the nand to become ready (no ready/busy line available to linux yet - being fixed). For 2k nand I had to increase it. If you probelem is repeatable, maybe testing it with a higher value on 512b nand might change its behaviour. Nick Bane > Paul Fidler