uCLinux powered Microsemi SmartFusion2 SoC FPGA system design

FPGAs offer certain unique advantages over general embedded computing devices especially concerning incorporating custom logic and providing a high level of data security. Along with embedded hardware and software services, Embien Technologies has been supporting customers with its FPGA design expertise thereby acting as a one-stop vendor needed for any embedded product development. Working with leading FPGA vendors like Intel(Altera), Xilinx, Microsemi(Actel), and Cypress, Embien has executed numerous FPGA related projects successfully. In one such case, for a defense customer, Embien designed and developed the complete FPGA and software solution for a data security product. The overview of the uCLinux powered Microsemi SmartFusion2 SoC FPGA system design is covered in this case study.

SoC FPGAs

The earlier FPGA’s are purely programmable blocks, where all the needed interfaces/computational blocks are required to be programmed on to the same. But adding sophisticated interfaces like PCIe, Ethernet, etc needed more powerful software, typically a full-fledged operating system that needed a powerful processor core. Though it is possible to add it over software, integrating it as a hard IP is a better way. Typically ARM cores are added at the heart of the FPGA with programmable logic elements around them. Later many more hardware IPs like PCIe, DDR controller, etc are added, and SoC FPGAs are born.

While all the major FPGA vendors offer Soc FPGAs, considering various aspects of this product design, Microsemi’s (earlier Actel) offerings are chosen for the same. Microsemi has a series of FPGA’s that offers such hard IPs integrated - SmartFusion2. Their family of SmartFusion2 SoC FPGA devices are extremely flexible offering numerous hard functionality and 150K LEs. Powered by an ARM Cortex-M3 core, it has peripheral sets including CAN, WDT, SPI, UART, I2C, Timers, DDR, USB, DMA etc. It also incorporates various security blocks such as AES256, SHA256, RNG units, and Secure boot for the MCU core and FPGA. The family is available in a variety of package options that can be chosen based on the product footprint. Such an SoC FPGA is highly suitable for defense applications. The block diagram of the Microsemi SmartFusion2 SoC FPGA family is depicted below.

microsemi-smartfusion2-soc-fpga

Microsemi SmartFusion2 SoC FPGA Architecture

uCLinux for ARM Cortex-M MCUs

Linux is undoubtedly the most popular OS in the embedded space. The mainline kernel supports a variety of architectures that supports MMU. It is essential for the underlying processor running Linux to have MMU as it is needed for virtual memory, the separation between processes, process and kernel space, memory protection, dynamic allocation, etc. With low-end cores like the Cortex-M3 that are not having an MMU, it is not possible to run the conventional Linux on them. But the flexibility of Linux is too large to be ignored that there is a considerable amount of open source community effort going to its MMU-less variant – uCLinux.

uCLinux offers all the major features of Linux including device drivers, applications, memory allocation, etc and runs on low power systems without MMU. With uCLinux for ARM Cortex-M MCUs, it is possible to leverage the Memory Protection Unit available in the Cortex M3. Though there are limitations, with careful design it is possible to achieve a good performance with uCLinux.

SmartFusion2 SoC-based system design

After careful consideration of the requirements and knowing customer preferences, the overall design is done. M2S060 is chosen as the primary processing element. Other peripherals that are not available in the SmartFusion2 SoC-based system are added either as software IP (such as LCD controller, keypad, etc) or as external devices (EEPROM, Flash memories), etc.

All layers of software required to build the complete solution around the chip-set are identified and brought up. BSP for uCLinux for ARM Cortex-M MCUs is ported on to the SmartFusion2 SoC-based system and run in an XIP (Execute in place) configuration. Non-standard drivers are developed/ported on to the platform. Data from external communication interfaces are processed with the Programmable logic units and internal security blocks that are exported via proper device driver interfaces.

Secure boot features are enabled to prevent tampering of the boot process. Application space libraries are created to provide an efficient API interface to the higher application. Data processing and security management are handled both by Embien and Customer together. The boot time is also reduced for a faster responsiveness.

The Microsemi SmartFusion2 SoC FPGA system was subjected to thorough tests to validate the functionality as well as its reliability. Finally Embien did a complete design transfer to the customer including the source code, hardware and FPGA design files and an extensive documentation over an on-site training program.

Feel free to get in engage with us in realizing your Soc FPGAs/FPGAs based design along with our hardware and software development expertise, a powerful combination that you can leverage. Engaging will be a huge advantage for your product development in terms of faster time to market and reduced the total cost of product ownership.