public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: Ming Huang <ming.huang@linaro.org>
To: Leif Lindholm <leif.lindholm@linaro.org>
Cc: linaro-uefi@lists.linaro.org, edk2-devel@lists.01.org,
	graeme.gregory@linaro.org, ard.biesheuvel@linaro.org,
	michael.d.kinney@intel.com, lersek@redhat.com,
	wanghuiqiang@huawei.com, huangming23@huawei.com,
	zhangjinsong2@huawei.com, huangdaode@hisilicon.com,
	john.garry@huawei.com, xinliang.liu@linaro.org,
	zhangfeng56@huawei.com
Subject: Re: [PATCH edk2-platforms v1 09/16] Hisilicon/D06: Add PCI_OSC_SUPPORT
Date: Wed, 13 Feb 2019 10:59:17 +0800	[thread overview]
Message-ID: <71d90497-0095-5709-9938-3ac31212bb8d@linaro.org> (raw)
In-Reply-To: <20190211185140.6vn7swtqtiencdak@bivouac.eciton.net>



On 2/12/2019 2:51 AM, Leif Lindholm wrote:
> On Fri, Feb 01, 2019 at 09:34:29PM +0800, Ming Huang wrote:
>> Add PCI_OSC_SUPPORT for remaining host bridges to remove fail
>> output in kernel:
>> [  103.478893] acpi PNP0A08:01: _OSC failed (AE_NOT_FOUND);
>>
>> Contributed-under: TianoCore Contribution Agreement 1.1
>> Signed-off-by: Ming Huang <ming.huang@linaro.org>
>> ---
>>  Silicon/Hisilicon/Hi1620/Hi1620AcpiTables/Dsdt/Hi1620Pci.asl | 64 ++++++++++++++++++++
>>  1 file changed, 64 insertions(+)
>>
>> diff --git a/Silicon/Hisilicon/Hi1620/Hi1620AcpiTables/Dsdt/Hi1620Pci.asl b/Silicon/Hisilicon/Hi1620/Hi1620AcpiTables/Dsdt/Hi1620Pci.asl
>> index 4d9d9d95be68..86d8728b82f2 100644
>> --- a/Silicon/Hisilicon/Hi1620/Hi1620AcpiTables/Dsdt/Hi1620Pci.asl
>> +++ b/Silicon/Hisilicon/Hi1620/Hi1620AcpiTables/Dsdt/Hi1620Pci.asl
>> @@ -17,6 +17,50 @@
>>  **/
>>  
>>  //#include "ArmPlatform.h"
>> +
>> +/*
>> +  See ACPI 6.1 Spec, 6.2.11, PCI Firmware Spec 3.0, 4.5
>> +*/
>> +#define PCI_OSC_SUPPORT() \
> 
> PCI0 and PCI6 already have _OSC entries.
> This macro ends up being used for 1-5 and 7-B.
> So calling it PCI_OSC_SUPPORT seems somewhat misleading.
> 
> Then again, there is a lot of similarities between this macro and the
> existing entries. Could the same macro be used for 0 and 6? Or could
> the macro be split up into multiple parts and reused?

When I make this patch, I try to rewrite PCI0/6 with the same macro, but
the macro don't support parameter. For spliting up multiple parts, if modify
something in future, the parts need to split up to smaller parts. So, if
need to rewrite PCI0/6 with macro, is it applicable to add another macro
PCI_OSC_SUPPORT_HOTPLUG?

Thanks

