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
This commit is contained in:
Andrew Schultz 2004-05-25 16:35:18 -04:00
parent 7c70a16c04
commit ced021a78f
3 changed files with 9 additions and 1 deletions

View file

@ -644,6 +644,7 @@ IdeDisk::startCommand()
case WIN_RECAL: case WIN_RECAL:
case WIN_SPECIFY: case WIN_SPECIFY:
case WIN_STANDBYNOW1:
case WIN_FLUSH_CACHE: case WIN_FLUSH_CACHE:
case WIN_VERIFY: case WIN_VERIFY:
case WIN_SEEK: case WIN_SEEK:
@ -960,6 +961,10 @@ IdeDisk::updateState(DevAction_t action)
cmdReg.status &= ~STATUS_DRQ_BIT; cmdReg.status &= ~STATUS_DRQ_BIT;
devState = Prepare_Data_Out; devState = Prepare_Data_Out;
/** @todo change this to a scheduled event to simulate
disk delay */
updateState(ACT_DATA_READY);
} }
} }
break; break;

View file

@ -247,7 +247,7 @@ PciDev::WriteConfig(int offset, int size, uint32_t data)
break; break;
default: default:
panic("writing to a read only register"); DPRINTF(PCIDEV, "Writing to a read only register");
} }
break; break;
} }

View file

@ -52,6 +52,9 @@ System::System(const std::string _name,
bin(_bin), bin(_bin),
binned_fns(binned_fns) binned_fns(binned_fns)
{ {
// increment the number of running systems
numSystemsRunning++;
// add self to global system list // add self to global system list
systemList.push_back(this); systemList.push_back(this);
if (bin == true) { if (bin == true) {