Microsemi SmartDesign MSS Embedded Nonvolatile Memory (eNVM) User Guide
- June 9, 2024
- Microsemi
Table of Contents
- Microsemi SmartDesign MSS Embedded Nonvolatile Memory (eNVM)
- Introduction
- Creating and Configuring Clients
- eNVM Content Description
- Configuring an Initialization Client
- Memory File Formats
- MOTOROLA S-record
- Interpreting Memory Content
- Product Support
- References
- Read User Manual Online (PDF format)
- Download This Manual (PDF format)
Microsemi SmartDesign MSS Embedded Nonvolatile Memory (eNVM)
Introduction
The MSS Embedded Nonvolatile Memory (eNVM) configurator enables you to create
various memory regions (clients) that need to be programmed in the SmartFusion
device eNVM block(s).
In this document we describe in details how to configure the eNVM block(s).
For more details about eNVM, please refer to the Actel SmartFusion
Microcontroller Subsystem User’s Guide.
Important Information About eNVM User Pages
The MSS configurator uses a certain number of user eNVM pages to store the MSS
configuration. These pages are located at the top of the eNVM address space.
The number of pages is variable based on the your MSS configuration (ACE,
GPIOs and eNVM Init Clients). Your application code should not write in these
user pages as it will most likely cause a runtime failure for your design.
Note also that if these pages have been corrupted by mistake, the part will
not boot again and will need to be re-programmed.
The first ‘reserved’ address can be computed as follows. After the MSS has
been successfully generated, open the eNVM configurator and record the number
of available pages shown in the Usage Statistics group on the main page. The
first reserved address is defined as:
first_reserved_address = 0x60000000 + (available_pages * 128)
Creating and Configuring Clients
Creating Clients
The main page of the eNVM configurator enables you to add various clients to your eNVM block. There are 2 available client types:
- Data Storage client – Use the data storage client to define a generic memory region in the eNVM block. This region can be used to hold your application code or any other data content that your application may need.
- Initialization client – Use the initialization client to define a memory region that needs to be copied at system boot time at a specified Cortex-M3 address location.
The main grid also displays characteristics of any configured clients. These characteristics are:
- Client Type – Type of the client that is added to the system
- Client Name – Name of the client. It must be unique across the system.
- Start Address – The address in hex at which the client is located in eNVM. It must be on a page boundary. No overlapping addresses between different clients are allowed.
- Word Size – Word size of the client in bits
- Page Start – Page on which the start address begins.
- Page End – Page on which the client memory region ends. It is automatically computed based on the start address, word size, and number of words for a client.
- Initialization Order – This field is not used by the SmartFusion eNVM configurator.
- Lock Start Address – Specify this option if you do not want the eNVM configurator to change your start address when hitting the “Optimize” button.
Usage statistics are also reported:
- Available Pages – Total number of pages available to create clients. The number of available pages varies based on how the overall MSS is configured. For instance, the ACE configuration takes up user pages where ACE initialization data is programmed in eNVM.
- Used Pages – Total number of pages used by the configured clients.
- Free Pages – Total number of pages still available for configuring data storage and initialization clients.
Use the Optimize feature to resolve the conflicts on overlapping base addresses for clients. This operation will not modify the base addresses for any clients that have Lock Start Address checked (as shown in the Figure 1-1 ).
Configuring a Data Storage Client
In the Client Configuration dialog you need to specify the values listed below.
eNVM Content Description
- Content – Specify the memory content that you want to program into eNVM. You may choose one of the two following options:
- Memory File – You need to select a file on disk that matches one of the following memory file formats – Intel-Hex, Motorola-S, Actel-S or Actel-Binary. See “Memory File Formats” on page 9 for more information.
- No content – The client is a place holder. You will be available to load a memory file using FlashPro/FlashPoint at programming time without having to go back to this configurator.
- Use absolute addressing – Lets the memory content file dictate where the client is placed in the eNVM block. The addressing in the memory content file for the client becomes absolute to the whole eNVM block. Once you choose the absolute addressing option, the software extracts the smallest address from the memory content file and uses that address as the start address for the client.
- Start Address – The eNVM address where the content is programmed.
- Size of Word – Word size, in bits, of the initialized client; can be either 8, 16 or 32.
- Number of words – Number of words of the client.
JTAG Protection
Prevents read and write of eNVM content from JTAG port. This is a security feature for application code (Figure 1-2).
Configuring an Initialization Client
For this client, the eNVM content and JTAG protection information is the same as the one described in “Configuring a Data Storage Client” on page 6.
Destination Information
- Target address – The address of your storage element in terms of the Cortex-M3 system memory map. Certain regions of the system memory map are not allowed to be specified for this client because they contain reserved system blocks. The tool informs you of the legal regions for your client.
- Transaction size – The size (8, 16 or 32) of the APB transfers when the data is copied from the eNVM memory region to the target destination by the Actel system boot code.
- Number of writes – The number of APB transfers when the data is copied from the eNVM memory region to the target destination by the Actel system boot code. This field is automatically computed by the tool based on the eNVM content information (size and number of words) and the destination transaction size (as shown in Figure 1-3).
Memory File Formats
The following memory file formats are available as input files into the eNVM Configurator:
- INTEL-HEX
- MOTOROLA S-record
- Actel BINARY
- ACTEL-HEX
INTEL-HEX
Industry standard file. Extensions are HEX and IHX. For example, file2.hex or
file3.ihx.
A standard format created by Intel. Memory contents are stored in ASCII files
using hexadecimal characters. Each file contains a series of records (lines of
text) delimited by new line, ‘\n’, characters and each record starts with a
‘:’ character. For more information regarding this format, refer to the Intel-
Hex Record Format Specification document available on the web (search Intel
Hexadecimal Object File for several examples).
The Intel Hex Record is composed of five fields and arranged as follows:
:llaaaatt[dd…]cc
Where:
- : is the start code of every Intel Hex record
- ll is the byte count of the data field
- aaaa is the 16-bit address of the beginning of the memory position for the data. Address is big endian.
- tt is record type, defines the data field:
- 00 data record
- 01 end of file record
- 02 extended segment address record
- 03 start segment address record (ignored by Actel tools)
- 04 extended linear address record
- 05 start linear address record (ignored by Actel tools)
- [dd…] is a sequence of n bytes of the data; n is equivalent to what was specified in the ll field
- cc is a checksum of count, address, and data
Example Intel Hex Record:
:10000000112233445566778899FFFA
Where 11 is the LSB and FF is the MSB.
MOTOROLA S-record
Industry standard file. File extension is S, such as file4.s
This format uses ASCII files, hex characters, and records to specify memory
content in much the same way that Intel-Hex does. Refer to the Motorola
S-record description document for more information on this format (search
Motorola S-record description for several examples). The RAM Content Manager
uses only the S1 through S3 record types; the others are ignored.
The major difference between Intel-Hex and Motorola S-record is the record
formats, and some extra error checking features that are incorporated into
Motorola S.
In both formats, memory content is specified by providing a starting address
and a data set. The upper bits of the data set are loaded into the starting
address and leftovers overflow into the adjacent addresses until the entire
data set has been used.
The Motorola S-record is composed of 6 fields and arranged as follows:
Stllaaaa[dd…]cc
Where:
- S is the start code of every Motorola S-record
- t is record type, defines the data field
- ll is the byte count of the data field
- aaaa is a 16-bit address of the beginning of the memory position for the data. Address is big endian.
- [dd…] is a sequence of n bytes of the data; n is equivalent to what was specified in the ll field
- cc is the checksum of count, address, and data
Example Motorola S-Record:
S10a0000112233445566778899FFFA
Where 11 is the LSB and FF is the MSB.
Actel Binary
The simplest memory format. Each memory file contains as many rows as there
are words. Each row is one word, where the number of binary digits equals the
word size in bits. This format has a very strict syntax. The word size and
number of rows must match exactly. The file extension is MEM; for example,
file1.mem.
Example: Depth 6, Width is 8
01010011
11111111
01010101
11100010
10101010
11110000
Actel HEX
A simple address/data pair format. All the addresses that have content are
specified. Addresses with no content specified will be initialized to zeroes.
The file extension is AHX, such as filex.ahx. The format is:
AA:D0D1D2
Where AA is the address location in hex. D0 is the MSB and D2 is the LSB.
The data size must match the word size. Example: Depth 6, Width is 8
00:FF
01:AB
02:CD
03:EF
04:12
05:BB
All other addresses will be zeroes.
Interpreting Memory Content
Absolute vs. Relative Addressing
In Relative Addressing, the addresses in the memory content file did not
determine where the client was placed in memory. You specify the location of
the client by entering the start address. This becomes the 0 address from the
memory content file perspective and the client is populated accordingly.
For example, if we place a client at 0x80 and the content of the memory file
is as follows:
Address: 0x0000 data: 0102030405060708
Address: 0x0008 data: 090A0B0C0D0E0F10
Then the first set of bytes of this data is written to address 0x80 + 0000 in
the eNVM block. The second set of bytes is written to address 0x80 + 0008 =
0x88, and so on.
Thus the addresses in the memory content file are relative to the client
itself. Where the client is placed in memory is secondary.
For absolute addressing, the memory content file dictates where the client is
placed in the eNVM block. So the addressing in the memory content file for the
client becomes absolute to the whole eNVM block. Once you enable absolute
addressing option, the software extracts the smallest address from the memory
content file and uses that address as the start address for the client.
Data Interpretation Example
The following examples illustrate how the data is interpreted for various word
sizes:
For the given data: FF 11 EE 22 DD 33 CC 44 BB 55 (where 55 is the MSB and FF
is the LSB)
For 32-bit word size:
0x22EE11FF (address 0)
0x44CC33DD (address 1)
0x000055BB (address 2)
For 16-bit word size:
0x11FF (address 0)
0x22EE (address 1)
0x33DD (address 2)
0x44CC (address 3)
0x55BB (address 4)
For 8-bit word size:
0xFF (address 0)
0x11 (address 1)
0xEE (address 2)
0x22 (address 3)
0xDD (address 4)
0x33 (address 5)
0xCC (address 6)
0x44 (address 7)
0xBB (address 8)
0x55 (address 9)
Product Support
The Microsemi SoC Products Group backs its products with various support services including a Customer Technical Support Center and Non-Technical Customer Service. This appendix contains information about contacting the SoC Products Group and using these support services.
Contacting the Customer Technical Support Center
Microsemi staffs its Customer Technical Support Center with highly skilled engineers who can help answer your hardware, software, and design questions. The Customer Technical Support Center spends a great deal of time creating application notes and answers to FAQs. So, before you contact us, please visit our online resources. It is very likely we have already answered your questions.
Technical Support
Microsemi customers can receive technical support on Microsemi SoC products by
calling Technical Support Hotline anytime Monday through Friday. Customers
also have the option to interactively submit and track cases online at My
Cases or submit questions through email anytime during the week.
Web: www.actel.com/mycases
Phone (North America): 1.800.262.1060
Phone (International): +1 650.318.4460
Email: soc_tech@microsemi.com
ITAR Technical Support
Microsemi customers can receive ITAR technical support on Microsemi SoC
products by calling ITAR Technical Support Hotline: Monday through Friday,
from 9 AM to 6 PM Pacific Time. Customers also have the option to
interactively submit and track cases online at My Cases or submit questions
through email anytime during the week.
Web: www.actel.com/mycases
Phone (North America): 1.888.988.ITAR
Phone (International): +1 650.318.4900
Email: soc_tech_itar@microsemi.com
Non-Technical Customer Service
Contact Customer Service for non-technical product support, such as product
pricing, product upgrades, update information, order status, and
authorization.
Microsemi’s customer service representatives are available Monday through
Friday, from 8 AM to 5 PM Pacific Time, to answer non-technical questions.
Phone: +1 650.318.2470
Microsemi Corporation (NASDAQ: MSCC) offers the industry’s most comprehensive portfolio of semiconductor technology. Committed to solving the most critical system challenges, Microsemi’s products include high-performance, high- reliability analog and RF devices, mixed signal integrated circuits, FPGAs and customizable SoCs, and complete subsystems. Microsemi serves leading system manufacturers around the world in the defense, security, aerospace, enterprise, commercial, and industrial markets. Learn more at www.microsemi.com.
Corporate Headquarters
Microsemi Corporation 2381 Morse Avenue Irvine, CA
92614-6233
USA
Phone 949-221-7100
Fax 949-756-0308
SoC
Products Group 2061 Stierlin Court Mountain View, CA 94043-4655
USA
Phone 650.318.4200
Fax 650.318.4600
www.actel.com
SoC Products Group (Europe) River Court, Meadows Business Park Station
Approach, Blackwatery Camberley Surrey GU17 9AB United Kingdom
Phone +44 (0) 1276 609 300
Fax +44 (0) 1276 607 540
SoC Products Group (Japan) EXOS Ebisu Building 4F
1-24-14 Ebisu Shibuya-ku Tokyo 150 Japan
Phone +81.03.3445.7671
Fax +81.03.3445.7668
SoC Products Group (Hong Kong) Room 2107, China Resources Building 26 Harbour
Road
Wanchai, Hong Kong
Phone +852 2185 6460
Fax +852 2185 6488
© 2010 Microsemi Corporation. All rights reserved. Microsemi and the Microsemi logo are trademarks of Microsemi Corporation. All other trademarks and service marks are the property of their respective owners.
References
- FPGAs and PLDs | Microchip Technology
- FPGAs and PLDs | Microchip Technology
- FPGAs and PLDs | Microchip Technology
- Microsemi | Semiconductor & System Solutions | Power Matters
Read User Manual Online (PDF format)
Read User Manual Online (PDF format) >>