From ed6cf2ecedb277a46e205d00613578918ea37e12 Mon Sep 17 00:00:00 2001 From: Giacomo Travaglini Date: Tue, 1 Nov 2022 17:43:35 +0000 Subject: [PATCH] dev-arm: Allow GICv3 to be externally(publicly) updated Change-Id: Ifa7b745ea11e74c17024c22ae993b6103eecb744 Signed-off-by: Giacomo Travaglini Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/66271 Reviewed-by: Jason Lowe-Power Maintainer: Jason Lowe-Power Tested-by: kokoro --- src/dev/arm/gic_v3.cc | 6 ++++++ src/dev/arm/gic_v3.hh | 2 ++ src/dev/arm/gic_v3_distributor.hh | 2 +- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/dev/arm/gic_v3.cc b/src/dev/arm/gic_v3.cc index e14d1f2bef..cb462f7340 100644 --- a/src/dev/arm/gic_v3.cc +++ b/src/dev/arm/gic_v3.cc @@ -286,6 +286,12 @@ Gicv3::postInt(uint32_t cpu, ArmISA::InterruptTypes int_type) ArmSystem::callClearStandByWfi(tc); } +void +Gicv3::update() +{ + distributor->update(); +} + bool Gicv3::supportsVersion(GicVersion version) { diff --git a/src/dev/arm/gic_v3.hh b/src/dev/arm/gic_v3.hh index 120b0390a6..2ea6a98b3b 100644 --- a/src/dev/arm/gic_v3.hh +++ b/src/dev/arm/gic_v3.hh @@ -206,6 +206,8 @@ class Gicv3 : public BaseGic, public Gicv3Registers void postInt(uint32_t cpu, ArmISA::InterruptTypes int_type); + void update(); + protected: // GIC state transfer void copyGicState(Gicv3Registers* from, Gicv3Registers* to); diff --git a/src/dev/arm/gic_v3_distributor.hh b/src/dev/arm/gic_v3_distributor.hh index 9960e91593..f80800fb0a 100644 --- a/src/dev/arm/gic_v3_distributor.hh +++ b/src/dev/arm/gic_v3_distributor.hh @@ -257,7 +257,6 @@ class Gicv3Distributor : public Serializable void serialize(CheckpointOut & cp) const override; void unserialize(CheckpointIn & cp) override; - void update(); Gicv3CPUInterface* route(uint32_t int_id); public: @@ -274,6 +273,7 @@ class Gicv3Distributor : public Serializable bool is_secure_access); void copy(Gicv3Registers *from, Gicv3Registers *to); + void update(); }; } // namespace gem5