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.

DM8168 DVR-RDK M3 memory map

Other Parts Discussed in Thread: SYSBIOS

I am looking into the feasibility of mapping a chip select
from the vpss M3 on a custom board.
The virtual->physical memory map is specified in

    dvr_rdk/mcfw/src_bios6/cfg/ti816x/AMMU_m3.cfg

One of the small page mappings would be sufficient,
but all 10 small page mappings are specified already.

The last eight small page mappings are used for L2 cache,
so they cannot be changed.

Would it be possible to remove the first two mappings

    logical 0x00000000 -> physical 0x55020000

    logical 0x40000000 -> physical 0x55080000

and use them for my own chip select mapping below?

    logical 0x03000000 -> physical 0x03000000

I cannot see where the logical addresses 0x00000000..0x00003fff
and 0x40000000..0x40003fff are used in the code --
and there is an overlapping large page mapping for
logical address 0x40000000..0x5fffffff.

Regards,

John Whittington

  • You cannot remove the first 2 small page mapping. They are mapped by hardware and are required for the functioning of the device.

      logical 0x00000000 -> physical 0x55020000 - This is required because M3 on taken out of reset jumps to logical address 0 which is mapped to L2 start address and reset vector is placed at that address by sysbios.

       logical 0x40000000 -> physical 0x55080000 - This maps the  start of config space for MMU/Cache etc to logical address 0x4000_0000. All memory mapped register addresses are based on this.

     

    If you want additional small pages remove

    AMMU.smallPages[9].pageEnabled = AMMU.Enable_YES;
    AMMU.smallPages[9].logicalAddress = 0x20020000;
    AMMU.smallPages[9].translatedAddress = 0x55040000;
    AMMU.smallPages[9].translationEnabled = AMMU.Enable_YES;
    AMMU.smallPages[9].size = AMMU.Small_16K;
    AMMU.smallPages[9].L1_cacheable = AMMU.CachePolicy_CACHEABLE;
    AMMU.smallPages[9].L1_posted = AMMU.PostedPolicy_POSTED;
    AMMU.smallPages[9].L1_writePolicy = AMMU.WritePolicy_WRITE_BACK;
    AMMU.smallPages[9].L1_allocate = AMMU.AllocatePolicy_ALLOCATE;
    AMMU.smallPages[9].L2_cacheable = AMMU.CachePolicy_NON_CACHEABLE;
    AMMU.smallPages[9].L2_posted = AMMU.PostedPolicy_NON_POSTED;

    Check in the map file 0x20020000 is not used.