AN 763: Intel® Arria® 10 SoC Device Design Guidelines

ID 683192
Date 5/17/2022
Public
Document Table of Contents

5.1.4.4. 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 Linux Device Tree Generator tool is a custom tool that is part of the SoC FPGA Embedded Development Suite (EDS) and supports only the Linux kernel version targeted by the associated GSRD.

Figure 18. Device Tree Generation Flow for GSRD for Linux

Note: If your design targets a different Linux kernel version than the version targeted by the GSRD, Intel recommends you do not use the Linux Device Tree Generator; instead, manage the Device Tree manually using the device tree files provided with the kernel as a baseline, and add the FPGA IP and board information manually.

Manage your Device Tree using the following procedure:
  1. Start with the SoC FPGA reference Device Trees provided in the Linux kernel source code that targets the Intel SoC Development Kits. These Device Trees cover the HPS portion of the device but do not cover the FPGA portion, which changes on a per-project basis. Note: SD/MMC, QSPI and NAND 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.

For more information, refer to the Device Tree Generator User Guide.