summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJason Lowe-Power <jason@lowepower.com>2017-04-24 08:55:24 -0500
committerJason Lowe-Power <jason@lowepower.com>2017-05-01 14:14:15 +0000
commita517b4a6fba2674cb2a5b5b50a187473aedd4362 (patch)
tree190bb969ed7b200e7b3bccab3ce0708ae2031cf0
parent334b1e5a4815e4747a93c6bd509d729032c29821 (diff)
downloadgem5-a517b4a6fba2674cb2a5b5b50a187473aedd4362.tar.xz
dev: Add ATA command used in recent Linux kernels
Add a case for the ATA command ATAPI_IDENTIFY_DEVICE. This avoids the panic: Unsupported ATA command when booting a recent Linux kernel. This was tested on 4.8.13. Change-Id: Ib297a2c02da0730d8698c59801254dd0f5ee9f7f Signed-off-by: Jason Lowe-Power <jason@lowepower.com> Reviewed-on: https://gem5-review.googlesource.com/2863 Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com> Reviewed-by: Gabe Black <gabeblack@google.com>
-rw-r--r--src/dev/storage/ide_disk.cc4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/dev/storage/ide_disk.cc b/src/dev/storage/ide_disk.cc
index e4b4e625a..de0986e45 100644
--- a/src/dev/storage/ide_disk.cc
+++ b/src/dev/storage/ide_disk.cc
@@ -657,6 +657,7 @@ IdeDisk::startCommand()
// Supported PIO data-in commands
case WDCC_IDENTIFY:
+ case ATAPI_IDENTIFY_DEVICE:
cmdBytes = cmdBytesLeft = sizeof(struct ataparams);
devState = Prepare_Data_In;
action = ACT_DATA_READY;
@@ -852,7 +853,8 @@ IdeDisk::updateState(DevAction_t action)
status |= STATUS_DRQ_BIT;
// copy the data into the data buffer
- if (cmdReg.command == WDCC_IDENTIFY) {
+ if (cmdReg.command == WDCC_IDENTIFY ||
+ cmdReg.command == ATAPI_IDENTIFY_DEVICE) {
// Reset the drqBytes for this block
drqBytesLeft = sizeof(struct ataparams);