gem5/src/dev/arm
Andreas Sandberg 3e200455bd dev, arm: Add draining to the GIC model
The GIC model currently adds a delay to interrupts when posting them
to a target CPU. This means that an interrupt signal will be
represented by an event for a short period of time. We currently
ignore this when draining and serialize the tick when the interrupt
will fire. Upon loading the checkpoint, the simulated GIC reschedules
the pending events. This behaviour is undesirable when we implement
support for switching between in-kernel GIC emulation and gem5 GIC
emulation. In that case, the (kernel) GIC model gets a lot simpler if
we don't need to worry about in-flight interrupts from the gem5 GIC.

This changeset adds a draining check to force the GIC into a state
where all interrupts have been delivered prior to checkpointing/CPU
switching. It also removes the now redundant serialization of
interrupt events.

Change-Id: I8b8b080aa291ca029a3a7bdd1777f1fcd5b01179
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-by: Curtis Dunham <curtis.dunham@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/2331
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
2017-03-13 12:10:52 +00:00
..
a9scu.cc style: [patch 1/22] use /r/3648/ to reorganize includes 2016-11-09 14:27:37 -06:00
a9scu.hh AddrRange: Transition from Range<T> to AddrRange 2012-09-19 06:15:44 -04:00
abstract_nvm.hh arm, dev: Add a NAND flash timing model 2015-04-23 13:37:49 -04:00
AbstractNVM.py arm, dev: Add a NAND flash timing model 2015-04-23 13:37:49 -04:00
amba_device.cc style: [patch 1/22] use /r/3648/ to reorganize includes 2016-11-09 14:27:37 -06:00
amba_device.hh dev, arm: Include PIO size in AmbaDmaDevice constructor 2015-06-09 09:21:12 -04:00
amba_fake.cc style: [patch 1/22] use /r/3648/ to reorganize includes 2016-11-09 14:27:37 -06:00
amba_fake.hh dev/arm: get rid of AmbaDev namespace 2013-07-11 21:56:39 -05:00
base_gic.cc arm: Wire up the GIC with the platform in the base class 2015-02-16 03:34:18 -05:00
base_gic.hh arm: Add a 'clear PPI' method to gic_pl390 2013-10-17 10:20:45 -05:00
energy_ctrl.cc style: [patch 1/22] use /r/3648/ to reorganize includes 2016-11-09 14:27:37 -06:00
energy_ctrl.hh arm: Add missing explicit overrides for ARM devices 2015-10-23 09:51:11 -04:00
EnergyCtrl.py energy: Memory-mapped Energy Controller component 2014-09-20 17:18:23 -04:00
flash_device.cc style: [patch 3/22] reduce include dependencies in some headers 2016-11-09 14:27:40 -06:00
flash_device.hh arm: Add missing explicit overrides for ARM devices 2015-10-23 09:51:11 -04:00
FlashDevice.py arm, dev: Add a NAND flash timing model 2015-04-23 13:37:49 -04:00
generic_timer.cc dev, arm: Make GenericTimer param handling more robust 2016-10-07 14:14:44 +01:00
generic_timer.hh misc: Remove redundant compiler-specific defines 2015-10-12 04:07:59 -04:00
Gic.py arm: disable GIC extensions 2016-09-22 14:46:37 +01:00
gic_pl390.cc dev, arm: Add draining to the GIC model 2017-03-13 12:10:52 +00:00
gic_pl390.hh dev, arm: Add draining to the GIC model 2017-03-13 12:10:52 +00:00
gic_v2m.cc arm: Add a GICv2m device 2015-03-19 04:06:17 -04:00
gic_v2m.hh arm: Add a GICv2m device 2015-03-19 04:06:17 -04:00
gpu_nomali.cc dev, arm: Add a customizable NoMali GPU model 2016-09-06 10:22:38 +01:00
gpu_nomali.hh dev, arm: Add a customizable NoMali GPU model 2016-09-06 10:22:38 +01:00
hdlcd.cc dev, arm: Render HDLCD frames at a fixed rate in KVM 2017-03-07 11:14:28 +00:00
hdlcd.hh dev, arm: Render HDLCD frames at a fixed rate in KVM 2017-03-07 11:14:28 +00:00
kmi.cc arm, kmi: Clear interrupts in KMI devices 2017-03-07 11:14:28 +00:00
kmi.hh arm, kmi: Clear interrupts in KMI devices 2017-03-07 11:14:28 +00:00
NoMali.py dev, arm: Add a customizable NoMali GPU model 2016-09-06 10:22:38 +01:00
pci_host.cc dev, arm: Add support for automatic PCI interrupt routing 2016-01-15 11:30:06 +00:00
pci_host.hh dev, arm: Add support for automatic PCI interrupt routing 2016-01-15 11:30:06 +00:00
pl011.cc style: [patch 1/22] use /r/3648/ to reorganize includes 2016-11-09 14:27:37 -06:00
pl011.hh arm,dev: PL011 UART_FR read status enhancement 2016-05-19 15:19:35 -05:00
pl111.cc style: [patch 1/22] use /r/3648/ to reorganize includes 2016-11-09 14:27:37 -06:00
pl111.hh base: Add support for changing output directories 2015-11-27 14:41:59 +00:00
realview.cc style: [patch 1/22] use /r/3648/ to reorganize includes 2016-11-09 14:27:37 -06:00
realview.hh dev: Rewrite PCI host functionality 2015-12-05 00:11:24 +00:00
RealView.py dev, arm: Render HDLCD frames at a fixed rate in KVM 2017-03-07 11:14:28 +00:00
rtc_pl031.cc style: [patch 1/22] use /r/3648/ to reorganize includes 2016-11-09 14:27:37 -06:00
rtc_pl031.hh arm: Add missing explicit overrides for ARM devices 2015-10-23 09:51:11 -04:00
rv_ctrl.cc sim: Thermal support for Linux 2015-05-13 15:02:25 +01:00
rv_ctrl.hh sim: Thermal support for Linux 2015-05-13 15:02:25 +01:00
SConscript dev, arm: Add support for automatic PCI interrupt routing 2016-01-15 11:30:06 +00:00
timer_cpulocal.cc style: [patch 1/22] use /r/3648/ to reorganize includes 2016-11-09 14:27:37 -06:00
timer_cpulocal.hh arm: Add missing explicit overrides for ARM devices 2015-10-23 09:51:11 -04:00
timer_sp804.cc style: [patch 1/22] use /r/3648/ to reorganize includes 2016-11-09 14:27:37 -06:00
timer_sp804.hh arm: Add missing explicit overrides for ARM devices 2015-10-23 09:51:11 -04:00
ufs_device.cc stats: Fixing regStats function for some SimObjects 2016-06-06 17:16:43 +01:00
ufs_device.hh dev: Move storage devices to src/dev/storage/ 2015-12-10 10:35:23 +00:00
UFSHostDevice.py arm, dev: Add a UFS device 2015-04-23 13:37:50 -04:00
vgic.cc style: [patch 1/22] use /r/3648/ to reorganize includes 2016-11-09 14:27:37 -06:00
vgic.hh arm: Add missing explicit overrides for ARM devices 2015-10-23 09:51:11 -04:00