================================================================================
                SmartFusion2 System Services Read Version example
================================================================================

This example project demonstrates the use of the SmartFusion2 System Services
functions:
    - MSS_SYS_get_serial_number()
    - MSS_SYS_get_user_code()
    - MSS_SYS_get_design_version()
    - MSS_SYS_get_device_certificate()
    - MSS_SYS_check_digest()

--------------------------------------------------------------------------------
                            How to use this example
--------------------------------------------------------------------------------
This example project requires MMUART0 to be connected to a host PC. The host PC
must connect to the serial port using a terminal emulator such as HyperTerminal
or PuTTY configured as follows:
    - 115200 baud
    - 8 data bits
    - 1 stop bit
    - no parity
    - no flow control

The example project will display the following information about the
SmartFusion2 device on which it is executed:
    - device serial number
    - user code
    - design version
    - device certificate
    - digest status

--------------------------------------------------------------------------------
                                Target hardware
--------------------------------------------------------------------------------
This example project is targeted at a SmartFusion2 design which has MMUART0
enabled and connected to a host PC. The example project is built for a design
using a SmartFusion2 MSS APB clock frequency of 83MHz. Trying to execute this
example project on a different design will result in incorrect baud rate being
used by MMUART0 or no output if MMUART0 is not enabled and connected.

This example project can be used with another design using a different clock
configuration. This can be achieved by overwriting the content of this example
project's "drivers_config/sys_config" folder with the one generated by Libero
as part of your design's creation.

--------------------------------------------------------------------------------
     Redirecting MMUART0 to RS232 connector on SmartFusion2 Development Kit
--------------------------------------------------------------------------------
Please note that it is possible to redirect MMUART0 to the J198 RS232 connector
on the SmartFusion2 Development Kit despite J198 being connected to the MMUART1
SmartFusion2 pads. This can be done in your hardware design by selecting to
direct the MMUART0 TXD and RXD signals to the FPGA fabric and then connecting
these signals to top level ports assigned to pin H30 for TXD and pin G29 for
RXD.

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
                          Silicon revision dependencies
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
This example is built to execute on an M2S050T die (M2S050T revision D). You
will need to overwrite this example project's "drivers_config/sys_config" and
"CMSIS" folders with the one generated by Libero for your hardware design if
using a newer silicon revision.
The "drivers_config/sys_config" folder contains information about your hardware
design. This information is used by the CMSIS to initialize clock frequencies
global variables which are used by the SmartFusion2 drivers to derive baud
rates. The CMSIS boot code may also complete the device's clock configuration
depending on silicon version. The "CMSIS" and "drivers_config/sys_config" for
your design can be found in the "firmware" folder of your Libero design.


