public inbox for linux-acpi@vger.kernel.org
 help / color / mirror / Atom feed
From: Itaru Kitayama <itaru.kitayama@riken.jp>
To: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>,
	Mark Rutland <mark.rutland@arm.com>,
	Sudeep Holla <sudeep.holla@arm.com>,
	Will Deacon <will.deacon@arm.com>,
	linux-acpi@vger.kernel.org, Hanjun Guo <hanjun.guo@linaro.org>,
	Mark Salter <msalter@redhat.com>, Al Stone <ahs3@redhat.com>,
	linux-arm-kernel@lists.infradead.org, Loc Ho <lho@apm.com>
Subject: Re: [PATCH v3] ARM64: kernel: implement ACPI parking protocol
Date: Fri, 26 Feb 2016 09:23:56 +0900	[thread overview]
Message-ID: <56CF9B1C.6050303@riken.jp> (raw)
In-Reply-To: <20160225092427.GA31728@red-moon>

Hi Lorenzo,

I have applied your latest patch on top of today's HEAD of for-next/core 
(cac4b8cd),
and confirmed the kernel boots fine with acpi=force. No lockdep warning 
was seen,
all 8 CPUs were successfully brought up.

Itaru

On 2/25/16 6:24 PM, Lorenzo Pieralisi wrote:
> On Thu, Feb 25, 2016 at 08:28:30AM +0900, Itaru Kitayama wrote:
>> Lorenzo,
>>
>> On Mustang the lockdep warning I reported to you is disappeared and
>> the system gets to
>> the prompt as you implemented, however only 7 CPUs out of 8 brought up.
> It is because, as I mentioned in the other reply to this thread,
> the VA should be stashed before setting up the mailboxes, patch below,
> that should be final (I tested it on AMD Seattle too), please give it a go.
>
> Thanks,
> Lorenzo
>
> -- >8 --
> diff --git a/arch/arm64/kernel/acpi_parking_protocol.c b/arch/arm64/kernel/acpi_parking_protocol.c
> index 4b1e5a7..dd671ef 100644
> --- a/arch/arm64/kernel/acpi_parking_protocol.c
> +++ b/arch/arm64/kernel/acpi_parking_protocol.c
> @@ -21,7 +21,14 @@
>   
>   #include <asm/cpu_ops.h>
>   
> +struct parking_protocol_mailbox {
> +	__le32 cpu_id;
> +	__le32 reserved;
> +	__le64 entry_point;
> +};
> +
>   struct cpu_mailbox_entry {
> +	struct parking_protocol_mailbox __iomem *mailbox;
>   	phys_addr_t mailbox_addr;
>   	u8 version;
>   	u8 gic_cpu_id;
> @@ -59,12 +66,6 @@ static int acpi_parking_protocol_cpu_prepare(unsigned int cpu)
>   	return 0;
>   }
>   
> -struct parking_protocol_mailbox {
> -	__le32 cpu_id;
> -	__le32 reserved;
> -	__le64 entry_point;
> -};
> -
>   static int acpi_parking_protocol_cpu_boot(unsigned int cpu)
>   {
>   	struct cpu_mailbox_entry *cpu_entry = &cpu_mailbox_entries[cpu];
> @@ -97,6 +98,12 @@ static int acpi_parking_protocol_cpu_boot(unsigned int cpu)
>   	}
>   
>   	/*
> +	 * stash the mailbox address mapping to use it for further checks
> +	 * in postboot method
> +	 */
> +	cpu_entry->mailbox = mailbox;
> +
> +	/*
>   	 * We write the entry point and cpu id as LE regardless of the
>   	 * native endianness of the kernel. Therefore, any boot-loaders
>   	 * that read this address need to convert this address to the
> @@ -107,8 +114,6 @@ static int acpi_parking_protocol_cpu_boot(unsigned int cpu)
>   
>   	arch_send_wakeup_ipi_mask(cpumask_of(cpu));
>   
> -	iounmap(mailbox);
> -
>   	return 0;
>   }
>   
> @@ -116,32 +121,15 @@ static void acpi_parking_protocol_cpu_postboot(void)
>   {
>   	int cpu = smp_processor_id();
>   	struct cpu_mailbox_entry *cpu_entry = &cpu_mailbox_entries[cpu];
> -	struct parking_protocol_mailbox __iomem *mailbox;
> +	struct parking_protocol_mailbox __iomem *mailbox = cpu_entry->mailbox;
>   	__le64 entry_point;
>   
> -	/*
> -	 * Map mailbox memory with attribute device nGnRE (ie ioremap -
> -	 * this deviates from the parking protocol specifications since
> -	 * the mailboxes are required to be mapped nGnRnE; the attribute
> -	 * discrepancy is harmless insofar as the protocol specification
> -	 * is concerned).
> -	 * If the mailbox is mistakenly allocated in the linear mapping
> -	 * by FW ioremap will fail since the mapping will be prevented
> -	 * by the kernel (it clashes with the linear mapping attributes
> -	 * specifications).
> -	 */
> -	mailbox = ioremap(cpu_entry->mailbox_addr, sizeof(*mailbox));
> -	if (!mailbox)
> -		return;
> -
>   	entry_point = readl_relaxed(&mailbox->entry_point);
>   	/*
>   	 * Check if firmware has cleared the entry_point as expected
>   	 * by the protocol specification.
>   	 */
>   	WARN_ON(entry_point);
> -
> -	iounmap(mailbox);
>   }
>   
>   const struct cpu_operations acpi_parking_protocol_ops = {


      parent reply	other threads:[~2016-02-26  0:24 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-26 11:10 [PATCH v3] ARM64: kernel: implement ACPI parking protocol Lorenzo Pieralisi
2016-01-26 17:47 ` Lorenzo Pieralisi
2016-01-27 10:23   ` Ard Biesheuvel
2016-01-27 11:46     ` Lorenzo Pieralisi
2016-01-26 23:13 ` Loc Ho
2016-01-27 11:51   ` Lorenzo Pieralisi
2016-01-27 17:41     ` Loc Ho
2016-02-02 18:26 ` Catalin Marinas
2016-02-03 11:21   ` Lorenzo Pieralisi
2016-02-03 16:18     ` Catalin Marinas
2016-02-24 14:18       ` Lorenzo Pieralisi
2016-02-24 15:03         ` Lorenzo Pieralisi
2016-02-24 23:28         ` Itaru Kitayama
2016-02-25  9:24           ` Lorenzo Pieralisi
2016-02-25 20:58             ` Loc Ho
2016-02-26  0:23             ` Itaru Kitayama [this message]

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=56CF9B1C.6050303@riken.jp \
    --to=itaru.kitayama@riken.jp \
    --cc=ahs3@redhat.com \
    --cc=catalin.marinas@arm.com \
    --cc=hanjun.guo@linaro.org \
    --cc=lho@apm.com \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=lorenzo.pieralisi@arm.com \
    --cc=mark.rutland@arm.com \
    --cc=msalter@redhat.com \
    --cc=sudeep.holla@arm.com \
    --cc=will.deacon@arm.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