
DM648 EVM BSL V0.3.0.0
----------------------



1-Introduction
  ------------

The BSL includes basic functionnality to control EVM peripheral modules. Examples are provided as a way to understand
how to use the BSL modules to control EVM peripherals. The design of the BSL is trying to avoid embedding any DSP
peripheral modules code in it. The BSL is not designed to be used in a multitasking environment. So care must be
taken if used in this situation to guarantee that no BSL function could be run at the same time as another. If used in
a DSP/BIOS application, it is usually safe to assume that it could be used in the main function (for initialization
purposes), before the task switching or interrupts are enable. BSL modules usually do not include code to control DSP
peripherals and has been architecture to be mostly independant of DSP peripherals (for most of the BSL modules). So
user is free to use these BSL modules with the most appropriate way of programming related DSP peripherals (polling mode,
edma mode, interrupt mode) in the user application. Examples are provided with some DSP peripherals functionnality,
but this is only as a way to explain how to use the BSL peripherals modules. User must understand that examples are
in no way a complete dsp peripheral implementation, and the dsp peripherals routines are only used to allow a complete
and working BSL modules example.

This BSL release includes drivers for these peripherals:
I2C           (evm_i2c.h: Basic low level I2C routines necessary for EVM control, usually these functions are not directly
               used by the end user).
EVM           (evm.h: EVM Initialization, evm mux control and other routines).
ECP           (evm_ecp.h: MSP430 control).
TLV320AIC33   (evm_aic33.h: Audio codecs).
SAA7105       (evm_a7105.h: SD video display Svideo/composite video output, *only NTSC SD video ouput is possible*).
THS8200       (evm_s8200.h: HD video display, component video output, *only NTSC SD video ouput is possible*).
TVP5154       (evm_p5154: SD video capture, *only NTSC video capture is possible*).




2-Preparation
  -----------

Before using the BSL (compiling examples), you must download TI DM648 dsp CSL available on the TI web site. This BSL
is based on DM648 CSL Release v3.00.02.00. Install the CSL and take a note of the CSL installation directory.

You must create an environment variable DM648_CSL_DIR to be set to the CSL installation directory (use windows control
panel, system, advanced, environment variables: and create a "system variables" with the name DM648_CSL_DIR).

Example: CSL was installed in directory "c:\csl_DM648", DM648_CSL_DIR environnment variable value must be set to
"c:\csl_DM648".




3-Compiling BSL Examples
  ----------------------

This BSL was compiled with CCS v3.3 updated with "C6000 Code Generation Tools 6.0.14". Once the DM648 CSL (see sect 2) is
installed with environment variable DM648_CSL_DIR created, you are ready to compile any BSL examples located under
"BSL\Example" directory.

You can also use BSL examples (like the "MuxControl" example) as a starting point for building other evm test functions.
For this purpose, read carefully the "BSL\Inc" include files to understand how to use each BSL function in details. Most
of BSL peripherals module functions have error codes returned list which is included near the beginning of module ".h"
file. There are also basic setup data structures for most of the modules. User can create new data structures to configure
the evm peripherals in a different way if necessary (look at the peripheral setup data structure format for each module).




4-Know Issues
  -----------

1- Function "EVM_lockresource" cannot be used to configure the "Uart/Spi" mux of evm for beta boards. The workaround is to
manually set the evm dip SW (switche 6 of Bank SW3: ON=UART, OFF=SPI) for the desired peripheral function before evm power
on.

2- While using audio codec AIC33 module, there is more noise on codec audio outputs than expected. There is no known
workaround for the moment. Most of the time, the noise seems not to be in audible range.

3- If user is burning programs in flash memory, care has to be taken before using BSL modules. There is a known issue
where the I2C primary bus (used by BSL modules) is not ready shortly after the board is powered on. If this situation
happens, dsp boot code must add delays before 1st using the BSL modules.

