linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Chen Gong <gong.chen@linux.intel.com>
To: Jiang Liu <liuj97@gmail.com>
Cc: Tony Luck <tony.luck@intel.com>, Len Brown <len.brown@intel.com>,
	linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org,
	ying.huang@intel.com
Subject: Re: [PATCH] acpi/apei/einj: Add extensions to EINJ from rev 5.0 of acpi spec
Date: Mon, 13 Feb 2012 10:24:32 +0800	[thread overview]
Message-ID: <4F387460.8090506@linux.intel.com> (raw)
In-Reply-To: <4F37874F.4010107@gmail.com>

于 2012/2/12 17:33, Jiang Liu 写道:
> Hi Tony and Gong,
> 	Should we remove the target memory address from the resource list of
> ACPI5 trigger too? Otherwise we may also encounter resource conflict with ACPI5
> trigger table.
>
> @@ -365,7 +365,7 @@ static int __einj_error_trigger(u64 trigger_paddr, u32 type,
>           * This will cause resource conflict with regular memory.  So
>           * remove it from trigger table resources.
>           */
> -       if (param_extension&&  (type&  0x0038)&&  param2) {
> +       if ((param_extension || acpi5)&&  (type&  0x0038)&&  param2) {
>                  struct apei_resources addr_resources;
>                  apei_resources_init(&addr_resources);
>                  trigger_param_region = einj_get_trigger_parameter_region(
> 	
> On 01/18/2012 04:10 AM, Tony Luck wrote:
>> @@ -293,12 +386,56 @@ static int __einj_error_inject(u32 type, u64 param1, u64 param2)
>>   	if (rc)
>>   		return rc;
>>   	apei_exec_ctx_set_input(&ctx, type);
>> -	rc = apei_exec_run(&ctx, ACPI_EINJ_SET_ERROR_TYPE);
>> -	if (rc)
>> -		return rc;
>> -	if (einj_param) {
>> -		writeq(param1,&einj_param->param1);
>> -		writeq(param2,&einj_param->param2);
>> +	if (acpi5) {
>> +		struct set_error_type_with_address *v5param = einj_param;
>> +
>> +		writel(type,&v5param->type);
>> +		if (type&  0x80000000) {
>> +			switch (vendor_flags) {
>> +			case SETWA_FLAGS_APICID:
>> +				writel(param1,&v5param->apicid);
>> +				break;
>> +			case SETWA_FLAGS_MEM:
>> +				writeq(param1,&v5param->memory_address);
>> +				writeq(param2,&v5param->memory_address_range);
>> +				break;
>> +			case SETWA_FLAGS_PCIE_SBDF:
>> +				writel(param1,&v5param->pcie_sbdf);
>> +				break;
>> +			}
>> +			writel(vendor_flags,&v5param->flags);
>> +		} else {
>> +			switch (type) {
>> +			case ACPI_EINJ_PROCESSOR_CORRECTABLE:
>> +			case ACPI_EINJ_PROCESSOR_UNCORRECTABLE:
>> +			case ACPI_EINJ_PROCESSOR_FATAL:
>> +				writel(param1,&v5param->apicid);
>> +				writel(SETWA_FLAGS_APICID,&v5param->flags);
>> +				break;
>> +			case ACPI_EINJ_MEMORY_CORRECTABLE:
>> +			case ACPI_EINJ_MEMORY_UNCORRECTABLE:
>> +			case ACPI_EINJ_MEMORY_FATAL:
>> +				writeq(param1,&v5param->memory_address);
>> +				writeq(param2,&v5param->memory_address_range);
>> +				writel(SETWA_FLAGS_MEM,&v5param->flags);
>> +				break;
>> +			case ACPI_EINJ_PCIX_CORRECTABLE:
>> +			case ACPI_EINJ_PCIX_UNCORRECTABLE:
>> +			case ACPI_EINJ_PCIX_FATAL:
>> +				writel(param1,&v5param->pcie_sbdf);
>> +				writel(SETWA_FLAGS_PCIE_SBDF,&v5param->flags);
>> +				break;
>> +			}
>> +		}
> I'm a little confused about the ACPI_EINJ_SET_ERROR_TYPE_WITH_ADDRESS command in ACPI5.
> The above code seems like a hard-coded version of
> apei_exec_run(&ctx, ACPI_EINJ_SET_ERROR_TYPE_WITH_ADDRESS).
> Hi Gong, could you please share the ACPI5 version of EINJ table with me? So I could
> get better understanding of the ACPI_EINJ_SET_ERROR_TYPE_WITH_ADDRESS command.
>

You can check ACPI5.0 spec 18.6 for detail. We have internal BIOS to support
ACPI5 and I'm not sure if there is external product to support ACPI5 formally.

  reply	other threads:[~2012-02-13  2:24 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-01-17 20:10 [PATCH] acpi/apei/einj: Add extensions to EINJ from rev 5.0 of acpi spec Tony Luck
2012-02-12  9:33 ` Jiang Liu
2012-02-13  2:24   ` Chen Gong [this message]
2012-02-13 23:06     ` Luck, Tony
2012-02-13 23:01   ` Luck, Tony
  -- strict thread matches above, loose matches on Subject: below --
2011-11-29 19:40 [PATCH] acpi-apei-einj: add " Luck, Tony
2012-01-04 22:29 ` [PATCH] acpi/apei/einj: Add " Tony Luck
2012-01-05  6:17   ` Chen Gong
2012-01-17 13:05   ` Len Brown
2012-01-17 19:14     ` Luck, Tony

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-all 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=4F387460.8090506@linux.intel.com \
    --to=gong.chen@linux.intel.com \
    --cc=len.brown@intel.com \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=liuj97@gmail.com \
    --cc=tony.luck@intel.com \
    --cc=ying.huang@intel.com \
    /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;
as well as URLs for NNTP newsgroup(s).