AN 802: Intel® Stratix® 10 SoC Device Design Guidelines
ID
683117
Date
8/05/2021
Public
1. Introduction to the Intel® Stratix® 10 SoC Device Design Guidelines
2. Board Design Guidelines for Stratix 10 SoC FPGAs
3. Interfacing to the FPGA for Stratix 10 SoC FPGAs
4. System Considerations for Stratix 10 SoC FPGAs
5. Embedded Software Design Guidelines for Intel® Stratix® 10 SoC FPGAs
6. Recommended Resources for Stratix 10 SoC FPGAs
2.1. Pin Connection Considerations for Board Design
2.2. HPS Clocking and Reset Design Considerations
2.3. Design Considerations for Connecting Device I/O to HPS Peripherals and Memory
2.4. Design Guidelines for HPS Interfaces
2.5. HPS EMIF Design Considerations
2.6. HPS Memory Debug
2.7. Boundary Scan for HPS
2.8. Embedded Software Debugging and Trace
2.9. Board Design Guidelines for Intel® Stratix® 10 SoC FPGAs Revision History
3.1. Overview of HPS Memory-Mapped Interfaces
3.2. Recommended System Topologies
3.3. Recommended Starting Point for HPS-to-FPGA Interface Designs
3.4. Timing Closure for FPGA Accelerators
3.5. Information on How to Configure and Use the Bridges
3.6. Interfacing to the FPGA for Intel® Stratix® 10 SoC FPGAs Revision History
5.1. Overview
5.2. Assembling the Components of Your Software Development Platform
5.3. Golden Hardware Reference Design (GHRD)
5.4. Selecting an Operating System for Your Application
5.5. Assembling Your Software Development Platform for Linux*
5.6. Assembling your Software Development Platform for a Bare-Metal Application
5.7. Assembling your Software Development Platform for Partner OS or RTOS
5.8. Choosing the Bootloader Software
5.9. Selecting Software Tools for Development, Debug and Trace
5.10. Boot And Configuration Considerations
5.11. System Reset Considerations
5.12. Flash Considerations
5.13. Embedded Software Debugging and Trace
5.14. Embedded Software Design Guidelines for Intel® Stratix® 10 SoC FPGAs Revision History
5.8. Choosing the Bootloader Software
The typical Stratix 10 SoC HPS boot flow is depicted in the figure below:
Figure 23. Typical Intel® Stratix® 10 SoC Boot Flow
The boot loader software is one of the most important components of your software development platform. The bootloader initializes the system and then loads and passes control to the next boot image which is either an operating system or a bare-metal application.
The Intel® Stratix® 10 SoC boot loader software is split into two different stages:
- First Stage Bootloader (FSBL) – Loaded by the SDM from the FPGA configuration bitstream into the HPS side on-chip memory:
- Provides essential initial hardware settings to configure the HPS
- Software features to control the flash and peripheral components of the HPS
- Utilities to enable early debugging and troubleshooting
- Second Stage Bootloader (SSBL) – Loaded by FSBL into the DDRAM and potentially having significantly more capabilities than FSBL, such as: network access, command line interface and scripting support.
Intel® provides several bootloader options:
- U-Boot Bootloader: Inherits several features available from the open source community and is popular with Linux* OS users. U-Boot bootloader is governed by GPL licensing. It is available as a part of SoC EDS and used by GSRD for Linux*.
- UEFI Bootloader: Feature rich and popular with RTOS users and is governed by an open-source BSD style license.
- ATF (ARM Trusted Firmware) Bootloader: Used by the UEFI and provides just the first stage bootloader. It uses a BSD-style license, and could be used to directly load a bare-metal application instead of a SSBL.
GUIDELINE: To select the right boot loader for your software development platform, use the latest version and familiarize yourself with the GPL and open-source BSD licenses and consider which licensing terms best suit your requirements.
A typical HPS system has hundreds of registers that must be set for a given configuration of the MPU subsystem, the network-on-chip interconnect component, the DDRAM memory, flash boot source and peripheral interfaces.