C-Boot ROM Description
584
SPRUH22I – April 2012 – Revised November 2019
Copyright © 2012–2019, Texas Instruments Incorporated
ROM Code and Peripheral Booting
6.6.9 C-Boot ROM MTOC IPC Commands
To enable master subsystem applications control how the C28x control subsystem boots, C-Boot ROM
supports IPC commands given in
C-Boot ROM enables PIE to handle MTOCIPCINT1 interrupt, this interrupt will be triggered to C28x CPU
of the control subsystem when bit 0 of MTOCIPCINTFLG register is set by the master subsystem. Only
this interrupt is configured and handled by C-BootROM all other interrupts in PIE are disabled and/or
ignored, but in case if they are triggered an IPC message as described in section 1.6.12 will be sent to the
master subsystem.
Please refer to IPC section of
System Control and Interrupts
chapter for more details on IPC module
registers.
The master subsystem application uses IPC between C-BootROM and master application to get the
booting related data from Master system or to tell the control subsystem to fetch boot related data from its
own peripherals or to tell the control subsystem boot ROM to just service the IPC commands from master.
MTOCIPCINT1 interrupt handler function looks into MTOCIPCOMMAND registers, decodes the IPC
commands and if it is a valid command handles the command.
6.6.9.1
Procedure for Master Subsystem Application to Send IPC Commands to C-Boot ROM and Wait
for Response
The procedure for the master subsystem application software to send an IPC command to C-Boot ROM is
as below.
1. Write command to MTOCIPCCOM register
2. Write address to MTOCIPCADDR register.
3. Write data to MTOCIPCDATAW register
4. Set bit 31 in MTOCIPCSET register. C-Boot ROM will ignore the command if both bit 31 and bit 0 of
MTOCIPCFLG register are not set.
5. Set bit 0 in MTOCIPCSET register. This will set bit 0 in MTOCIPCFLG register and trigger
MTOCIPCINT1 to the control subsystem C28X CPU.
6. Master subsystem software will wait for MTOCIPCFLG[0] to be cleared by C-Boot ROM:
•
a. if MTOCIPCFLG[0] is cleared and MTOCIPCFLG[31] is not cleared it should understand that the
command it sent was invalid or an error occurred, in this case the master subsystem application
software can look at the MTOCIPCDATAR register to know more about the error occurred and why
C-Boot ROM NAK’d the IPC command.
•
b. If both MTOCIPCFLG[0] and MTOCIPCFLG[31] are cleared by C-Boot ROM then master will
know that the command was executed successfully and it will take MTOCIPCDATAR register into
consideration as shown in
based on the command.
7. Master application software will have to clear MTOCIPCFLG[31] if it wasn’t cleared by C-Boot ROM
and only MTOCIPCFLG[0] is cleared by C-Boot ROM, in error cases.
shows the procedure to be followed by the master subsystem application.