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.

CCS/AM6548: Partition7 write lock key registers access

Part Number: AM6548
Other Parts Discussed in Thread: SYSBIOS

Tool/software: Code Composer Studio

Hello,

Environment:

  • Hardware: AM65x EVM board
  • Software: minimal example code with SYS/BIOS w/o any modification

The experiment steps are like:

  • connecting the M3 and R5
  • the memory browser shows the values of CTRLMMR_LOCK7_KICK0 & CTRLMMR_LOCK7_KICK1 both are zero 
  • loading my bare-mental code with SYS/BIOS
  • the memory browser shows the values of CTRLMMR_LOCK7_KICK0 & CTRLMMR_LOCK7_KICK1 both are ?????????
  • and my code cannot read/write CTRLMMR_LOCK7_KICK0 & CTRLMMR_LOCK7_KICK1 as well
    • reading these two registers causes data abort
    • writing these two registers and nothing changed

I m new to SYS/BIOS and just import the minimal example code without any modification. Could someone provide any comments?

  • Hi,

    I suspect the issue is caused by incorrect MPU settings for access to the KICK registers. Please try adding these files to your project:

    • <PDK>\packages\ti\build\am65xx\sysbios_r5f.cfg
    • <PDK>\packages\ti\build\am65xx\r5_mpu.xs
    • <PDK>\packages\ti\build\am65xx\linker_r5_sysbios.lds

    Your bare metal code should work properly for the GPIO. However, for MMR unlock and pinmux you should use the Board_init() API function instead of bare metal code:

    boardCfg = BOARD_INIT_PINMUX_CONFIG |
               BOARD_INIT_UNLOCK_MMR |
               BOARD_INIT_UART_STDIO;
    Board_init(boardCfg);

    Please find details in the PRSDK documentation here: http://software-dl.ti.com/processor-sdk-rtos/esd/docs/06_01_00_08/rtos/index_board.html#board-apis. Note the Board_init() should only be called from one core for a multi-core application.

    Regards,
    Frank

  • Hello Frank,

    Thanks for the reply!

    The following things are necessary for me to configure KICK registers.

    • <PDK>\packages\ti\build\am65xx\r5_mpu.xs
    • <PDK>\packages\ti\build\am65xx\linker_r5_sysbios.lds
    • Add xdc.loadCapsule("r5_mpu.xs"); in the app.cfg

    Regards,
    Hungwei