Hi,

I checked "drivers/mtd/nand/m5329.c" in the newer version BSP. I also
tried copying this file from newer version BSP to my BSP which is based
on earlier version BSP. It could not get compiled. The interface to this
driver is changed. That's why I want to patch my current version BSP.

The newer version BSP doesn't work for me. The uclinux stops after a
couple of hours running. But my current version is working fine. That's
another reason I don't want to move the newer version.


If you know something about JFFS2, can I ask some question about it?

1) what's the difference between "flash_eraseall" and "flash_erase"? If
I have 2 partition on the same NAND flash and I just want to erase one
of the partitions, which one should I use? "flash_erase"?

2) Do I need to erase the partition every time I need to update the
files in that partition? Can I just update the files without erasing the
partition?

3) For JFFS2, I have to create a JFFS2 image and copy to the JFFS2
partition? Can I just copy a file to the JFFS2 partition without
generating a JFFS2 image?


Thanks,

Allen



-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Matt Waddel
Sent: Thursday, April 24, 2008 11:43 AM
To: uClinux development list
Subject: Re: [uClinux-dev] 2 partitions on M5329EVB NAND flash and
JFFS2doesn't work

Hi Allen,

NAND software didn't work in the earlier version of this BSP.

If you want to continue using the older version of this BSP
you should download the newer version and look at the changes
in:

drivers/mtd/nand/m5329.c &
arch/m68knommu/platform/532x/config.c

Regards,
Matt

