From ced021a78f28b4f44bb10233f4acd3a1cae81e2b Mon Sep 17 00:00:00 2001 From: Andrew Schultz Date: Tue, 25 May 2004 16:35:18 -0400 Subject: [PATCH] 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 --- dev/ide_disk.cc | 5 +++++ dev/pcidev.cc | 2 +- sim/system.cc | 3 +++ 3 files changed, 9 insertions(+), 1 deletion(-) 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) {