/
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 theblock 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
- 2022.2 and prior: https://github.com/Xilinx/linux-xlnx/blob/master/Documentation/devicetree/bindings/iio/adc/xilinx-ams.txt
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 Name | Channel Number | Channel Details | Measurement Type | Releated 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 output | files prefix | "*_label" file output | ||||
AMS CTRL | 0 |