From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from a80-127-156-242.adsl.xs4all.nl ([80.127.156.242] helo=linserv001.aimsys.nl) by canuck.infradead.org with esmtp (Exim 4.33 #1 (Red Hat Linux)) id 1BxmLz-0001Vo-Lc for linux-mtd@lists.infradead.org; Thu, 19 Aug 2004 08:49:19 -0400 From: Jaap-Jan Boor To: Stefan =?ISO-8859-1?Q?St=FCrke?= In-Reply-To: References: Content-Type: text/plain; charset=ISO-8859-15 Message-Id: <1092919733.23187.34.camel@linpc003.aimsys.nl> Mime-Version: 1.0 Date: Thu, 19 Aug 2004 14:48:54 +0200 Content-Transfer-Encoding: 8bit Cc: linux-mtd@lists.infradead.org Subject: Re: MTD and 28F128J3A List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , 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@aimsys.nl