Allen Yang wrote:
> Hi, uClinux experts.
> 
> I am using Freescale M5329EVB and Freescale's uClinux BSP
> (ltib-m532xevb-20061117).
> 
> I am trying to use 2 partitions on M5329EVB NAND flash. Each partition
> has 8MB. I use the first 8MB with YAFFS file system for LogicLoader
> bootloader. This partition has the whole uClinux image.
> 
> I use the second 8MB with JFFS2 file system for my application data.
> 
> It seems that I got the 2 partitions:
> 
> # cat /proc/mtd
> dev:    size   erasesize  name
> mtd0: 002f0000 00001000 "ROMfs"
> mtd1: 00800000 00004000 "M5329 NAND flash partition 1"
> mtd2: 00800000 00004000 "M5329 NAND flash partition 2"
> 
> 
> I am trying to use flash_erase to erase the second partition:
> 
> # /usr/bin/flash_erase /dev/mtd2
> Erase Total 1 Units
> Performing Flash Erase of length 16384 at offset 0x0 done
> 
> 
> The output message is normal? If I use flash_eraseall to erase mtd2,
> then the whole NAND flash (mtd1 and mtd2) will be erased. That's not
> what I need. I want to keep the first partition (uClinux image)
> untouched.
> 
> 
> After I erased mtd2 with the above command, I tried to copy some files
> to mtdblock2 and mount it. I got a lot of errors:
> 
> # mount -t jffs2 /dev/mtdblock2 /mnt
> jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000000:
> 0x6246 instead
> jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0000000c:
> 0x0001 instead
> jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000010:
> 0x0002 instead
> jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000014:
> 0x0002 instead
> jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0000001c:
> 0x0002 instead
> jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000028:
> 0x466d instead
> jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000044:
> 0x9dce instead
> jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000048:
> 0x205f instead
> jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x0000004c:
> 0x42a7 instead
> jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found at 0x00000050:
> 0x0001 instead
> Further such events for this erase block will not be printed
> Empty flash at 0x00001264 ends at 0x00001268
> Empty flash at 0x00001554 ends at 0x00001558
> Empty flash at 0x000016b4 ends at 0x000016b8
> Empty flash at 0x00001988 ends at 0x0000198c
> 
> 
> 
> I manually merged the following patch submitted by Andrea Tarani. But
it
> still doesn't work.
> 
> Any body has any idea on what's happening?
> 
> 
> Thanks in advance.
> 
> Allen
> 
> 
> 
> 
>
========================================================================
> ===
> diff U3b
>
Z:/uClinux_linux-2.6.x_arch/m68knommu/platform/532x/config.c@@/main/anta
> _EMV_Mod3/1
>
Z:/wipe/linux-2.6.x/arch/m68knommu/platform/532x/config.c@@/main/anta_EM
> V_Mod3/2
> ---
>
Z:/uClinux_linux-2.6.x_arch/m68knommu/platform/532x/config.c@@/main/anta
> _EMV_Mod3/1 Fri Sep 15 16:59:33 2006
> +++
>
Z:/wipe/linux-2.6.x/arch/m68knommu/platform/532x/config.c@@/main/anta_EM
> V_Mod3/2 Mon Oct 02 14:41:44 2006
> @@ -47,6 +47,21 @@
>  
>  
>
/***********************************************************************
> ****/
>  
> +int sys_clk_khz = 0;
> +int sys_clk_mhz = 0;
> +
> +void wtm_init(void);
> +void scm_init(void);
> +void gpio_init(void);
> +void fbcs_init(void);
> +void sdramc_init(void);
> +int  clock_pll (int fsys, int flags);
> +int  clock_limp (int);
> +int  clock_exit_limp (void);
> +int  get_sys_clock (void);
> +
>
+/**********************************************************************
> *****/
> +
>  /*
>   * DMA channel base address table.
>   */
> @@ -91,6 +106,9 @@
>  
>  void config_BSP(char *commandp, int size)
>  {
> + sys_clk_khz = get_sys_clock();
> + sys_clk_mhz = sys_clk_khz/1000;
> +
>   mcf_setimr(MCFSIM_IMR_MASKALL);
>  
>  #if defined(CONFIG_BOOTPARAM)
> @@ -168,24 +186,9 @@
>  
>  #define NAND_FLASH_ADDRESS (0xD0000000)
>  
> -int sys_clk_khz = 0;
> -int sys_clk_mhz = 0;
> -
> -void wtm_init(void);
> -void scm_init(void);
> -void gpio_init(void);
> -void fbcs_init(void);
> -void sdramc_init(void);
> -int  clock_pll (int fsys, int flags);
> -int  clock_limp (int);
> -int  clock_exit_limp (void);
> -int  get_sys_clock (void);
>  
>  asmlinkage void __init sysinit(void)
>  {
> - sys_clk_khz = clock_pll(0, 0);
> - sys_clk_mhz = sys_clk_khz/1000;
> - 
>   wtm_init();
>   scm_init();
>   gpio_init();
> @@ -234,14 +237,14 @@
>   /* Initialize latch to drive signals to inactive states */
>   *((u16 *)(0x10080000)) = 0xFFFF;
>  
> - /* External SRAM */
> - MCF_FBCS1_CSAR = EXT_SRAM_ADDRESS;
> - MCF_FBCS1_CSCR = (MCF_FBCS_CSCR_PS_16
> -   | MCF_FBCS_CSCR_AA
> -   | MCF_FBCS_CSCR_SBM
> -   | MCF_FBCS_CSCR_WS(1));
> - MCF_FBCS1_CSMR = (MCF_FBCS_CSMR_BAM_512K
> -   | MCF_FBCS_CSMR_V);
> +// /* External SRAM */
> +// MCF_FBCS1_CSAR = EXT_SRAM_ADDRESS;
> +// MCF_FBCS1_CSCR = (MCF_FBCS_CSCR_PS_16
> +//   | MCF_FBCS_CSCR_AA
> +//   | MCF_FBCS_CSCR_SBM
> +//   | MCF_FBCS_CSCR_WS(1));
> +// MCF_FBCS1_CSMR = (MCF_FBCS_CSMR_BAM_512K
> +//   | MCF_FBCS_CSMR_V);
>  
>   /* Boot Flash connected to FBCS0 */
>   MCF_FBCS0_CSAR = FLASH_ADDRESS;
> diff U3b
> Z:/uClinux_linux-2.6.x_drivers/mtd/nand/m5329.c@@/main/anta_EMV_Mod3/1
> Z:/wipe/linux-2.6.x/drivers/mtd/nand/m5329.c@@/main/anta_EMV_Mod3/2
> ---
> Z:/uClinux_linux-2.6.x_drivers/mtd/nand/m5329.c@@/main/anta_EMV_Mod3/1
> Fri Sep 15 17:48:45 2006
> +++
Z:/wipe/linux-2.6.x/drivers/mtd/nand/m5329.c@@/main/anta_EMV_Mod3/2
> Fri Sep 29 09:21:32 2006
> @@ -36,6 +36,9 @@
>  /*
>   * Values specific to the SPIA board (used with EP7212 processor)
>   */
> +#define NAND_FLASH_CE  ((u16 *)(0x10080000))
> +#define NCE_LOW_VAL   0xfbfb
> +#define NCE_HIGH_VAL  0xffff
>  #define NAND_FLASH_ADDRESS 0xd0000000 /* Fash address mapping */
>  
>  #define CLE_ADDR_BIT  4
> @@ -90,10 +93,12 @@
>    m5329_fio_base &= ~(1<<ALE_ADDR_BIT);
>    break;
>   case NAND_CTL_SETNCE: 
> -  m5329_fio_base &= ~(1<<NCE_ADDR_BIT);
> +  *NAND_FLASH_CE = NCE_LOW_VAL;
> +//  m5329_fio_base &= ~(1<<NCE_ADDR_BIT);
>    break;
>   case NAND_CTL_CLRNCE: 
> -  m5329_fio_base |= 1<NCE_ADDR_BIT;
> +  *NAND_FLASH_CE = NCE_HIGH_VAL;
> +//  m5329_fio_base |= 1<NCE_ADDR_BIT;
>    break;
>   }
>   /* Set address of NAND IO lines */
> @@ -135,6 +140,8 @@
>  
>   /* Link the private data with the MTD structure */
>   m5329_mtd->priv = this;
> +
> + *NAND_FLASH_CE = NCE_HIGH_VAL;
>  
>   /* Set address of NAND IO lines */
>   this->IO_ADDR_R = (void __iomem *) m5329_fio_base;
>
========================================================================
> ===
> 
> 
> 
> 
> 
> The information contained in this email and attachments to this email
are the proprietary and confidential property 
> of Nucomm, Inc.  The information is provided in strict confidence and
shall not be reproduced, copied, or
> used (partially or wholly) in any manner without prior, express
written authorization of Nucomm, Inc.
> 
> _______________________________________________
> 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