Hi, Laszlo

Could you explain why the SataControllerDxe needs to touch AHCI.GHC.AE? This 
bit would be set by AtaAtapiPassThru.AhciModeInitialization().

Thanks
Feng

-----Original Message-----
From: Laszlo Ersek [mailto:[email protected]] 
Sent: Saturday, September 19, 2015 02:40
To: Justen, Jordan L; [email protected]
Cc: Tian, Feng; Gabriel L. Somlo; Alexander Graf; Hannes Reinecke; Reza Jelveh; 
Kinney, Michael D
Subject: Re: [edk2] [PATCH v4 06/10] OvmfPkg: SataControllerDxe: enable AHCI 
mode if IS_PCI_SATADPA()

On 09/18/15 20:30, Jordan Justen wrote:
> On 2015-09-15 19:57:26, Laszlo Ersek wrote:
>> The location of the Global HBA Control register, and the AHCI Enable 
>> bit value come from the AHCI 1.3.1 spec. They are kept together with 
>> the existing macros in the header file.
>>
>> This patch completes the implementation of the ideas that Feng shared 
>> in 
>> <http://thread.gmane.org/gmane.comp.bios.tianocore.devel/10545/focus=10659>.
>>
>> Cc: Alexander Graf <[email protected]>
>> Cc: Reza Jelveh <[email protected]>
>> Cc: Jordan Justen <[email protected]>
>> Cc: Hannes Reinecke <[email protected]>
>> Cc: Gabriel L. Somlo <[email protected]>
>> Cc: Feng Tian <[email protected]>
>> Suggested-by: Feng Tian <[email protected]>
>> Contributed-under: TianoCore Contribution Agreement 1.0
>> Signed-off-by: Laszlo Ersek <[email protected]>
>> ---
>>  OvmfPkg/SataControllerDxe/SataController.h | 2 ++  
>> OvmfPkg/SataControllerDxe/SataController.c | 6 ++++++
>>  2 files changed, 8 insertions(+)
>>
>> diff --git a/OvmfPkg/SataControllerDxe/SataController.h 
>> b/OvmfPkg/SataControllerDxe/SataController.h
>> index e5b719e..96589ea 100644
>> --- a/OvmfPkg/SataControllerDxe/SataController.h
>> +++ b/OvmfPkg/SataControllerDxe/SataController.h
>> @@ -40,6 +40,8 @@ extern EFI_COMPONENT_NAME2_PROTOCOL 
>> gSataControllerComponentName2;  #define R_AHCI_CAP 0x0
>>  #define   B_AHCI_CAP_NPS (BIT4 | BIT3 | BIT2 | BIT1 | BIT0) // Number of 
>> Ports
>>  #define   B_AHCI_CAP_SPM BIT17 // Supports Port Multiplier
>> +#define R_AHCI_GHC 0x4
>> +#define   B_AHCI_GHC_AE BIT31
> 
> Maybe use the same #define names as:
> 
> MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AhciMode.h
> 
> Or, why not create MdePkg/Include/IndustryStandard/Ahci.h?

Sure -- Feng, can you please state what macros and types you'd like to see 
moved from "MdeModulePkg/Bus/Ata/AtaAtapiPassThru/AhciMode.h"?

Mike, can you please state if you are okay with the MdePkg pathname suggested 
by Jordan, and what timeframe would be possible for reviewing the new header 
file after I submit it?

Thanks
Laszlo

> 
> -Jordan
> 
>>  ///
>>  /// AHCI each channel can have up to 1 device diff --git 
>> a/OvmfPkg/SataControllerDxe/SataController.c 
>> b/OvmfPkg/SataControllerDxe/SataController.c
>> index 275b527..6a4971d 100644
>> --- a/OvmfPkg/SataControllerDxe/SataController.c
>> +++ b/OvmfPkg/SataControllerDxe/SataController.c
>> @@ -475,6 +475,12 @@ SataControllerStart (
>>      SataPrivateData->DeviceCount = IDE_MAX_DEVICES;
>>    } else if (IS_PCI_SATADPA (&PciData)) {
>>      //
>> +    // Enable AHCI mode.
>> +    //
>> +    AhciWriteReg (PciIo, R_AHCI_GHC,
>> +      AhciReadReg (PciIo, R_AHCI_GHC) | B_AHCI_GHC_AE);
>> +
>> +    //
>>      // Read Host Capability Register(CAP) to get Number of Ports(NPS) and 
>> Supports Port Multiplier(SPM)
>>      //   NPS is 0's based value indicating the maximum number of ports 
>> supported by the HBA silicon.
>>      //   A maximum of 32 ports can be supported. A value of '0h', 
>> indicating one port, is the minimum requirement.
>> --
>> 1.8.3.1
>>
>>
>> _______________________________________________
>> edk2-devel mailing list
>> [email protected]
>> https://lists.01.org/mailman/listinfo/edk2-devel
> _______________________________________________
> edk2-devel mailing list
> [email protected]
> https://lists.01.org/mailman/listinfo/edk2-devel
> 

_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to