diff options
author | Curtis Dunham <Curtis.Dunham@arm.com> | 2017-01-27 20:21:59 +0000 |
---|---|---|
committer | Andreas Sandberg <andreas.sandberg@arm.com> | 2017-04-03 16:51:46 +0000 |
commit | 567a9b0a085d79c6bc9128204946cd6155960a9f (patch) | |
tree | 98f7c28fe491614659d2ac627bd64d935d99b5ca /src/dev/arm/gic_pl390.hh | |
parent | 60075068ea6340e89a4b0cd4bd79c6ee3de44893 (diff) | |
download | gem5-567a9b0a085d79c6bc9128204946cd6155960a9f.tar.xz |
arm, kvm: implement GIC state transfer
This also allows checkpointing of a Kvm GIC via the Pl390 model.
Change-Id: Ic85d81cfefad630617491b732398f5e6a5f34c0b
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/2444
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Weiping Liao <weipingliao@google.com>
Diffstat (limited to 'src/dev/arm/gic_pl390.hh')
-rw-r--r-- | src/dev/arm/gic_pl390.hh | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/src/dev/arm/gic_pl390.hh b/src/dev/arm/gic_pl390.hh index 8beb5e2d5..6f819bf65 100644 --- a/src/dev/arm/gic_pl390.hh +++ b/src/dev/arm/gic_pl390.hh @@ -58,7 +58,7 @@ #include "dev/platform.hh" #include "params/Pl390.hh" -class Pl390 : public BaseGic +class Pl390 : public BaseGic, public BaseGicRegisters { protected: // distributor memory addresses @@ -404,26 +404,34 @@ class Pl390 : public BaseGic * @param pkt packet to respond to */ Tick readDistributor(PacketPtr pkt); - uint32_t readDistributor(ContextID ctx, Addr daddr, size_t resp_sz); + uint32_t readDistributor(ContextID ctx, Addr daddr, + size_t resp_sz); + uint32_t readDistributor(ContextID ctx, Addr daddr) override { + return readDistributor(ctx, daddr, 4); + } /** Handle a read to the cpu portion of the GIC * @param pkt packet to respond to */ Tick readCpu(PacketPtr pkt); - uint32_t readCpu(ContextID ctx, Addr daddr); + uint32_t readCpu(ContextID ctx, Addr daddr) override; /** Handle a write to the distributor portion of the GIC * @param pkt packet to respond to */ Tick writeDistributor(PacketPtr pkt); - void writeDistributor(ContextID ctx, Addr daddr, uint32_t data, - size_t data_sz); + void writeDistributor(ContextID ctx, Addr daddr, + uint32_t data, size_t data_sz); + void writeDistributor(ContextID ctx, Addr daddr, + uint32_t data) override { + return writeDistributor(ctx, daddr, data, 4); + } /** Handle a write to the cpu portion of the GIC * @param pkt packet to respond to */ Tick writeCpu(PacketPtr pkt); - void writeCpu(ContextID ctx, Addr daddr, uint32_t data); + void writeCpu(ContextID ctx, Addr daddr, uint32_t data) override; }; #endif //__DEV_ARM_GIC_H__ |