MTD and 28F128J3A
Jaap-Jan Boor
jjboor at aimsys.nl
Thu Aug 19 08:50:56 EDT 2004
I got it from here:
http://lists.linuxppc.org/linuxppc-embedded/200312/msg00164.html
On Thu, 2004-08-19 at 14:48, Jaap-Jan Boor wrote:
> Stefan,
>
> what I did is force a checkstop the will result in a processor
> reset before executing 'm8260_gorom()' (this should also reset
> your flash devices) by adding the following code to
> m8260_machine_restart():
>
> static void
> m8260_restart(char *cmd)
> {
> extern void m8260_gorom(bd_t *bi, uint addr);
> uint startaddr;
>
> #ifdef CONFIG_MYSYSTEM
> unsigned long hid0;
> // Need interrupts off to force checkstop
> cli();
> // Checkstop reset enable
> ((immap_t *)IMAP_ADDR)->im_clkrst.car_rmr |= 0x01;
> // Force a checkstop by turning on parity which is not
> // implemented
> hid0 = mfspr(HID0);
> hid0 |= 0x30000000;
> mtspr(HID0, hid0);
> #else
> /* Most boot roms have a warmstart as the second instruction
> * of the reset vector. If that doesn't work for you, change
> * this or the reboot program to send a proper address.
> */
> startaddr = 0xff000104;
>
> if (cmd != NULL) {
> if (!strncmp(cmd, "startaddr=", 10))
> startaddr = simple_strtoul(&cmd[10], NULL, 0);
> }
>
> m8260_gorom((unsigned int)__pa(__res), startaddr);
> #endif
> }
>
> Jaap-Jan
>
>
> On Thu, 2004-08-19 at 13:46, Stefan Stürke wrote:
> > Hi,
> >
> > I have a problem with the 28F128J3A flash during system reboot.
> >
> > Environment:
> >
> > - mpc8270
> > - linuxppc_2_4_devel (snapshot from the denx ppc tree based on 2.4.25)
> > - mtd version included in that tree
> > - a jffs2 file system is mounted on the flash
> >
> > Problem:
> >
> > When I reboot the system, I get a kernel panic right after the jump to
> > the reset vector in m8260_gorom().
> >
> > Using my BDI2000 I was able to find out that the kernel panic occurred
> > because 8260_gorom tries to execute some code in Flash (this is
> > correct because the bootloader is also located in that flash) but the
> > Flash is in query mode at this time. So the correct code could not be
> > read by the processor
> >
> > So my question: Why is the flash left in query mode?
> > I found that also in normal operation the flash is in query mode after
> > writing to it. Is this ok? (I have no problems during normal operation).
> > What can I do to leave the query mode before reboot?
> >
> > When I use the same hardware platform with another flash type
> > AMD29LV128M I have no problems during reboot.
> >
> > One difference I can think of is, that in the case of the
> > 28F128J3A the chips/cfi_cmdset_0001 driver is used, while in the case
> > of the AMD29LV128M the chips/cfi_cmdset_0002 driver is used.
> > Any ideas?
> >
> > Thanks in advance,
> > Stefan
--
J.G.J. Boor Anton Philipsweg 1
Software Engineer 1223 KZ Hilversum
AimSys bv tel. +31 35 689 1941
Postbus 2194, 1200 CD Hilversum mailto:jjboor at aimsys.nl
More information about the linux-mtd
mailing list