This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Can't mount FS on NAND

Hi all.
I'm trying to mount file system on NAND flash MT29F1G08ABADAH4. I'm using cortex m4.
Here are my NAND setting:

#define NAND0_ENABLE 1
#define NAND0_TYPE 0
#define NAND0_DRIVER 0
#define NAND0_DEV_NUM 0
#define NAND0_PAGE_SIZE 2112
#define NAND0_PAGE_COUNT 64
#define NAND0_BLOCK_COUNT 1024 // 128Mb
#define NAND0_PAGE_CACHE 8
#define NAND0_BLOCK_CACHE 16
#define NAND0_SW_ECC 1
#define NAND0_CACHE_SIZE 4
#define NAND0_CACHE_RELOC 0
#define NAND0_CACHE_ADDR 0x80000000
#define NAND0_FAT_JOURNAL 1
#define NAND0_DEFAULT_DRIVE 1

I've tried to use example from MDK 5.0:File System Component:System Routines:fmount:

void main (void) {

if (finit ("N:") != fsOK) {// error handling} if (fmount ("N:") != fsOK) {// error handling} // do smth funmount ("M:"); funinit ("M:");
}

So, i've got a problem:
finit("N0:") returnk OK, but fmount("N0:") fails with "fsMediaError" code

Can anybody help me?

Parents
  • It seems that the problem is in incorrect base, ALE and CLE addresses in NAND Mem bus config module.
    I've found in datasheets that CLE connected to PTD[8], ALE to PTD[9]. I cannot understand just one thing: what is the "base address" means: is it base address NFC, base address of PORTD or base address of GPIO at all?
    Now my config looks like a:

    #define NAND_DEV0_ADDR_BASE 0x400A8000
    #define NAND_DEV0_ADDR_ALE 0x400FF0E0
    #define NAND_DEV0_ADDR_CLE 0x400FF0E4

Reply
  • It seems that the problem is in incorrect base, ALE and CLE addresses in NAND Mem bus config module.
    I've found in datasheets that CLE connected to PTD[8], ALE to PTD[9]. I cannot understand just one thing: what is the "base address" means: is it base address NFC, base address of PORTD or base address of GPIO at all?
    Now my config looks like a:

    #define NAND_DEV0_ADDR_BASE 0x400A8000
    #define NAND_DEV0_ADDR_ALE 0x400FF0E0
    #define NAND_DEV0_ADDR_CLE 0x400FF0E4

Children
  • Perhaps stating the processor/chip implementation you're using, and citing some documentation might assist others providing you with some insight?

    Do have the external bus configured, and clocked correctly?

    Can you access/probe the NAND device, and say get an ID out of it independently of the MDK code? Have you validated the NAND and external bus interface?