AnsweredAssumed Answered

P1013 Bus monitor timeout

Question asked by Steven Snyder on Apr 26, 2016
Latest reply on Apr 28, 2016 by alexander.yakovlev

I'm getting a Bus Monitor timeout error when attempting to read from NAND flash on my P1013-based board.

 

So address I/O[0..7] pins on the flash part (MT29F8G08ADBDAH4-IT) tied to P1013 LB_AD[0..7].

 

This is the set-up, to make the NAND chip accessible:

 

// LAWBAR6 - Local Bus NAND

    //   bit 8 - 31 = 0xEFF00000 - base addr

    MM_LAWBAR6 = 0x000eff00;

   

    // LAWAR6

    //   bit 0 = 1 - enable window

    //   bit 7-11 = 00100 - Local Bus

    //   bit 26-31 = 001111 64k - size

    MM_LAWAR6 = 0x8040000f;

 

    // CS0 - NAND Flash    

    //   BR0 base address at 0xEFF00000, port size 8 bit, FCM

    eLBC_BR0 = 0xEFF00C21;

    //   OR0 64KB flash size, FCM (large page NAND Flash)

    eLBC_ORf0 = 0xFFFF07AE;

 

    // Flash Timeout: 8,388,608 cycles of LCLK

    eLBC_FMR = 0x0000F000;

 

And this is an attempt to read the signature from the NAND part:

 

  eLBC_FCR = 0x90000000;   // Cmd Reg: "READ ID " cmd, no-op, no-op, no-op

    eLBC_MDRf = 0x00000000;     // Data Reg: set flash offset as zero

    eLBC_FPARl = 0x00000000;    // Flash Page Reg: set page #0

    eLBC_FIR = 0x43BBBBB0; // Instruct Reg: stream of 4-bit opcodes
    eLBC_FMR = 0x0000F002;   // Mode Reg: exec cmds in FIR on next LSOR write
    eLBC_LSOR = 0x00000000;  // trigger actions on NAND on Bank 0

   

    wait(200);   // NOTE: wait time can be reduced by clocking the eLBC at higher speed

    eLBC_NAND_Data = eLBC_MDRf;    // copy read value to variable for return

 

When I do that write to LSOR, I get:

 

    LTESR == 0x00000001

    LTEATR == 0x10040801

 

These indicate a Bus Monitor timeout on read.  Also, I do not see activity on CS0 when viewed with a logic analyzer.

 

Any thoughts as to why I'm getting the timeouts?

 

Thanks.

Outcomes