From a517b4a6fba2674cb2a5b5b50a187473aedd4362 Mon Sep 17 00:00:00 2001 From: Jason Lowe-Power Date: Mon, 24 Apr 2017 08:55:24 -0500 Subject: 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 Reviewed-on: https://gem5-review.googlesource.com/2863 Reviewed-by: Andreas Sandberg Reviewed-by: Gabe Black --- src/dev/storage/ide_disk.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/dev') 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); -- cgit v1.2.3