diff options
author | Andrew Schultz <alschult@umich.edu> | 2004-05-25 16:35:18 -0400 |
---|---|---|
committer | Andrew Schultz <alschult@umich.edu> | 2004-05-25 16:35:18 -0400 |
commit | ced021a78f28b4f44bb10233f4acd3a1cae81e2b (patch) | |
tree | 5dbf178b3a6a3a2524174330b41440ea50539a77 | |
parent | 7c70a16c04202cc57e42b1b8baabcda40b6245b2 (diff) | |
download | gem5-ced021a78f28b4f44bb10233f4acd3a1cae81e2b.tar.xz |
Varied fixes to get linux running. Allow for shutdown on linux.
dev/ide_disk.cc:
Fix to PIO writes and also add command needed for shutdown
dev/pcidev.cc:
Change the panic on write to read-only registers to a debug print. The
kernel tries to write back over all of the PCI registers to restore
the saved SRM state, so we need to let it do this without panicing.
sim/system.cc:
Add back increment of number of running systems to allow trap of halt
work correctly.
--HG--
extra : convert_revision : 84aba4effbec14545f3610c19a8e321d7e7f7cf2
-rw-r--r-- | dev/ide_disk.cc | 5 | ||||
-rw-r--r-- | dev/pcidev.cc | 2 | ||||
-rw-r--r-- | sim/system.cc | 3 |
3 files changed, 9 insertions, 1 deletions
diff --git a/dev/ide_disk.cc b/dev/ide_disk.cc index 2205db9e3..ddd4a09e7 100644 --- a/dev/ide_disk.cc +++ b/dev/ide_disk.cc @@ -644,6 +644,7 @@ IdeDisk::startCommand() case WIN_RECAL: case WIN_SPECIFY: + case WIN_STANDBYNOW1: case WIN_FLUSH_CACHE: case WIN_VERIFY: case WIN_SEEK: @@ -960,6 +961,10 @@ IdeDisk::updateState(DevAction_t action) cmdReg.status &= ~STATUS_DRQ_BIT; devState = Prepare_Data_Out; + + /** @todo change this to a scheduled event to simulate + disk delay */ + updateState(ACT_DATA_READY); } } break; diff --git a/dev/pcidev.cc b/dev/pcidev.cc index 9ac170b5c..9d6208d6b 100644 --- a/dev/pcidev.cc +++ b/dev/pcidev.cc @@ -247,7 +247,7 @@ PciDev::WriteConfig(int offset, int size, uint32_t data) break; default: - panic("writing to a read only register"); + DPRINTF(PCIDEV, "Writing to a read only register"); } break; } diff --git a/sim/system.cc b/sim/system.cc index 619593abd..b801cb254 100644 --- a/sim/system.cc +++ b/sim/system.cc @@ -52,6 +52,9 @@ System::System(const std::string _name, bin(_bin), binned_fns(binned_fns) { + // increment the number of running systems + numSystemsRunning++; + // add self to global system list systemList.push_back(this); if (bin == true) { |