public inbox for linux-pm@vger.kernel.org
 help / color / mirror / Atom feed
From: Gregory CLEMENT <gregory.clement@free-electrons.com>
To: Daniel Lezcano <daniel.lezcano@linaro.org>,
	"Rafael J. Wysocki" <rjw@rjwysocki.net>,
	linux-pm@vger.kernel.org, Jason Cooper <jason@lakedaemon.net>,
	Andrew Lunn <andrew@lunn.ch>,
	Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>,
	Gregory CLEMENT <gregory.clement@free-electrons.com>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>,
	Ezequiel Garcia <ezequiel.garcia@free-electrons.com>,
	linux-arm-kernel@lists.infradead.org,
	Lior Amsalem <alior@marvell.com>,
	Tawfik Bayouk <tawfik@marvell.com>,
	Nadav Haklai <nadavh@marvell.com>
Subject: Re: [PATCH 03/16] ARM: mvebu: Add function to export the physical address of the boot register
Date: Fri, 27 Jun 2014 16:14:15 +0200	[thread overview]
Message-ID: <53AD7C37.7090204@free-electrons.com> (raw)
In-Reply-To: <1403875377-940-4-git-send-email-gregory.clement@free-electrons.com>

On 27/06/2014 15:22, Gregory CLEMENT wrote:
> In order to boot the secondary CPUs on Armada 375 Z1, we need to read
> the boot address of these CPUs through a register part of the System
> Controller. This done very early where MMU is not enable yet, so we
> need to get the physical address of this register to use it.
> 
> In the previous version of this workaround the physical address were
> hardcoded whereas depending of the Mbus configuration this address may
> change.
> 
> This commit will allow to use the generic boot workaround function
> with the correct address.

I forgot my signed-off here
Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>

> ---
>  arch/arm/mach-mvebu/common.h            |  1 +
>  arch/arm/mach-mvebu/system-controller.c | 11 +++++++++++
>  2 files changed, 12 insertions(+)
> 
> diff --git a/arch/arm/mach-mvebu/common.h b/arch/arm/mach-mvebu/common.h
> index b67fb7a10d8b..6ad62cf8352c 100644
> --- a/arch/arm/mach-mvebu/common.h
> +++ b/arch/arm/mach-mvebu/common.h
> @@ -20,6 +20,7 @@
>  void mvebu_restart(enum reboot_mode mode, const char *cmd);
>  int mvebu_cpu_reset_deassert(int cpu);
>  void mvebu_pmsu_set_cpu_boot_addr(int hw_cpu, void *boot_addr);
> +u32 mvebu_system_controller_get_phys_addr(void);
>  void mvebu_system_controller_set_cpu_boot_addr(void *boot_addr);
>  
>  void armada_xp_cpu_die(unsigned int cpu);
> diff --git a/arch/arm/mach-mvebu/system-controller.c b/arch/arm/mach-mvebu/system-controller.c
> index 0c5524ac75b7..ae6ab543aa36 100644
> --- a/arch/arm/mach-mvebu/system-controller.c
> +++ b/arch/arm/mach-mvebu/system-controller.c
> @@ -30,6 +30,7 @@
>  #include "common.h"
>  
>  static void __iomem *system_controller_base;
> +static u32 system_controller_phys_base;
>  
>  struct mvebu_system_controller {
>  	u32 rstoutn_mask_offset;
> @@ -109,6 +110,13 @@ void mvebu_system_controller_set_cpu_boot_addr(void *boot_addr)
>  	writel(virt_to_phys(boot_addr), system_controller_base +
>  	       mvebu_sc->resume_boot_addr);
>  }
> +
> +u32 mvebu_system_controller_get_phys_addr(void)
> +{
> +	BUG_ON(system_controller_phys_base == NULL);
> +	BUG_ON(mvebu_sc->resume_boot_addr == 0);
> +	return system_controller_phys_base + mvebu_sc->resume_boot_addr;
> +}
>  #endif
>  
>  static int __init mvebu_system_controller_init(void)
> @@ -119,7 +127,10 @@ static int __init mvebu_system_controller_init(void)
>  	np = of_find_matching_node_and_match(NULL, of_system_controller_table,
>  					     &match);
>  	if (np) {
> +		struct resource res;
>  		system_controller_base = of_iomap(np, 0);
> +		of_address_to_resource(np, 0, &res);
> +		system_controller_phys_base = res.start;
>  		mvebu_sc = (struct mvebu_system_controller *)match->data;
>  		of_node_put(np);
>  	}
> 


