This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

NOR FLASH on OMAP-L138

Other Parts Discussed in Thread: OMAP-L138, OMAPL138

Dear E2E:

I use OMAP-L138 and NOR FLASH on CS2.

The FLASH is readable only in 16-bit mode.

NOR boot starts with 8-bit mode access (SPRAB41D) page3. Is this correct?

If FLASH is accessible in 16-bit mode only - the ARM will read 4 words - the first two words are the same then to second words which are the same again.

So the ARM will read (word0, word0, word1, word1). Is this correct?

Which byte of the 16-bit word is taken by the ARM as single Byte in Byte access mode? The low byte or upper byte?

We really need the information which is in the lowest byte - bits[7:0] which will be read by ARM correctly.

It looks like the FLASH with 16-bit access will work for us OK. Is it true?

The only we need to know which Byte is used by ARM in Byte access mode.

Please respond on this request - it is very important for us.

Thank you for your help,

Boris Ruvinsky

802-877-4978

 

  • Boris,

    The OMAPL138 is a little-endian device, so bits [7:0] of the NOR configuration word should be written to the very first byte of NOR memory.

    When the bootloader starts in NOR boot mode, the first thing it will do is attempt an 8-bit read of the first  byte of NOR memory.  Even if your flash chip is 16-bit NOR, this should still work.  The bootloader will look at that byte (i.e. byte 0) to determine whether to use 8- or 16-bit NOR access from that point on.  It will then read the entire 32-bit NOR configuration word (in 8- or 16-bit mode as specified) and continue on with the rest of the boot process.

    Hope this helps.  Please let me know if I didn't answer your question.

  • Hi Joe.

    Thank you very much for your help.

    If I understood you correctly - the ARM can switch to 16-bit mode based on the first 8-bit read of the first byte[0] -  bits[7:0]. Is this correct?

    From this point - the ARM will continue in 16-bit mode (as specified in byte[0]). Is this correct?

    If it is correct - the 16-bit FLASH will not cause any problems. Is it true?

    Thank you again for your help,

    Boris Ruvinsky

    802-877-4978

  • Boris,

    Yes, that is correct.

  • Hi Joe.

    Thank you very much for you help.

    It is clear for me now:

    In NOR boot mode with 16-bit FLASH - I should see on oscilloscope 3 read cycles after Power ON:

    1.   The first Read of Bye[0] is 8-bit wide.

    2.  The second and third reads are 16-bit wide of two 16-bit words - [15:0] and [31:16].

    Is this true?

    That is assuming that NOR Boot Configuration Word is set correctly for 16-bit access.

    Thank you again,

    Boris.

  • Boris,

    Yes, that should be what you see.  It may be possible that the bootloader will attempt to read the entire configuration word (i.e. first 32 bits) in 8-bit mode, then re-read it in 8- or 16-bit mode.  I checked with the author of the bootloader, and he is not sure which will happen:

    1. Attempt to read first byte of NOR in 8-bit mode
    2. Read entire configuration word in 8- or 16-bit mode (depending on contents of first byte)

    Or:

    1. Attempt to read entire configuration word in 8-bit mode (only pay attention to first byte)
    2. Read entire configuration word in 8- or 16-bit mode (depending on contents of first byte)

    I would expect the first sequence, but the second may be possible.  Sorry I can't give you a more definite answer.  These should be functionally identical (since only the first byte matters in step 1 either way), but they may look different on an oscilloscope.  Hopefully this is enough to get you started.

  • Hi Joe.

    Thank you very much for your help.

    Boris