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:
parent
7c70a16c04
commit
ced021a78f
3 changed files with 9 additions and 1 deletions
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
Loading…
Reference in a new issue