From: Jason Lowe-Power Date: Mon, 24 Apr 2017 13:55:24 +0000 (-0500) Subject: dev: Add ATA command used in recent Linux kernels X-Git-Tag: v19.0.0.0~2839 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=a517b4a6fba2674cb2a5b5b50a187473aedd4362;p=gem5.git 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 --- 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);