Xilinx OS and Libraries Overview - 2020.2 English

OS and Libraries Document Collection (UG643)

Document ID
UG643
Release Date
2020-11-24
Version
2020.2 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.3 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 Describes the SDK port of the third party networking library, Light Weight IP (lwIP) for embedded processors.
XilIsf Library v5.15 Describes the In System Flash hardware library, which enables higher-layer software (such as an application) to communicate with the Isf. XilIsf supports the Xilinx In-System Flash and external Serial Flash memories from Atmel (AT45XXXD), Spansion(S25FLXX), Winbond W25QXX, and Micron N25QXX.
XilFFS Library v4.4 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.3 The XilSecure library provides APIs to access secure hardware on the Zynq UltraScale+ MPSoC devices.
XilSkey Library v7.0 The XilSKey library 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+ MPSoC devices.

XilPM Library v3.2 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 v5.3

The XilFPGA library 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.2 The XilMailbox library 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

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 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.
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.
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.