Greg,

I tried a patch in kernel/sched.c, __wake_up_common:
...
        if( curr->func == NULL || (curr->func(curr, mode, sync, key) &&
                                   (flags & WQ_FLAG_EXCLUSIVE) &&
                                   !--nr_exclusive) ) {
            break;
        }
...

Now jffs2 can be initialized on our flash S29GL064AR4. Also a test file
remains
persistent after re-power our system.

I this patch right? My feeling is that something should be done in mtd!

Regards

Teun Grinwis

> Van: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] Teun Grinwis
> Verzonden: dinsdag 15 mei 2007 8:53
> Aan: uClinux development list
> Onderwerp: RE: [uClinux-dev] RE: jffs2 on MCF5208 custom board
>
>
> Hi Greg,
> It is no HW fault, since primary I did extended tests on all memory r/w.
> Also dBUG boot sw is running correctly.
>
> After some further investigation, the real problem is a NULL ptr function
> call, see below:
>
> - in cfi_cmdset_0002.c, do_erase_oneblock
>               put_chip( map, chip, adr ); is called.
>
> - in cfi_cmdset_0002.c, put_chip
>               wake_up( &chip->wq ); is called
>
> - in kernel/sched.c, __wake_up
>               __wake_up_common( q, mode, nr_exclusive, 0, key ) is called
>
> - in kernel/sched.c, __wake_up_common, here ERROR, func == NULL
>
> static void __wake_up_common(wait_queue_head_t *q, unsigned int mode,
>                            int nr_exclusive, int sync, void *key)
> {
>       struct list_head *tmp, *next;
>
>       list_for_each_safe(tmp, next, &q->task_list) {
>               wait_queue_t *curr;;
>               unsigned flags;
>               curr = list_entry(tmp, wait_queue_t, task_list);
>               flags = curr->flags;
>               if (curr->func(curr, mode, sync, key) &&
>
>                 ^^^^^^^^^^  ERROR, curr->func = NULL
>
>                   (flags & WQ_FLAG_EXCLUSIVE) &&
>                   !--nr_exclusive)
>                       break;
>       }
> }
> ------------------------------------------------
> Why is reason curr->func = NULL? I do not have knowledge about mtd.
> ------------------------------------------------
> Tx for info.
>
> Regards,
> Teun
> > -----Oorspronkelijk bericht-----
> > Van: [EMAIL PROTECTED]
> > [mailto:[EMAIL PROTECTED] Greg Ungerer
> > Verzonden: dinsdag 15 mei 2007 3:31
> > Aan: uClinux development list
> > Onderwerp: Re: [uClinux-dev] RE: jffs2 on MCF5208 custom board
> >
> >
> > Hi Teun,
> >
> > Teun Grinwis wrote:
> > > Late reply, went away some weeks,
> > >
> > > I currently do not run apps XIP.
> > >
> > > Our custom board concerning flash, is equal design as on Intec
> > 5208EVB with
> > > the diff that the flash is S29GL064AR4 iso AM29BDD160G,
> >
> > Could this be a hardware fault?
> > Has the hardware been validated?
> >
> > Regards
> > Greg
> >
> >
> >
> > > My MTD partitions are as follows (btw i did not change flash
> > name string):
> > >
> > > ------------------------
> > > Am29BDD160G 2.5v flash device (2MB): Found 1 x16 devices at 0x0
> > in 16-bit
> > > bank
> > >  Amd/Fujitsu Extended Query Table at 0x0040
> > > cfi_send_gen_cmd():,40 cmd=98 addr=00000055 base=00000000 build
> > > addr=000000aa cm
> > > d_val=00000008
> > > cfi_send_gen_cmd():,41 cmd=f0 addr=00000000 base=00000000 build
> > > addr=00000000 cm
> > > d_val=00000040
> > > cfi_send_gen_cmd():,42 cmd=ff addr=00000000 base=00000000 build
> > > addr=00000000 cm
> > > d_val=00000040
> > > Using buffer write method
> > > number of CFI chips: 1
> > > cfi_cmdset_0002: Disabling erase-suspend-program due to code
> brokenness.
> > >
> > > Creating 3 MTD partitions on "Am29BDD160G 2.5v flash device (2MB)":
> > >
> > > 0x00000000-0x00040000 : "dBUG (256K)"
> > > mtd: Giving out device 2 to dBUG (256K)
> > >
> > > 0x00040000-0x000c0000 : "User FS (512K)"
> > > mtd: Giving out device 3 to User FS (512K)
> > >
> > > 0x000c0000-0x00200000 : "Kernel + RootFS (1280K)"
> > > mtd: Giving out device 4 to Kernel + RootFS (1280K)
> > > m520xevb ram probe(0x40150020,de000,4): de000 at 40150020
> > >
> > > m520xevb ram probe(0x40150020,de000,4): de000 at 40150020
> > > do_map_probe(): name=map_ram <5>Creating 1 MTD partitions on "RAM":
> > > 0x00000000-0x000de000 : "Romfs"
> > > mtd: Giving out device 5 to Romfs
> > > init_m520x: Root filesystem maj:31 mtdblock:5
> > > ----------------------------
> > >
> > > I mount jffs2 on "User FS", addresses 0x40000 - 0xc0000
> > >
> > > I can run my image successful on the EVB see attached file
> > Log_uclinux_evb.
> > >
> > > I started all from a clean flash, erase flash, program dBUG, dn
> > image.bin,
> > > exec image.
> > >
> > > When starting on EVB, jffs2 is initializing "User FS" by MTD
> > > do_erase_oneblock,
> > > MTD do_write_oneword(s) 0x..0 - 0x..a for all sectors in "User
> > FS", startup
> > > successful.
> > >
> > > When starting on custom board *** ILLEGAL INSTRUCTION ***
> > occurs after the
> > > first
> > > MTD do_erase_oneblock(), see attached file
> Log_uclinux_ads4010, startup
> > > unsuccessful.
> > >
> > > It seems that the error has something todo with (erase) timing
> > ?? since in
> > > call trace:
> > > ...
> > > BUG: pdflush/9, lock held at task exit time!
> > >  [403b6446] {alloc_super}
> > > .. held by:           pdflush:    9 [402b2330, 115]
> > > ... acquired at:
> > >
> > > After further investigation it seems that in
> > > cfi_cmdset_0002.c:do_erase_oneblock,
> > > the code execution does not reach: spin_unlock(chip->mutex).
> > >
> > > Any suggestions, are welcome.
> > >
> > > Thanks in advance,
> > > Teun Grinwis
> > >
> > >
> > >> -----Oorspronkelijk bericht-----
> > >> Van: Teun Grinwis [mailto:[EMAIL PROTECTED]
> > >> Verzonden: donderdag 10 mei 2007 11:15
> > >> Aan: Teun
> > >> Onderwerp: jffs2 on MCF5208 custom board
> > >>
> > >>
> > >>
> > >> Hi Teun,
> > >>
> > >> Teun Grinwis wrote:
> > >>> Hello all,
> > >>> Can someone give hint where to start debug searching ??
> > >>>
> > >>> I use distribution 20060511 2.16.16-uc0 on custom MCF 5208 board.
> > >>> With flash, S29GL064AR4. Debug for mtd, jffs2 set to noisy.
> > >>>
> > >>> When I mount a mtdblock on jffs2 I got the following error:
> > >>>
> > >>> See below.
> > >>> Command: mount -t jffs2 /dev/mtdblock3 /mnt
> > >>> Command:
> > >>> Command:
> > >>> Execution Finished, Exiting
> > >>> mtdblock: read on "Romfs" at 0x3d400, size 0x200
> > >>> ......
> > >> Your root filesystem isn't also on the same flash
> > >> as the JFFS2 you are trying to mount is it?
> > >>
> > >> If you where running apps XIP then this would be a problem.
> > >>
> > >> Regards
> > >> Greg
> > >>
> > >>
> > ------------------------------------------------------------------------
> > >>
> > >> _______________________________________________
> > >> uClinux-dev mailing list
> > >> uClinux-dev@uclinux.org
> > >> http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
> > >> This message was resent by uclinux-dev@uclinux.org
> > >> To unsubscribe see:
> > >> http://mailman.uclinux.org/mailman/options/uclinux-dev
> >
> > --
> > ------------------------------------------------------------------------
> > Greg Ungerer  --  Chief Software Dude       EMAIL:     [EMAIL PROTECTED]
> > Secure Computing Corporation                PHONE:       +61 7 3435 2888
> > 825 Stanley St,                             FAX:         +61 7 3891 3630
> > Woolloongabba, QLD, 4102, Australia         WEB: http://www.SnapGear.com
> > _______________________________________________
> > uClinux-dev mailing list
> > uClinux-dev@uclinux.org
> > http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
> > This message was resent by uclinux-dev@uclinux.org
> > To unsubscribe see:
> > http://mailman.uclinux.org/mailman/options/uclinux-dev
>
> _______________________________________________
> uClinux-dev mailing list
> uClinux-dev@uclinux.org
> http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
> This message was resent by uclinux-dev@uclinux.org
> To unsubscribe see:
> http://mailman.uclinux.org/mailman/options/uclinux-dev

_______________________________________________
uClinux-dev mailing list
uClinux-dev@uclinux.org
http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
This message was resent by uclinux-dev@uclinux.org
To unsubscribe see:
http://mailman.uclinux.org/mailman/options/uclinux-dev

Reply via email to