EasyManua.ls Logo

ARM CoreLink GIC-600AE

Default Icon
268 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
Arm
®
CoreLink™ GIC-600AE Generic Interrupt Controller
Technical Reference Manual
Document ID: 101206_0003_04_en
Issue: 04
Functional Safety
FMU_PINGCTLR controls the value of ping_timeout_value, which defines the ping timeout in FMU
clock cycles.
ping_interval defines the interval at which the FMU pings the next remote
block. As Figure 6-3: Ping mechanism parameters on page 203 shows,
ping_interval == ping_timeout_value + ping_interval_diff.
To enable or disable the background ping mechanism, write to FMU_PINGCTLR.enable. When
background ping is enabled, the FMU_PINGCTLR[31:1] bits must not change. Software must
disable background ping, before it changes the values in FMU_PINGCTLR. It is acceptable to
program FMU_PINGCTLR and enable background ping at the same time.
When programming the ping_timeout_value in the FMU_PINGCTLR register, you must account for
the following:
Round-trip ping latency
Concurrent GICD request traffic. Any concurrent GICD requests can delay transmission of the
ping.
Clock domain ratios. For example, if the FMU/GICD domain clock is running faster than a
remote domain clock, you must increase ping_timeout_value.
If the FMU indicates a PING_ACK timeout error, it is helpful to know which remote GIC block
caused the error. To determine its block ID, read the FMU_ERR<n>STATUS register.
Arm expects that background ping using FMU_PINGCTLR and directed ping using
FMU_PINGNOW are used mutually exclusively. Therefore:
When background pings are enabled, do not set FMU_PINGNOW.enable = 1. When initiating
background ping, you must ensure that a previously initiated software ping (PINGNOW) is
complete, by polling for FMU_PINGNOW.ping_ack_received==1.
Before generating directed pings using the FMU_PINGNOW register, turn off background ping
by setting FMU_PINGCTLR.enable = 0 and wait for the last PING_ACK to return.
When the FMU indicates a PING_TIMEOUT error, you can obtain the remote GIC block ID by the
reading the FMU_ERR<n>STATUS register.
To conserve operational power of the GICD, the GICD accepts the Q-Channel handshake to enter
low powerdown state, if requested by the clock controller. When the GICD is in the low-power
clock gated state, it does not send background ping messages to the remote GIC block and does
not report PING_ACK violations. When the GICD exits the low-power clock gated state, the FMU
resumes background pings.
Directed ping
The software can also send a directed ping message to a specific block using the FMU_PINGNOW
register. Using this method can be helpful to debug PING_ACK violations that background pings
cause.
The procedure to initiate a directed software ping is as follows:
Copyright © 2018–2020, 2022 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 204 of 268

Table of Contents

Related product manuals