Iomodule Standalone driver

Introduction

This page gives an overview of iomodule driver which is available as part of the AMD Vivado and Vitis distribution.

Driver Sources

The source code for the driver is included with the Vitis Unified Software Platform installation, as well as being available in the AMD Github repository. 

Driver Name

Path in Vitis

Path in Github

Driver Name

Path in Vitis

Path in Github

iomodule

<Vitis Install Directory>/data/embedded/XilinxProcessorIPLib/drivers/iomodule

embeddedsw/XilinxProcessorIPLib/drivers/iomodule at master · Xilinx/embeddedsw

Note: To view the sources for a particular release, use the rel-version tag in github.  For example, for the 2024.1 release, the proper version of the code is: embeddedsw/XilinxProcessorIPLib/drivers/iomodule at xlnx_rel_v2024.1 · Xilinx/embeddedsw

The driver source code is organized into different folders.  The table below shows the iomodule driver source organization. 

Directory

Description

Directory

Description

doc

Provides the API and data structure details

data

Driver .tcl, .mdd and .yaml file

examples

Example applications that show how to use the driver features

src

Driver source files, make and cmakelists file

Note: The .yaml(in data folder) and CMakeLists.txt(in src folder) files would be used in System Device Tree based flow.

Driver Implementation

For a full list of features supported by this IP, please refer I/O Module product guide

Features Supported

  • UART

  • Fixed Interval Timer (FIT)

  • Programmable Interval Timer (PIT)

  • General Purpose Output (GPO)

  • General Purpose Input (GPI)

  • Interrupt controller (INTC)

  •  

  • IO bus (IO)

Known issues and Limitations

  • None

Example Applications

Refer to the driver examples directory for various example applications that exercise the different features of the driver. Each application is linked in the table below. The following sections describe the usage and expected output of the various applications.  These example applications can be imported into the Vitis IDE from the Board Support Package  settings tab. 

Links to Examples

Examples Path:

https://github.com/Xilinx/embeddedsw/tree/master/XilinxProcessorIPLib/drivers/iomodule/examples

Test Name

Example Source

Description

Test Name

Example Source

Description

IO Module interrupt example

xiomodule_intr_example.c

This example demonstrates usage of IO Module interrupts. It initializes the Programmable interval timers and then sets it up in compare mode with auto reload such that a periodic interrupt is generated.

IO Module self test example

xiomodule_selftest_example.c

This examples demonstrates basic initialization of IO Module driver.

IO Module low level example

xiomodule_low_level_example.c

This example demonstrates usage of low level API interface of IO Module driver.

Example Application Usage

IO Module interrupt example

This example demonstrates usage of IO Module interrupts. It initializes the Programmable interval timers and then sets it up in compare mode with auto reload such that a periodic interrupt is generated.

Expected output

Successfully ran Iomodule interrupt Example

IO Module low level example

This example demonstrates usage of low level API interface of IO Module driver. It triggers interrupt by writing to the interrupt status bit
Expected Output

Successfully ran Iomodule lowlevel Example

IO Module selftest example

This examples demonstrates basic initialization of IO Module driver

Expected Output

Successfully ran Iomodule selftest Example

Changelog

2024.2

2024.1

2023.2

2023.1

  • No Changes

2022.2

2022.1

2021.2

2021.1

© Copyright 2019 - 2022 Xilinx Inc. Privacy Policy