Data Sheet
June 2001
DSP16410B Digital Signal Processor
206
Agere Systems—Proprietary
Use pursuant to Company instructions
Agere Systems Inc.
5 Processor Boot-Up and Memory Download
(continued)
5.1 IROM Boot Routine and Host Download Via PIU
(continued)
The host accesses DSP16410B memory by executing commands that cause the PIU to use the DMAU bypass
channel for downloading. See
Section 4.15.5 on page 144
for details. When the host has completed the down-
load, it asserts the PHINT interrupt and sets the PHINT interrupt pending status field (
ins
[13]—see
Table 150 on
page 239
) by writing the HINT field (
PCON
[4]—see
Table 73 on page 133
). After each boot routine detects the
assertion of PHINT, it branches to the first location of TPRAM (TPRAM0 for CORE0 and TPRAM1 for CORE1).
The boot routine is shown below:
.rsect “.rom”
// Address 0x20000
goto PUPBOOT
// Branch to boot routine.
// Other Vectors, HDS code, and Production test code go here.
.rsect “.PowerUpBoot”
// Address 20800
PUPBOOT:
pollboot:
pt0=0
a0=ins
a0 & 0x0000002000
if eq goto pollboot
r0=0x41000
a0=0x0010
ins=0xffff
*r0=a0
a0=0; r0=0
goto pt0
// Check ins[PHINT].
// Wait for ins[PHINT] to be set.
// Point to the PCON register.
// Clear pending interrupts in ins.
// Write PCON to clear HINT bit.
// Cleanup.
// Jump to user code.
5.2 EROM Boot Routine and DMAU Download
CORE0 and CORE1 both boot from EROM at address 0x80000 if the EXM pin is high when RSTN is deasserted.
The cores access EROM via the SEMI, and the SEMI interleaves the accesses so that CORE0 executes the
instruction at address 0x80000 first, then CORE1 executes the instruction at address 0x80000 next, etc. The user
must place a boot routine for both cores into EROM prior to reset. This boot routine can contain instructions to
download code and data from ERAM to internal memory (TPRAM0 and TPRAM1) via the DMAU. The download
can be performed either by both cores or by one core while the other core waits. In either case, the boot routine
must distinguish whether CORE0 or CORE1 is executing it. It does this by reading the processor ID (
pid
) register
(
Table 153 on page 239
). The contents of CORE0’s
pid
register is 0x0 and the contents of CORE1’s
pid
register is
0x1. After determining the processor ID, the boot routine can branch to the correct boot procedure for that core.
Once the download is complete, both cores can terminate their boot procedures by executing the following instruc-
tions:
pt0=0x0
nop
goto pt0
This causes CORE0 to begin executing instructions at address 0x0 of TPRAM0 and CORE1 to begin executing
instructions at address 0x0 of TPRAM1.