Guidelines for Boot ROM Application Writers
616
SPRUH22I – April 2012 – Revised November 2019
Copyright © 2012–2019, Texas Instruments Incorporated
ROM Code and Peripheral Booting
Note:
Refer to the next section for more details on the control subsystem RAM-INIT procedure shown in
. The master application can avoid this procedure if the control subsystem application in flash
takes care of this by itself or if the user’s application code, downloaded to M0 RAM. zero-initializes all the
control subsystem RAMs before using them.
6.7.2 Master Subsystem Application Procedure to Initialize the Control Subsystem RAM
Using IPC
As explained in
, all the control subsystem RAM, except for M0 RAM must be zero-Initialized
before they are used by the control subsystem applications. This is to avoid un-wanted RAM ECC errors
because of uninitialized RAM locations.
MOTC IPC commands should be used by the master subsystem application to set bits in control
subsystem registers to zero-Initialize all control subsystem memories. The following code shows the
procedure in detail.
Below are some defines that the code uses for ease of implementation. These registers are explicitly
defined and described in the
Internal Memory
chapter. The functions below use the IPCLITE driver library
software to send IPC commands to C-Boot ROM. The IPCLITE driver library is released as part of header
files.
Disclaimer:-
Copyright (c) 2008-2011 Texas Instruments Incorporated. All rights reserved.
Software License Agreement Texas Instruments (TI) is supplying this software for use solely and
exclusively on TI's microcontroller products. The software is owned by TI and/or its suppliers, and is
protected under applicable copyright laws. You may not combine this software with "viral" open-source
software in order to form a larger program.
THIS SOFTWARE IS PROVIDED "AS IS" AND WITH ALL FAULTS. NO WARRANTIES, WHETHER
EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
TI SHALL NOT, UNDER ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR
CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
#define CCORE_M0M1_CTOM_MSG_RAM_INIT_REG_ADDR
0x4920
#define CCORE_M0M1_CTOM_MSG_RAM_INIT_DONE_REG_ADDR
0x4930
#define CCORE_L0L4_RAM_INIT_REG_ADDR
0x4922
#define CCORE_L0_L4_RAM_INIT_DONE_REG_ADDR
0x4932
#define CCORE_L0_RAM_INIT_DONE_BIT
0x01
#define CCORE_L1_RAM_INIT_DONE_BIT
0x04
#define CCORE_L2_RAM_INIT_DONE_BIT
0x10
#define CCORE_L3_RAM_INIT_DONE_BIT
0x40
#define CCORE_L0_RAM_INIT_BIT
0x01
#define CCORE_L1_RAM_INIT_BIT
0x04
#define CCORE_L2_RAM_INIT_BIT
0x10
#define CCORE_L3_RAM_INIT_BIT
0x40
#define CCORE_M1_RAM_INIT_BIT
0x04
#define CCORE_CTOM_MSG_RAM_INIT_BIT
0x10
#define CCORE_M1_RAM_INIT_DONE_BIT
0x04
#define CCORE_CTOM_MSG_RAM_INIT_DONE_BIT
0x10
/*Function Name:
master_ram_init_control_m1_msgram_memories
* Description:-
Function called to Zero-Initialize control subsystem M1 and Message RAM memories
*
using MTOCIPC commands to C-Boot ROM
*
*/
void master_ram_init_control_m1_msgram_memories()
{
unsigned int ii = 0;
//RAM INIT for M1, and CTOM MsgRAM - M0 RAM INIT is done by C-BootROM
IPCLiteMtoCSetBits_Protected( IPC_FLAG1,
CCORE_M0M1_CTOM_MSG_RAM_INIT_REG_ADDR ,