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
WARNING: multiple messages have this Message-ID (diff)
From: gregory.clement@free-electrons.com (Gregory CLEMENT) To: linux-arm-kernel@lists.infradead.org Subject: [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
next prev parent reply other threads:[~2014-06-27 14:14 UTC|newest] Thread overview: 120+ 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 ` 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-27 13:22 ` Gregory CLEMENT 2014-06-30 12:16 ` Thomas Petazzoni 2014-06-30 12:16 ` Thomas Petazzoni 2014-07-02 22:57 ` Gregory CLEMENT 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-27 13:22 ` Gregory CLEMENT 2014-06-30 12:40 ` Thomas Petazzoni 2014-06-30 12:40 ` Thomas Petazzoni 2014-07-02 22:58 ` Gregory CLEMENT 2014-07-02 22:58 ` Gregory CLEMENT 2014-07-03 7:16 ` Thomas Petazzoni 2014-07-03 7:16 ` Thomas Petazzoni 2014-07-01 14:34 ` Thomas Petazzoni 2014-07-01 14:34 ` Thomas Petazzoni 2014-07-02 22:58 ` Gregory CLEMENT 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 13:22 ` Gregory CLEMENT 2014-06-27 14:14 ` Gregory CLEMENT [this message] 2014-06-27 14:14 ` Gregory CLEMENT 2014-06-30 12:46 ` Thomas Petazzoni 2014-06-30 12:46 ` Thomas Petazzoni 2014-07-03 8:39 ` Gregory CLEMENT 2014-07-03 8:39 ` Gregory CLEMENT 2014-07-03 9:25 ` Thomas Petazzoni 2014-07-03 9:25 ` Thomas Petazzoni 2014-07-03 10:07 ` Gregory CLEMENT 2014-07-03 10:07 ` Gregory CLEMENT 2014-07-01 11:46 ` Thomas Petazzoni 2014-07-01 11:46 ` Thomas Petazzoni 2014-07-01 15:02 ` Ezequiel Garcia 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 ` Gregory CLEMENT 2014-06-27 13:22 ` [PATCH 05/16] ARM: mvebu: Add workaround for cpuidle support for Armada 370 Gregory CLEMENT 2014-06-27 13:22 ` Gregory CLEMENT 2014-06-30 12:50 ` Thomas Petazzoni 2014-06-30 12:50 ` Thomas Petazzoni 2014-07-03 8:44 ` Gregory CLEMENT 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-27 13:22 ` Gregory CLEMENT 2014-06-30 12:57 ` Thomas Petazzoni 2014-06-30 12:57 ` Thomas Petazzoni 2014-07-03 8:47 ` Gregory CLEMENT 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 13:22 ` Gregory CLEMENT 2014-06-27 14:15 ` Gregory CLEMENT 2014-06-27 14:15 ` Gregory CLEMENT 2014-06-28 14:56 ` Jason Cooper 2014-06-28 14:56 ` Jason Cooper 2014-06-30 10:30 ` Gregory CLEMENT 2014-06-30 10:30 ` Gregory CLEMENT 2014-06-30 14:07 ` Thomas Petazzoni 2014-06-30 14:07 ` Thomas Petazzoni 2014-07-03 8:54 ` Gregory CLEMENT 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-27 13:22 ` Gregory CLEMENT 2014-06-30 15:09 ` Thomas Petazzoni 2014-06-30 15:09 ` Thomas Petazzoni 2014-07-03 9:24 ` Gregory CLEMENT 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-27 13:22 ` Gregory CLEMENT 2014-06-30 15:43 ` Thomas Petazzoni 2014-06-30 15:43 ` Thomas Petazzoni 2014-07-03 12:50 ` Gregory CLEMENT 2014-07-03 12:50 ` Gregory CLEMENT 2014-07-03 12:55 ` Thomas Petazzoni 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 ` Gregory CLEMENT 2014-06-27 13:22 ` [PATCH 11/16] ARM: mvebu: dts: Add CA9 MPcore SoC Controller node Gregory CLEMENT 2014-06-27 13:22 ` Gregory CLEMENT 2014-06-30 15:37 ` Thomas Petazzoni 2014-06-30 15:37 ` Thomas Petazzoni 2014-07-03 12:51 ` Gregory CLEMENT 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-27 13:22 ` Gregory CLEMENT 2014-06-30 13:28 ` Thomas Petazzoni 2014-06-30 13:28 ` Thomas Petazzoni 2014-07-03 13:08 ` Gregory CLEMENT 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-27 13:22 ` Gregory CLEMENT 2014-06-30 13:32 ` Thomas Petazzoni 2014-06-30 13:32 ` Thomas Petazzoni 2014-07-03 13:23 ` Gregory CLEMENT 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-27 13:22 ` Gregory CLEMENT 2014-06-30 13:36 ` Thomas Petazzoni 2014-06-30 13:36 ` Thomas Petazzoni 2014-07-03 15:03 ` Gregory CLEMENT 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-27 13:22 ` Gregory CLEMENT 2014-06-30 15:07 ` Thomas Petazzoni 2014-06-30 15:07 ` Thomas Petazzoni 2014-07-03 15:29 ` Gregory CLEMENT 2014-07-03 15:29 ` Gregory CLEMENT 2014-07-01 14:35 ` Thomas Petazzoni 2014-07-01 14:35 ` Thomas Petazzoni 2014-07-03 15:09 ` Gregory CLEMENT 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-27 13:22 ` Gregory CLEMENT 2014-06-30 15:45 ` [PATCH 00/16] CPU Idle for Armada 370 and Armada 38x Thomas Petazzoni 2014-06-30 15:45 ` Thomas Petazzoni 2014-06-30 15:51 ` Gregory CLEMENT 2014-06-30 15:51 ` Gregory CLEMENT 2014-07-01 14:38 ` Thomas Petazzoni 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: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.