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
1.
If background ping is enabled, disable background pings by writing FMU_PINGCTLR.enable=0.
2.
Clear all flags by writing all zeros to FMU_PINGNOW.
3.
Initiate a directed ping by writing:
a. FMU_PINGNOW.enable=1
b. FMU_PINGNOW.ping_ack_received=0
c. The appropriate block ID to FMU_PINGNOW.block_id
4.
Poll FMU_PINGNOW.ping_ack_received==1
5.
Optionally, set the *_inject_error bits to test remote GIC block or GICD integration, software, or
both.
The PINGNOW feature can be used to send an erroneous packet from the GICD to a targeted
remote GIC block or from a targeted remote GIC block to the GICD. Using this feature enables the
integrator to verify the AXI4-Stream connections between the remote GIC block and the GICD.
Injecting an error on a GICD ping message and on the subsequent remote GIC block PING_ACK
message causes mismatches along the PING/PING_ACK route through the interconnect.
After injecting a PINGNOW error, you can read the GICD error records and verify that the
expected SM errors are reported along the PING or PING_ACK route, for example by the receiving
block and by any ADB components along the path.
When writing to the FMU_PINGNOW register and FMU_PINGNOW.enable is set to 1:
A single ping is sent for each write to a present block.
If another ping is sent before a previous PING_ACK has been received, then:
If sent to the same destination, then the first ping back sets
FMU_PINGNOW.ping_ack_received.
If sent to a different destination, then the first PING_ACK is silently discarded if or when
received because it does not match the programmed FMU_PINGNOW.block_id.
An attempt to send a ping to a non-present block does not launch a ping and
FMU_PINGNOW.ping_ack_received is not set to 1.
If FMU_PINGNOW.gicd_inject_error == 1, an error is injected on the outgoing PING packet on the
GICD to the remote GIC block interface. The receiving remote GIC block and the ADB, if present,
detect the erroneous payload and report it as a fault.
If FMU_PINGNOW.remote_block_inject_error == 1, an error is injected on the outgoing PING_ACK
packet by the remote GIC block on the remote GIC block to the GICD interface. The receiving
GICD block and the ADB, if present, detect the erroneous payload and report it as a fault.
Copyright © 2018–2020, 2022 Arm Limited (or its affiliates). All rights reserved.
Non-Confidential
Page 205 of 268

Table of Contents

Related product manuals