AN2311 Freescale Semiconductor / Motorola, AN2311 Datasheet

no-image

AN2311

Manufacturer Part Number
AN2311
Description
Bootstrapping the MSC8101 Device Through the HDI16 Port
Manufacturer
Freescale Semiconductor / Motorola
Datasheet
Application Note
AN2311/D
Rev. 0, 8/2002
Bootstrapping the
MSC8101 Device
Through the HDI16 Port
by Joe Rebello
CONTENTS
1 Hardware
2 Bootstrapping Process .. 5
3 Target Application
4 MSC8101ADS Test
5 Related Documents...... 11
A
Implementation .............. 1
Image ............................. 7
Configuration Example . 9
TS@8fUPf6SS6`8
L
v†‡vtà 
The Motorola StarCore®-based MSC8101 device incorporates a communications processor module
(CPM) with high-speed serial communications interfaces and a system integration unit (SIU). The SIU
can connect to external memory, such as SRAM, Flash, SDRAM, and peripheral devices. The external
system bus can be configured in either a 64-bit or 32-bit wide mode, the latter enabling the use of the
16-bit wide slave Host Data Interface (HDI16). An external host can read and write to the slave HDI16
port to transfer control information and data and to bootstrap the device. When bootstrapping through the
HDI16 port, the external host is required to write the Hard Reset Configuration Word (HRCW) as well as
the desired target application to the slave MSC8101 device. The internal ROM of the slave MSC8101
provides a small bootloader program that receives the application code in a certain format, which it parses
and executes.
This document describes a software driver to bootstrap a slave MSC8101 device through the slave HDI16
port from an external MSC8101 host. The driver software includes a utility to convert an S-record into
the format required by the MSC8101 internal boot ROM. The device driver is provided as an example for
developers and not as a supported product. The physical connections between a host MSC8101 system
bus operating in Single-Master mode and the HDI16 port of the slave MSC8101 are also described. After
a discussion of the boot process through the HDI16 port and a method of creating a code image for the
target slave DSP, there is an example hardware set-up of two MSC8101 Application Development
System (MSC8101ADS) boards and instructions on how to run the example code.
1
The HDI16 port operation requires two MSC8101 devices (a host and a slave), with the system bus of the
host connected to the HDI16 port of the slave (see Figure 1). The host accesses the HDI16 port of the
slave device as a memory-mapped region. The host gains access through the system bus using its own
memory controller UPM-controlled chip select. The HDI16 port has two chip select signals that are
logically ORed internally. The first (
broadcasts data to a number of devices—for example, in DSP farm applications. For the driver discussed
here,
connection between the host system bus and slave HDI16 port is
bus connected so that
(
The slave HDI16 port generates interrupts to the host in either single or dual request mode. Dual request
mode is usually preferred because separate request lines indicate a read (
whereas the single request mode indicates only that HDI16 is ready to read or write data. Therefore, the
host must poll the HDI16 registers to determine whether the request is for a read or a write, thus adding
overhead. Since sufficient
two request lines from the slave MSC8101 connect to
options.
HRD
CS6
) and write (
Hardware Implementation
Freescale Semiconductor, Inc.
on the host DSP connects to
For More Information On This Product,
HWR
A[27–30]
Go to: www.freescale.com
) data strobes connected to
IRQ
inputs are available on the host, the driver uses dual request mode. The
HA[0–3]
HCS1
HCS1
) selects individual devices, and the other (
. The interface uses the dual strobe mode with separate read
of the slave. The HDI16 port is big-endian, so the data bus
PGPL2
IRQ[4–5]
and
PDQM0
on the host for interrupt servicing
D[0–15]
, respectively, on the host.
HRRQ
HD[0–15]
) or write (
HCS2
, with the address
HTRQ
) typically
) request,

Related parts for AN2311

AN2311 Summary of contents

Page 1

... Freescale Semiconductor, Inc. Application Note AN2311/D Rev. 0, 8/2002 Bootstrapping the MSC8101 Device Through the HDI16 Port by Joe Rebello The Motorola StarCore®-based MSC8101 device incorporates a communications processor module (CPM) with high-speed serial communications interfaces and a system integration unit (SIU). The SIU can connect to external memory, such as SRAM, Flash, SDRAM, and peripheral devices ...

Page 2

Hardware Implementation Figure 1. MSC8101 Host to HDI16 Hardware Interface At power-on reset, several pins that determine the boot source and chip mode of operation are sampled. Table 1 shows the pins that enable the MSC8101 for HDI16 operation in ...

Page 3

Freescale Semiconductor, Inc. Slave Figure 2. DSP Farm System The UPM-controlled HDI16 read and write accesses are illustrated in Figure 3 and Figure 4, respectively. Both the read and write accesses on the system bus operating in Single-Master MSC8101 mode ...

Page 4

Hardware Implementation CLKIN A[0–31 HCS BS = HWR D[0–15] PSDVAL NOTE: The txx numbers refer to the MSC8101 timing specification. For details, see the MSC8101 Technical Data sheet. To program the UPM with the memory ...

Page 5

Freescale Semiconductor, Inc. For the example driver, the register settings shown in Table 3 are required. Register OR6 MAMR BCR 2 Bootstrapping Process When the HDI16 mode of operation is selected, an external host must bootstrap the device. This section ...

Page 6

Bootstrapping Process Load Host Interface Write Reset Configuration Word 5 Read Size and Address From Array Size = 0? Write Two 16-Bit Words Length and Two 16-Bit Words Address Write Data and CRC No Data Complete? Yes 4 6 Yes ...

Page 7

Freescale Semiconductor, Inc. 3 Target Application Image The bootstrap process over the HDI16 port requires data to be transferred in blocks. Table 4 shows the block format. Word The MSC8101 ROM resident ...

Page 8

... The slave application files are compiled, assembled, and linked to produce an ELF object (.eld file) using the MetroWerks® Codewarrior® tools. This file is then converted to an S-record using the elfsrec.exe application provided with the Codewarrior tools. The application is invoked with the following DOS command: elfsrec.exe -w < ...

Page 9

Freescale Semiconductor, Inc. 4 MSC8101ADS Test Configuration Example A simple example of bootstrapping the MSC8101 through the HDI16 is provided to test the hardware interconnection and software driver functionality. The test software initializes the host memory controller so that the ...

Page 10

MSC8101ADS Test Configuration Example Switch SW10 SW1 Connect the two MSC8101ADS boards using the wiring description in Table 8. Host Board Pin (P1)C4 (P1)C5 (P1)A15 (P1)A14 (P1)A13 (P1)A12 (P1)D9 (P1)D4 (P1)C14 (P1)C15 (P1)C16 (P1)C17 (P1)C18 (P1)C19 (P1)C20 (P1)C21 (P1)C22 (P1)C23 ...

Page 11

... The slave image C file is created as follows: 1. Load the slave application project into the CodeWarrior tools by double clicking on the led_flash.mcp file in ...\hdi16_appnote\Led_flash\build\. 2. Build the project to create the .eld file, which is named starcore.eld. Close the project. 3. Execute the elfsrec utility in a DOS window using the command line: elfsrec -w starcore ...

Page 12

Related Documents /* ASCII characters */ #define CHAR_NUMBER0 #define CHAR_NUMBER1 #define CHAR_NUMBER2 #define CHAR_NUMBER3 #define CHAR_NUMBER4 #define CHAR_NUMBER5 #define CHAR_NUMBER6 #define CHAR_NUMBER7 #define CHAR_NUMBER8 #define CHAR_NUMBER9 #define CHAR_LETTER_A #define CHAR_LETTER_B #define CHAR_LETTER_C #define CHAR_LETTER_D #define CHAR_LETTER_E #define CHAR_LETTER_F void main(int ...

Page 13

Freescale Semiconductor, Inc. ucCh0 = getc(pfiIn); ucCh1 = getc(pfiIn); if ((ucCh0==’S’)&&(ucCh1==’0’)) { uliCounter = 0x0000; for (ulii=0; ulii < 2; ulii++) { uliCounter <<= 4; ucLength = getc(pfiIn); if (ucLength == CHAR_NUMBER1) uliCounter |= 0x0001; if (ucLength == CHAR_NUMBER2) uliCounter ...

Page 14

Related Documents for (ulii=0; ulii < 2; ulii++) { } uliSize = uliCounter-4; uliRemainder=(uliSize+4)%8; /* add 4 bytes for bootload crc and */ if (uliRemainder != uliSize = (uliSize+uliRemainder)/2; if (uliSize <= 0xF else { ...

Page 15

Freescale Semiconductor, Inc. for (ulii=0; ulii<((uliCounter-4)/2); ulii++) { putc(’,’,pfiOut); putc(’0’,pfiOut); putc(’x’,pfiOut); for (ulij=0; ulij<4; ulij++) { aucTemp[0] = getc(pfiIn); putc(aucTemp[0],pfiOut ucLength of block is not divisible by 8 bytes add padding words (uliRemainder != ...

Page 16

... StarCore are trademarks of Motorola, Inc. Metrowerks and CodeWarrior are registered trademarks of Metrowerks Corp. in the U.S. and/or other countries. All other product or service names are the property of their respective owners. Motorola, Inc Equal Opportunity/Affirmative Action Employer. © Motorola, Inc. 2002 AN2311/D For More Information On This Product, Go to: www.freescale.com ...

Related keywords