Xilinx OS and Libraries Overview - 2021.1 English

Xilinx Standalone Library Documentation OS and Libraries Document Collection (UG643)

Document ID
Release Date
2021.1 English

The Vitis™ Unified Software Development Environment provides a variety of Xilinx® software packages, including drivers, libraries, board support packages, and complete operating systems to help you develop a software platform. This document collection provides information on these. Complete documentation for other operating systems can be found in the their respective reference guides. Device drivers are documented along with the corresponding peripheral documentation. The documentation is listed in the following table; click the name to open the document.

Library Name Summary
Xilinx Standard C Libraries Describes the software libraries available for the embedded processors.
Standalone Library v7.5 Describes the Standalone platform, a single-threaded, simple operating system (OS) platform that provides the lowest layer of software modules used to access processor-specific functions.

Some typical functions offered by the Standalone platform include setting up the interrupts and exceptions systems, configuring caches, and other hardware specific functions.

The Hardware Abstraction Layer (HAL) is described in this document.
LwIP 2.1.1 Library v1.5 Describes the SDK port of the third party networking library, Light Weight IP (lwIP) for embedded processors.
XilFlash Library v4.9 Provides read/write/erase/lock/unlock features to access a parallel flash device.
XilFFS Library v4.5 XilFFS is a generic FAT file system that is primarily added for use with SD/eMMC driver. The file system is open source and a glue layer is implemented to link it to the SD/eMMC driver.
XilSecure Library v4.5 Provides APIs to access secure hardware on the Zynq® UltraScale+™ MPSoCs.
XilSkey Library v7.1 Provides a programming mechanism for user-defined eFUSE bits and for programming the KEY into battery-backed RAM (BBRAM) of Zynq SoC, provides programming mechanisms for eFUSE bits of UltraScale™ devices.

The library also provides programming mechanisms for eFUSE bits and BBRAM key of the Zynq UltraScale+ MPSoCss.

XilPM Library v3.4 The Zynq UltraScale+ MPSoC and Versal™ ACAP power management framework is a set of power management options, based upon an implementation of the extensible energy management interface (EEMI).

The power management framework allows software components running across different processing units (PUs) on a chip or device to issue or respond to requests for power management.

XilFPGA Library v6.0 Provides an interface to the Linux or bare-metal users for configuring the programmable logic (PL) over PCAP from PS. The library is designed for Zynq UltraScale+ MPSoC and Versal ACAP to run on top of Xilinx® standalone BSPs.
XilMailbox v1.3 Provides the top-level hooks for sending or receiving an inter-processor interrupt (IPI) message using the Zynq UltraScale+ MPSoC and Versal ACAP IPI hardware.
XilSEM Library v1.3 The Xilinx Soft Error Mitigation (XilSEM) library is a pre-configured, pre-verified solution to detect and optionally correct soft errors in Configuration Memory of Versal ACAPs.

About the Libraries

The Standard C support library consists of the newlib, libc, which contains the standard C functions such as stdio, stdlib, and string routines. The math library is an enhancement over the newlib math library, libm, and provides the standard math routines. The LibXil libraries consist of the following:

  • LibXil Driver (Xilinx device drivers)
  • XilMFS (Xilinx memory file system)
  • XilFlash (a parallel flash programming library)
  • XilIsf (a serial flash programming library)

The Hardware Abstraction Layer (HAL) provides common functions related to register I/O, exception, and cache. These common functions are uniform across MicroBlaze™ and Arm® Cortex® -A9 processors. The Standalone platform document provides some processor specific functions and macros for accessing the processor-specific features. Most routines in the library are written in C and can be ported to any platform. User applications must include appropriate headers and link with required libraries for proper compilation and inclusion of required functionality. These libraries and their corresponding include files are created in the processor \lib and \include directories, under the current project, respectively. The -I and -L options of the compiler being used should be leveraged to add these directories to the search paths.

Library Organization

Your application can interface with the components in a variety of ways. The libraries are independent of each other, with the exception of some interactions. The LibXil drivers and the Standalone form the lowermost hardware abstraction layer. The library and OS components rely on standard C library components. The math library, libm.a is also available for linking with the user applications. Taking into account some restrictions and implications, which are described in the reference guides for each component, you can mix and match the component libraries.

Note: “LibXil Drivers” are the device drivers included in the software platform to provide an interface to the peripherals in the system. These drivers are provided along with the Vitis Unified Software Development Environment and are configured by Libgen. This document collection contains a section that briefly discusses the concept of device drivers and the way they integrate with the board support package in Vitis.