/
Zynq UltraScale+ MPSoC AMS

Zynq UltraScale+ MPSoC AMS

Table of Contents

Introduction

A Zynq® UltraScale+™ MPSoC has one system monitoring (SYSMON) block in both the PS and the PL. The SYSMON block has a register interface that can be used to configure the
block and provide the capability to monitor on and off-chip voltages as well as junction temperature. The SYSMON block also has built-in alarm generation logic that is used to
interrupt the processor based on certain alarm conditions. For example, it can shut down the system based on an over-temperature (OT) alarm generated from the SYSMON block.
The PL-SYSMON block has DRP, JTAG, and I2C interfaces to enable monitoring from the external master and the capability to interface with an external power management bus
(PMBus) device. The PS-SYSMON block is memory mapped to the PS. In comparison to JTAG and I2C transfers, this interface is more efficient at transferring data from software. The
PS-SYSMON block has an internal reference option.

HW/IP features

PL block

  • 10-bit resolution
  • 0.2 MSPS sample rate
  • Support external analog input
  • External mux supports
  • 16 auxiliary channels
  • 16 alarm output
  • Interface supported JTAG, DRP or dedicated PS DRP, I2C and PMBus
  • 2 temperature sensors
  • VCCINT, VCCAUX, VCCBRAM, VCC_PSINTLP, VCC_PSINTFP, VCC_PSAUX system supply sensors
  • 4 USER supply channels

PS block

  • 10-bit resolution
  • 1.0 MSPS sample rate
  • 16 alarm output
  • Interface supported JTAG or APB
  • 1 temperature sensors
  • VCCINT, VCCAUX, VCCBRAM, VCC_PSINTLP, VCC_PSINTFP, VCC_PSAUX system supply sensors

Missing features, known Issues, limitations

  • Single pass sequence mode
  • Bipolar channel modes
  • External mux mode
  • System Lockup can happen if the PL temperature is queried during PL Initialization

Kernel configurations

To compile a kernel with a driver for the AMS enable the following kernel config option:
CONFIG_XILINX_AMS

Device Tree Settings

Device Tree Bindings Doc: https://github.com/Xilinx/linux-xlnx/blob/master/Documentation/devicetree/bindings/iio/adc/xlnx%2Czynqmp-ams.yaml

The above doc will provide details into what full configuration will look like.

The following Device Tree shows minimal configuration.

xilinx_ams: ams@ffa50000 {
            compatible = "xlnx,zynqmp-ams";
            interrupt-parent = <&&gic>;
            interrupts = <0 56 4>;
            interrupt-names = "ams-irq";
            reg = <0x0 0xffa50000 0x0 0x800>;
            reg-names = "ams-base";
            #address-cells = <2>;
            #size-cells = <2>;
            ranges;
 
            ams_ps: ams_ps@ffa50800 {
                compatible = "xlnx,zynqmp-ams-ps";
                reg = <0x0 0xffa50800 0x0 0x400>;
            };
 
            ams_pl: ams_pl@ffa50c00 {
                compatible = "xlnx,zynqmp-ams-pl";
                reg = <0x0 0xffa50c00 0x0 0x400>;
            };
        };

Sysmon IIO Sysfs File Naming Changes

Sysfs File Naming Change

With 2023.1 release, Sysmon IIO Sysfs naming changed as below table.

Block NameChannel NumberChannel DetailsMeasurement TypeReleated IIO Sysfs File Names
2023.1 and After
under iio:device0/
Releated IIO Sysfs File Names
2022.2 and Before
under iio:device0/
files prefix"*_label" file outputfiles prefix"*_label" file output
AMS CTRL0