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.

About 36 bit address and 40 bit address in keystone

Other Parts Discussed in Thread: TCI6638K2K

Hi,all:

1.

I found 36bit address in the datasheet about memory map on C6678 in keystone1.

Also I found 40bit address in the datasheet  of tci6638k2k in keystone2.

Why we need 40bit address?

Was the 40bit address in the keystone2 virtual address or physical address?

Before I just heard virtual address in the ARM linux which had MMU.

But DSP didn't had MMU.why 40bit address appear?

2.

How to access the 40 bit address in keystone2?

I saw the 40bit address range from 0x8 0000 0000 to 0x8 7fff ffff in the memory map of tci6638k2k

But when I view the value of that memory range with start address 0x8 0000 0000

in CCS->memory window.CCS hinted that the address was out of range.

Why?   Didn't I directly accessed the 40bit address from DSP side in CCS from 0x8 0000 0000 to 0x8 7fff ffff?

From DSP side in the CCS not from ARM side.How could I accessed that 40 bit address?

Was that address range virtual address or physical address?

Thanks ,any help will be appreciated.

  • Hi, Steve,

    Please see answers inline.

    1.

    I found 36bit address in the datasheet about memory map on C6678 in keystone1.

    Also I found 40bit address in the datasheet  of tci6638k2k in keystone2.

    Why we need 40bit address? (ARMv7 supports address translation up to 40 bit. WIth 32 bit, only 4GB can be addressed)

    Was the 40bit address in the keystone2 virtual address or physical address? (It is physical address)

    Before I just heard virtual address in the ARM linux which had MMU.

    But DSP didn't had MMU.why 40bit address appear? (Please see note 8 of Memory Map Table for DSP accessing 40 bit address. More details about MPAX at the end)

    2.

    How to access the 40 bit address in keystone2? (From ARM side, if lpae is enabled, use 40 bit addressing 0x8 0000 0000 for example. Another example can be seen in u-boot env: args_ramfs=setenv bootargs ${bootargs} earlyprintk rdinit=/sbin/init rw root=/dev/ram0 initrd=0x802000000,9M.  It refers to 36 bit address. For DSP, please see answer at the end)

    I saw the 40bit address range from 0x8 0000 0000 to 0x8 7fff ffff in the memory map of tci6638k2k

    But when I view the value of that memory range with start address 0x8 0000 0000

    in CCS->memory window.CCS hinted that the address was out of range.

    Why?   Didn't I directly accessed the 40bit address from DSP side in CCS from 0x8 0000 0000 to 0x8 7fff ffff?

    From DSP side in the CCS not from ARM side.How could I accessed that 40 bit address?

    (DSP only supports 32-bit address, but this 32-bit address can be mapped anywhere onto 36-bit physical address space through MPAX (Memory Protection and Extension). Please refer to the C66 CorePac User's Guide (Chapter 7.3), http://www.ti.com/general/docs/lit/getliterature.tsp?literatureNumber=sprugw0c&fileType=pdf )

    Was that address range virtual address or physical address? (The 36 bit address is physical.Thereis a 10-bit window needs to be specified of which the 36-bit physical address will be accessed in CCS.  We have steps for C6678, but let me see if I can get/translate the steps for K2X to access the memory you tried to)