-- 
Gregory Clement, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

  reply	other threads:[~2014-06-27 14:14 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-06-27 13:22 [PATCH 00/16] CPU Idle for Armada 370 and Armada 38x Gregory CLEMENT
2014-06-27 13:22 ` [PATCH 01/16] ARM: mvebu: Sort the headers of pmsu.c in alphabetic order Gregory CLEMENT
2014-06-30 12:16   ` Thomas Petazzoni
2014-07-02 22:57     ` Gregory CLEMENT
2014-06-27 13:22 ` [PATCH 02/16] ARM: mvebu: Add a common function for the boot address work around Gregory CLEMENT
2014-06-30 12:40   ` Thomas Petazzoni
2014-07-02 22:58     ` Gregory CLEMENT
2014-07-03  7:16       ` Thomas Petazzoni
2014-07-01 14:34   ` Thomas Petazzoni
2014-07-02 22:58     ` Gregory CLEMENT
2014-06-27 13:22 ` [PATCH 03/16] ARM: mvebu: Add function to export the physical address of the boot register Gregory CLEMENT
2014-06-27 14:14   ` Gregory CLEMENT [this message]
2014-06-30 12:46   ` Thomas Petazzoni
2014-07-03  8:39     ` Gregory CLEMENT
2014-07-03  9:25       ` Thomas Petazzoni
2014-07-03 10:07         ` Gregory CLEMENT
2014-07-01 11:46   ` Thomas Petazzoni
2014-07-01 15:02     ` Ezequiel Garcia
2014-06-27 13:22 ` [PATCH 04/16] ARM: mvebu: Use the common function for Armada 375 SMP workaround Gregory CLEMENT
2014-06-27 13:22 ` [PATCH 05/16] ARM: mvebu: Add workaround for cpuidle support for Armada 370 Gregory CLEMENT
2014-06-30 12:50   ` Thomas Petazzoni
2014-07-03  8:44     ` Gregory CLEMENT
2014-06-27 13:22 ` [PATCH 06/16] ARM: mvebu: Rename the armada_370_xp into mvebu_v7 in pmsu.c file Gregory CLEMENT
2014-06-30 12:57   ` Thomas Petazzoni
2014-07-03  8:47     ` Gregory CLEMENT
2014-06-27 13:22 ` [PATCH 07/16] ARM: mvebu: Make the CPU idle initialization more generic Gregory CLEMENT
2014-06-27 14:15   ` Gregory CLEMENT
2014-06-28 14:56     ` Jason Cooper
2014-06-30 10:30       ` Gregory CLEMENT
2014-06-30 14:07   ` Thomas Petazzoni
2014-07-03  8:54     ` Gregory CLEMENT
2014-06-27 13:22 ` [PATCH 08/16] ARM: mvebu: Use a local variable to store the resume address Gregory CLEMENT
2014-06-30 15:09   ` Thomas Petazzoni
2014-07-03  9:24     ` Gregory CLEMENT
2014-06-27 13:22 ` [PATCH 09/16] ARM: mvebu: Make the snoop disable optional in mvebu_v7_pmsu_idle_prepare Gregory CLEMENT
2014-06-30 15:43   ` Thomas Petazzoni
2014-07-03 12:50     ` Gregory CLEMENT
2014-07-03 12:55       ` Thomas Petazzoni
2014-06-27 13:22 ` [PATCH 10/16] ARM: mvebu: Export the SCU address Gregory CLEMENT
2014-06-27 13:22 ` [PATCH 11/16] ARM: mvebu: dts: Add CA9 MPcore SoC Controller node Gregory CLEMENT
2014-06-30 15:37   ` Thomas Petazzoni
2014-07-03 12:51     ` Gregory CLEMENT
2014-06-27 13:22 ` [PATCH 12/16] cpuidle: mvebu: Rename the driver from armada-370-xp to mvebu-v7 Gregory CLEMENT
2014-06-30 13:28   ` Thomas Petazzoni
2014-07-03 13:08     ` Gregory CLEMENT
2014-06-27 13:22 ` [PATCH 13/16] cpuidle: mvebu: Move the description of the cpuidle states in the platform part Gregory CLEMENT
2014-06-30 13:32   ` Thomas Petazzoni
2014-07-03 13:23     ` Gregory CLEMENT
2014-06-27 13:22 ` [PATCH 14/16] ARM: mvebu: Add CPU idle support for Armada 370 Gregory CLEMENT
2014-06-30 13:36   ` Thomas Petazzoni
2014-07-03 15:03     ` Gregory CLEMENT
2014-06-27 13:22 ` [PATCH 15/16] ARM: mvebu: Add CPU idle support for Armada 38x Gregory CLEMENT
2014-06-30 15:07   ` Thomas Petazzoni
2014-07-03 15:29     ` Gregory CLEMENT
2014-07-01 14:35   ` Thomas Petazzoni
2014-07-03 15:09     ` Gregory CLEMENT
2014-06-27 13:22 ` [PATCH 16/16] ARM: mvebu: defconfig: Enable CPU Idle support in mvebu_v7_defconfig Gregory CLEMENT
2014-06-30 15:45 ` [PATCH 00/16] CPU Idle for Armada 370 and Armada 38x Thomas Petazzoni
2014-06-30 15:51   ` Gregory CLEMENT
2014-07-01 14:38     ` Thomas Petazzoni

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=53AD7C37.7090204@free-electrons.com \
    --to=gregory.clement@free-electrons.com \
    --cc=alior@marvell.com \
    --cc=andrew@lunn.ch \
    --cc=daniel.lezcano@linaro.org \
    --cc=ezequiel.garcia@free-electrons.com \
    --cc=jason@lakedaemon.net \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=nadavh@marvell.com \
    --cc=rjw@rjwysocki.net \
    --cc=sebastian.hesselbarth@gmail.com \
    --cc=tawfik@marvell.com \
    --cc=thomas.petazzoni@free-electrons.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