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.

66AK2H EMIF16 access

Guru 10570 points

Other Parts Discussed in Thread: 66AK2H12

Hello,
When C66x/ARM reads/writes to EMIF16, it occurs twice 16bit accesses on EMIF16 on 66AK2H.
I would like to clarify:
When 32bit access via EMIF16 performed, which address occur first, lower address(LSB)? or upper address(MSB)?

There are four cases in 66AK2H12/06:
a) C66x read
  LDW 0x30000000
           1) 16bit read at 0x30000000 --> 16bit read at 0x30000002
           2) 16bit read at 0x30000002 --> 16bit read at 0x30000000
     Which is correct 1) or 2)?

b) C66x write
  STW 0x30000000
          1) 0x30000000 at 16bit write --> 16bit write at 0x30000002
          2) 0x30000002 at 16bit write --> 16bit write at 0x30000000
     Which is correct 1) or 2)?

c) CA15 read
     LDR 0x30000000
         1) 16bit read at 0x30000000 --> 16bit read at 0x30000002
         2) 16bit read at 0x30000002 --> 16bit read at 0x30000000
    Which is correct 1) or 2)?

d) CA15 write
    STR 0x30000000
        1) 0x30000000 at 16bit write --> 16bit write at 0x30000002
        2) 0x30000002 at 16bit write --> 16bit write at 0x30000000
    Which is correct 1) or 2)?

============================================================
My examination is following:

About case "b) C66x write"
    It depends on LENDIAN pin state about C66x side access:
    When I set LENDIAN high (means Little Endian):
    - RCSR (0x21000a00) = 0x40000205 // Little endian
    - SYSENDSTAT (0x02620710) = 1 // Little endian
    - At result, I could see lower address(LSB) first on EMIF16 write access by oscilloscope.

    When I set LENDIAN low (means Big Endian):
    - RCSR (0x21000a00) = 0xC0000205 // Big endian
    - SYSENDSTAT (0x02620710) = 0 // Big endian
    - At result, I could see upper address(MSB) first on EMIF16 write access by oscilloscope.

About case "d) CA15 write"
    It is not related to the LENDIAN pin configuration:
    Both results were lower address(LSB) first by oscilloscope.

Best regards, RY

  • Hi RY,

    The LENDIAN pin only sets the endianess of the C66. The ARM endian is set separately. Was there a question in the post? When you accessed the data was it incorrectly read?

    Regards, Bill

  • Bill-san,

    I am going to connect FPGA via EMIF16.
    I need to know clearly how to EMIF16 endianness is decided during access from C66x and ARM.

    Qustion)
    i) For C66x access, EMIF16 endianness is decided by LENDIAN pin state. Is that right?

    ii) For ARM access, EMIF16 endianness is decided by ARM endian. Is that right?

    If ii) is yes,
    iii) How can I configure register of ARM endianess?

    Best regards, RY

  • Bill-san,

    Sorry, my question was confusing.
    I would like to close this post.

    Instead, I posted another thread:
    http://e2e.ti.com/support/dsp/c6000_multi-core_dsps/f/639/t/338950.aspx

    Best regards, RY