On 09/21/15 03:19, Tian, Feng wrote:
> Hi, Laszlo
> 
> Could you explain why the SataControllerDxe needs to touch
> AHCI.GHC.AE? This bit would be set by
> AtaAtapiPassThru.AhciModeInitialization().

That's right, it's done in AhciModeInitialization() -- I didn't miss
that fact.

The only reason I've included that setting in this patch series is
because you mentioned it in:

http://thread.gmane.org/gmane.comp.bios.tianocore.devel/10545/focus=10659

You wrote:

"[...] enable BME/MSE/AE bit at SataControllerStart [...]"

BME is "bus master enable", "MSE" is "memory space enable", and "AE" is
"AHCI enable". I did think myself that setting AE on this level was
redundant, but I wanted to follow your advice to the letter.

If you think this setting is superfluous here, then:
- I agree, and
- I can simply drop this patch from the series (in fact, part of the
incentive for keeping this change in a separate patch was exactly the
possibility that it might prove redundant)

Dropping the patch would be great, because it would also resolve
Jordan's remark about the location of the R_AHCI_GHC macro & friends in
the edk2 source tree.

Thanks!
Laszlo

> 
> 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