Intel
®
81341 and 81342 I/O Processors
December 2007
Developer’s Manual
Order Number: 315037-002US
733
Exception Initiator and Boot Sequence—Intel
®
81341 and 81342
10.3.2
81341 and 81342 Boot Sequence
The next sections describe the boot sequence options for 81341 and 81342. 81341 and
81342 consists of two Intel XScale
®
processors (coreID0 and coreID1).
10.3.2.1 Boot Sequence — coreID0 and coreID1 simultaneous start running
from Flash Memory
The following steps can apply to either core running first. For example, there is no
restriction on which core starts running first. Software can control how to synchronize
the two cores. This is a scenario where both cores are allowed to run after reset is de-
asserted. This example also demonstrates how one core (coreID0) in the system can
act as a master core and be able to synchronize with the slave core (coreID1) during
the initialization sequence. The synchronization is done by software using the coreIDs.
1. Pull external straps HOLD_X0_IN_RST# and HOLD_X1_IN_RST# high in order to
allow coreID0 and coreID1 to start running after reset is deasserted.
2. coreID0 (master core) would run by initializing adequate elements of the system,
while coreID1 (slave core) would also run but eventually wait in a software loop —
waiting for the software interrupt pending register to be written by the master core.
3. After the master core (coreID0) has completed enough initialization, it can initiate
a software interrupt to the slave core (coreID1) which will cause the software
interrupt pending register to alter. The slave core would then exit the software loop
and proceed with its normal execution based on the content of the software
interrupt pending register.
10.3.2.2 Boot Sequence — Both coreID0 and coreID1 run from SRAM Memory
(no Flash Memory)
The following steps can apply to either core running first. For example, there is no
restriction on which core starts running first. Software can control how to synchronize
the two cores.
1. Pull external straps HOLD_X0_IN_RST# and HOLD_X1_IN_RST# low in order to
hold coreID0 and CoreID1 in reset.
2. The Host processor, via the host interface, would scrub the SRAM memory,
download code into SRAM, and setup the SRAM Base Address Registers to 0 0000
0000H. This would allow the core access to be claimed by the SRAM MCU during
boot.
3. The Host processor would then clear the HOLD_X0_IN_RST# bit while still keeping
coreID1 in reset.
4. coreID0 would start to run from SRAM memory, initialize the system.
5. coreID0 would then clear the HOLD_X1_IN_RST# bit to release coreID1 from reset.
6. coreID1 would start running from SRAM Memory address.