> 
> /
>     Leif
> 
>> +  Name(SUPP, Zero) /* PCI _OSC Support Field value */ \
>> +  Name(CTRL, Zero) /* PCI _OSC Control Field value */ \
>> +  Method(_OSC,4) { \
>> +    If(LEqual(Arg0,ToUUID("33DB4D5B-1FF7-401C-9657-7441C03DD766"))) { \
>> +      /* Create DWord-adressable fields from the Capabilities Buffer */ \
>> +      CreateDWordField(Arg3,0,CDW1) \
>> +      CreateDWordField(Arg3,4,CDW2) \
>> +      CreateDWordField(Arg3,8,CDW3) \
>> +      /* Save Capabilities DWord2 & 3 */ \
>> +      Store(CDW2,SUPP) \
>> +      Store(CDW3,CTRL) \
>> +      /* Only allow native hot plug control if OS supports: */ \
>> +      /* ASPM */ \
>> +      /* Clock PM */ \
>> +      /* MSI/MSI-X */ \
>> +      If(LNotEqual(And(SUPP, 0x16), 0x16)) { \
>> +        And(CTRL,0x1E,CTRL) \
>> +      }\
>> +      \
>> +      /* Do not allow native PME, AER */ \
>> +      /* Never allow SHPC (no SHPC controller in this system)*/ \
>> +      And(CTRL,0x10,CTRL) \
>> +      If(LNotEqual(Arg1,One)) { /* Unknown revision */ \
>> +        Or(CDW1,0x08,CDW1) \
>> +      } \
>> +      \
>> +      If(LNotEqual(CDW3,CTRL)) { /* Capabilities bits were masked */ \
>> +        Or(CDW1,0x10,CDW1) \
>> +      } \
>> +      \
>> +      /* Update DWORD3 in the buffer */ \
>> +      Store(CTRL,CDW3) \
>> +      Return(Arg3) \
>> +    } Else { \
>> +      Or(CDW1,4,CDW1) /* Unrecognized UUID */ \
>> +      Return(Arg3) \
>> +    } \
>> +  } // End _OSC
>> +
>>  Scope(_SB)
>>  {
>>    Device (PCI0)
>> @@ -270,6 +314,8 @@ Device (PCI1)
>>      Return (RBUF)
>>    }                                         // Method(_CRS), this method return RBUF!
>>  
>> +  PCI_OSC_SUPPORT ()
>> +
>>    Method (_STA, 0x0, NotSerialized)
>>    {
>>      Return (0xf)
>> @@ -333,6 +379,8 @@ Device (PCI2)
>>      Return (RBUF)
>>    }                                         // Method(_CRS), this method return RBUF!
>>  
>> +  PCI_OSC_SUPPORT ()
>> +
>>    Method (_STA, 0x0, NotSerialized)
>>    {
>>      Return (0xf)
>> @@ -382,6 +430,8 @@ Device (PCI3)
>>      Return (RBUF)
>>    }                                         // Method(_CRS), this method return RBUF!
>>  
>> +  PCI_OSC_SUPPORT ()
>> +
>>    Method (_STA, 0x0, NotSerialized)
>>    {
>>      Return (0xf)
>> @@ -431,6 +481,8 @@ Device (PCI4)
>>      Return (RBUF)
>>    }                                         // Method(_CRS), this method return RBUF!
>>  
>> +  PCI_OSC_SUPPORT ()
>> +
>>    Method (_STA, 0x0, NotSerialized)
>>    {
>>      Return (0x0F)
>> @@ -505,6 +557,8 @@ Device (PCI5)
>>      Return (RBUF)
>>    }                                    // Method(_CRS), this method return RBUF!
>>  
>> +  PCI_OSC_SUPPORT ()
>> +
>>    Method (_STA, 0x0, NotSerialized)
>>    {
>>      Return (0xf)
>> @@ -1002,6 +1056,8 @@ Device (PCI7)
>>      Return (RBUF)
>>    }                                         // Method(_CRS), this method return RBUF!
>>  
>> +  PCI_OSC_SUPPORT ()
>> +
>>    Method (_STA, 0x0, NotSerialized)
>>    {
>>      Return (0xf)
>> @@ -1066,6 +1122,8 @@ Device (PCI8)
>>      Return (RBUF)
>>    }                                         // Method(_CRS), this method return RBUF!
>>  
>> +  PCI_OSC_SUPPORT ()
>> +
>>    Method (_STA, 0x0, NotSerialized)
>>    {
>>      Return (0xf)
>> @@ -1115,6 +1173,8 @@ Device (PCI9)
>>      Return (RBUF)
>>    }                                         // Method(_CRS), this method return RBUF!
>>  
>> +  PCI_OSC_SUPPORT ()
>> +
>>    Method (_STA, 0x0, NotSerialized)
>>    {
>>      Return (0xf)
>> @@ -1164,6 +1224,8 @@ Device (PCIA)
>>      Return (RBUF)
>>    }                                         // Method(_CRS), this method return RBUF!
>>  
>> +  PCI_OSC_SUPPORT ()
>> +
>>    Method (_STA, 0x0, NotSerialized)
>>    {
>>      Return (0x0F)
>> @@ -1238,6 +1300,8 @@ Device (PCIB)
>>      Return (RBUF)
>>    }                                         // Method(_CRS), this method return RBUF!
>>  
>> +  PCI_OSC_SUPPORT ()
>> +
>>    Method (_STA, 0x0, NotSerialized)
>>    {
>>      Return (0xf)
>> -- 
>> 2.9.5
>>


  reply	other threads:[~2019-02-13  2:59 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-02-01 13:34 [PATCH edk2-platforms v1 00/16] Fix issues and improve D0x Ming Huang
2019-02-01 13:34 ` [PATCH edk2-platforms v1 01/16] Hisilicon/D0x: Remove SerdesLib Ming Huang
2019-02-11 15:05   ` Leif Lindholm
2019-02-13  6:36     ` Ming Huang
2019-02-13  9:42       ` Leif Lindholm
2019-02-13 11:39         ` Ming Huang
2019-02-14 10:51         ` Ming Huang
2019-02-01 13:34 ` [PATCH edk2-platforms v1 02/16] Hisilicon/D0x: Add DriverHealthManagerDxe Ming Huang
2019-02-11 15:20   ` Leif Lindholm
2019-02-01 13:34 ` [PATCH edk2-platforms v1 03/16] Hisilicon/D06: Optimize SAS driver for reducing boot time Ming Huang
2019-02-12 15:12   ` Leif Lindholm
2019-02-13  6:01     ` Ming Huang
2019-02-01 13:34 ` [PATCH edk2-platforms v1 04/16] Hisilicon/D06: Fix access variable fail issue Ming Huang
2019-02-12 15:17   ` Leif Lindholm
2019-02-13  2:21     ` Ming Huang
2019-02-01 13:34 ` [PATCH edk2-platforms v1 05/16] Hisilicon/D06: Add more PCIe port INT-x support Ming Huang
2019-02-11 17:05   ` Leif Lindholm
2019-02-12 12:27     ` Ming Huang
2019-02-01 13:34 ` [PATCH edk2-platforms v1 06/16] Hisilicon/D06: Add OemGetCpuFreq to encapsulate difference Ming Huang
2019-02-11 17:15   ` Leif Lindholm
2019-02-13  2:29     ` Ming Huang
2019-02-01 13:34 ` [PATCH edk2-platforms v1 07/16] Hisilicon/D0x: Rename StartupAp() function Ming Huang
2019-02-11 18:04   ` Leif Lindholm
2019-02-01 13:34 ` [PATCH edk2-platforms v1 08/16] Hisilicon/D06: Change HCCS speed from 30G to 26G Ming Huang
2019-02-11 18:36   ` Leif Lindholm
2019-02-12 14:45     ` Ming Huang
2019-02-12 14:59       ` Leif Lindholm
2019-02-01 13:34 ` [PATCH edk2-platforms v1 09/16] Hisilicon/D06: Add PCI_OSC_SUPPORT Ming Huang
2019-02-11 18:51   ` Leif Lindholm
2019-02-13  2:59     ` Ming Huang [this message]
2019-02-13  9:08       ` Leif Lindholm
2019-02-01 13:34 ` [PATCH edk2-platforms v1 10/16] Hisilicon/D06: Modify for M7 self-Adapte support Ming Huang
2019-02-11 19:28   ` Leif Lindholm
2019-02-12 15:14     ` Ming Huang
2019-02-12 15:46       ` Leif Lindholm
2019-02-13  4:38         ` Ming Huang
2019-02-01 13:34 ` [PATCH edk2-platforms v1 11/16] Hisilicon/D06: Add Setup Item "Support DPC" Ming Huang
2019-02-11 19:46   ` Leif Lindholm
2019-02-12 15:22     ` Ming Huang
2019-02-12 15:49       ` Leif Lindholm
2019-02-01 13:34 ` [PATCH edk2-platforms v1 12/16] Hisilicon/D06: Use new flash layout Ming Huang
2019-02-11 14:54   ` Leif Lindholm
2019-02-13  4:43     ` Ming Huang
2019-02-01 13:34 ` [PATCH edk2-platforms v1 13/16] Hisilicon/D06: Remove SECURE_BOOT_ENABLE definition Ming Huang
2019-02-11 19:47   ` Leif Lindholm
2019-02-01 13:34 ` [PATCH edk2-platforms v1 14/16] Hisilicon/D0x: Remove SP805 watchdog pcd Ming Huang
2019-02-11 19:48   ` Leif Lindholm
2019-02-15 14:18 ` [PATCH edk2-platforms v1 00/16] Fix issues and improve D0x Ming Huang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=71d90497-0095-5709-9938-3ac31212bb8d@linaro.org \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox