Hi, Reza

ATA spec said the Diagnostics cmd doesn't care DEV bit. Where did you meet such 
issue?

Thanks
Feng

-----Original Message-----
From: reza.jel...@tuhh.de [mailto:reza.jel...@tuhh.de] 
Sent: Thursday, August 21, 2014 17:56
To: edk2-devel@lists.sourceforge.net
Cc: ag...@suse.de
Subject: [edk2] [PATCH v2 6/6] MdeModulePkg; IdeMode needs to select master or 
slave before diagnostics command

From: Reza Jelveh <reza.jel...@tuhh.de>

The slave or master device must be selected before sending the diagnostics 
command, otherwise reading the Ide registers yields invalid results.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Reza Jelveh <reza.jel...@tuhh.de>
---
 MdeModulePkg/Bus/Ata/AtaAtapiPassThru/IdeMode.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/IdeMode.c 
b/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/IdeMode.c
index e5beea6..35330e2 100644
--- a/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/IdeMode.c
+++ b/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/IdeMode.c
@@ -2593,6 +2593,11 @@ DetectAndConfigIdeDevice (
 
   for (IdeDevice = 0; IdeDevice < EfiIdeMaxDevice; IdeDevice++) {
     //
+    // Select Master or Slave device to get the return signature for ATA 
DEVICE DIAGNOSTIC cmd.
+    //
+    IdeWritePortB (PciIo, IdeRegisters->Head, (UINT8)((IdeDevice << 4) 
+ | 0xe0));
+
+    //
     // Send ATA Device Execut Diagnostic command.
     // This command should work no matter DRDY is ready or not
     //
@@ -2605,10 +2610,6 @@ DetectAndConfigIdeDevice (
     }
 
     //
-    // Select Master or Slave device to get the return signature for ATA 
DEVICE DIAGNOSTIC cmd.
-    //
-    IdeWritePortB (PciIo, IdeRegisters->Head, (UINT8)((IdeDevice << 4) | 
0xe0));
-    //
     // Stall for 1 milliseconds.
     //
     MicroSecondDelay (1000);
--
1.9.2


------------------------------------------------------------------------------
Slashdot TV.  
Video for Nerds.  Stuff that matters.
http://tv.slashdot.org/
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

------------------------------------------------------------------------------
Slashdot TV.  
Video for Nerds.  Stuff that matters.
http://tv.slashdot.org/
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to