AN 796: Cyclone® V and Arria® V SoC Device Design Guidelines

ID 683360
Date 3/30/2022
Public
Document Table of Contents

5.1.3.5. Linux Device Tree Design Considerations

The Linux Device Tree is a data structure that describes the underlying hardware to the Linux operating system kernel. By passing this data structure the OS kernel, a single OS binary may be able to support many variations of hardware. This flexibility is particularly important when the hardware includes an FPGA.

The recommended procedure for managing the Linux Device Tree is:
  1. Start with the SoC FPGA reference Device Trees provided in the Linux kernel source code that targets the Intel® SoC development kits. They cover the HPS portion of the device but do not cover the FPGA portion which changes on a per-project basis. SD/MMC and QSPI versions are provided with the kernel source code.
  2. Edit the Device Tree as necessary to accommodate any board changes as compared to the Intel® SoC development kit.
  3. Edit the Device Tree as necessary to accommodate the Linux drivers targeting FPGA Soft IP.
Note: The GSRD for Linux uses a different flow that the one recommended above relying on a custom tool called “Linux Device Tree Generator” that is provided as part of SoC EDS.
Figure 12. Device Tree Generation Flow for GSRD for Linux

Refer to the DeviceTree Generator User Guide link given below for more details about the Linux Device Tree Generator.