From: lorenzo.pieralisi@arm.com (Lorenzo Pieralisi)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3] ARM64: kernel: implement ACPI parking protocol
Date: Wed, 24 Feb 2016 15:03:14 +0000 [thread overview]
Message-ID: <20160224150314.GD25385@red-moon> (raw)
In-Reply-To: <20160224141832.GA26630@red-moon>
On Wed, Feb 24, 2016 at 02:18:32PM +0000, Lorenzo Pieralisi wrote:
[...]
> static int acpi_parking_protocol_cpu_boot(unsigned int cpu)
> {
> struct cpu_mailbox_entry *cpu_entry = &cpu_mailbox_entries[cpu];
> @@ -107,7 +108,11 @@ static int acpi_parking_protocol_cpu_boot(unsigned int cpu)
>
> arch_send_wakeup_ipi_mask(cpumask_of(cpu));
>
> - iounmap(mailbox);
> + /*
> + * stash the mailbox address mapping to use it for checks
> + * in post boot method
> + */
> + cpu_entry->mailbox = mailbox;
The mailbox VA entry should be stashed before setting up the mailbox
and sending the IPI, anyway, if Loc and Itaru can test it I will wrap
this change into the final version with appropriate log.
Lorenzo
>
> 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 = {
next prev parent reply other threads:[~2016-02-24 15:03 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 [this message]
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
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=20160224150314.GD25385@red-moon \
--to=lorenzo.pieralisi@arm.com \
--cc=linux-arm-kernel@lists.infradead.org \
/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).