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

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

5.1.5. Assembling your Software Development Platform for a Bare-Metal Application

The Intel hardware libraries (HWLibs) are collections of low-level bare-metal software utilities provided with SoC FPGA EDS and designed for controlling various components of the HPS. The HWLibs are also typically used by Intel's OS partners to build board support packages for operating systems.

The HWLibs have two components:
  • SoC Abstraction Layer (SoCAL): Register abstraction layer that enables direct access and control of device registers within the HPS address space.
  • Hardware Manager (HWMgr): APIs that provide more complex functionality and drivers for higher level use case scenarios.
Figure 19. HWLibs Overview
Note: Not all hardware is covered by SoCAL and HWMgr, therefore writing custom code might be necessary depending on the application.

For a complete set of guides for getting started with bare-metal development, refer to the SoC FPGA Embedded Development Suite Getting Started Guides web page and scroll to the "Getting Started with HwLibs Baremetal Development" section.

Software applications that use HWlibs should have run time provisions to manage the resources of the MPU System Complex, cache, and memory. These provisions are typically what operating systems provide.

GUIDELINE: Intel® recommends using HWlibs only if you are familiar with developing run time provisions to manage your application.

GUIDELINE: Use the HWLIBs examples from <SoC EDS installation folder>/embedded/examples/software/ as a starting point for your bare-metal development.

Note: You can review the additional HWLIBs examples available on the Design Store Design Examples web page.

For more information about HWLIBs, refer to the SoC FPGA Embedded Development Suite (EDS) User Guide.