2 Learning Objectives Need for a bootloader. What happens during a reset.Boot modes and processes.Memory map.
3 What is the bootloader?VCCVCCBoot ConfigAddr0000EMIFL2 CacheL1P Cache000100020003...CPUEPROMDMAL1D CacheC6211/C6711When the DSP is NOT powered or under reset the internal program memory is in a random state.
4 What is the bootloader?VCCVCCBoot ConfigAddr00000000EMIFL2 CacheL1P Cache000100010002000200030003...CPUEPROMDMAPC=0003PC=0000PC=0001PC=0002L1D CacheC6211/C6711When the DSP is powered and the CPU is taken out of reset the internal memory is still in a random state and the program will start running for address zero.
5 What is the bootloader?VCCVCCBoot ConfigEMIFL2 CacheL1P CacheCPUEPROMDMAL1D CacheC6211/C6711With the boot, a portion of code can be automatically copied from external to internal memory.
6 What happens at reset: System timeline /RS pinCPU ResetDevice ResetWhen the device is held in reset:The device is initialised to the default state.Most 3-state outputs are in the high impedance state.
7 What happens at reset: System timeline /RS pinCPU ResetDevice ResetCPU ResetBoot load in operationOn the rising edge of the /RS pin:The processor checks the boot mode configuration (HD[4:3]) and starts the boot loader.The EDMA automatically copies 1K bytes from the beginning of CE1 location to the internal program memory starting at address zero.
8 What happens at reset: System timeline /RS pinCPU ResetDevice ResetCPU ResetBoot load in operationOnce the boot loader has finished initialising the internal memory the CPU is taken out of reset.The CPU starts running from address zero.
9 ‘C6211 and ‘C6711 Memory mapThe ‘C6211 and ‘C6711 has only one memory map, MAP0.Internal memory is always located at address zero.Internal memory can be used as either program or data.
11 Boot modes and processes Two questions need to be answered about the bootloader, these are:What methods of boot are available and how are they selected?How does the DSP know what type of memory it is going to boot from?
12 Bootloader operational modes The TMS320C6211 and ‘C6711 support the following boot configurations:(1) Host Port Interface (HPI) boot.(2) 8-bit ROM boot.(3) 16-bit ROM boot.(4) 32-bit ROM boot.Note: with the ‘C6211 and ‘C6711 there is no “no-boot” mode as for the other ‘C6000 processors.
13 Bootloader configuration The boot mode is selected by pulling the HD[4:3] pins (HPI data bus pins) high or low at reset.Depending on the voltages on this pins one of the four modes is selected.Boot modeHPI boot8-bit ROM boot16-bit ROM boot32-bit ROM bootHD[4:3]00011011
14 Endianess configuration The endian mode is determined at the same time as boot mode.Pulling pin HD high or low selects the following endian modes.Device operationBig endianLittle endianHD1Note: ensure that the software development tools are also configured with the same endian type as the hardware.
15 Clock mode configuration The input clock mode is also determined at the same time as boot mode.Pulling CLKMODE0 pin high or low selects the following modes.PLL frequency multiplierNo multiplicationInput frequency is multiplied by 4CLKMODE01
16 Boot process: HPI boot mode In this mode the following sequence is used:The CPU is held in reset while the remaining of the device is released.The host processor initialises the CPU’s memory space through the HPI.When all the necessary memory is initialised the host processor takes the CPU out of reset by writing a ‘1’ to the DSPINT bit filed of the Host Port Interface Control (HPIC) register.DSPINT HPIC17
18 Boot process: HPI boot mode Question: How does the host processor check that the memory has been initialised correctly?Answer: The host can read and write to any address so it can check by reading the ‘initialised’ memory.
19 Boot process: HPI boot mode Question: If an external memory needs to be initialised via the HPI how do you ensure that the EMIF is set correctly?Answer: The first thing the Host should do is to write the EMIF register then write to the external memory locations.
20 Boot process: ROM boot mode In this mode the following sequence is used:The CPU is held in reset while the bootloader operates.The bootloader copies 1Kbytes from CE1 with the default settings to internal memory at address zero.CPU is taken out of reset.CPU starts running code from address zero.