From: Pankaj Dubey <pankaj.dubey@samsung.com> To: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Cc: rmk+kernel@armlinux.org.uk, arnd@arndb.de, horms@verge.net.au, magnus.damm@gmail.com, geert+renesas@glider.be, vireshk@kernel.org, shiraz.linux.kernel@gmail.com, krzk@kernel.org, thomas.ab@samsung.com, Pankaj Dubey <pankaj.dubey@samsung.com>, Florian Fainelli <f.fainelli@gmail.com>, Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>, bcm-kernel-feedback-list@broadcom.com Subject: [PATCH 09/16] ARM: BCM: use generic API for enabling SCU Date: Mon, 14 Nov 2016 10:32:04 +0530 [thread overview] Message-ID: <1479099731-28108-10-git-send-email-pankaj.dubey@samsung.com> (raw) In-Reply-To: <1479099731-28108-1-git-send-email-pankaj.dubey@samsung.com> Now as we have of_scu_enable which takes care of mapping scu base from DT, lets use it. CC: Florian Fainelli <f.fainelli@gmail.com> CC: Ray Jui <rjui@broadcom.com> CC: Scott Branden <sbranden@broadcom.com> CC: bcm-kernel-feedback-list@broadcom.com Signed-off-by: Pankaj Dubey <pankaj.dubey@samsung.com> --- arch/arm/mach-bcm/bcm63xx_smp.c | 18 ++-------------- arch/arm/mach-bcm/platsmp.c | 46 +---------------------------------------- 2 files changed, 3 insertions(+), 61 deletions(-) diff --git a/arch/arm/mach-bcm/bcm63xx_smp.c b/arch/arm/mach-bcm/bcm63xx_smp.c index 9b6727e..a4c6ecd 100644 --- a/arch/arm/mach-bcm/bcm63xx_smp.c +++ b/arch/arm/mach-bcm/bcm63xx_smp.c @@ -20,9 +20,6 @@ #include "bcm63xx_smp.h" -/* Size of mapped Cortex A9 SCU address space */ -#define CORTEX_A9_SCU_SIZE 0x58 - /* * Enable the Cortex A9 Snoop Control Unit * @@ -35,7 +32,6 @@ */ static int __init scu_a9_enable(void) { - unsigned long config_base; void __iomem *scu_base; unsigned int i, ncores; @@ -44,19 +40,9 @@ static int __init scu_a9_enable(void) return -ENXIO; } - /* Config base address register value is zero for uniprocessor */ - config_base = scu_a9_get_base(); - if (!config_base) { - pr_err("hardware reports only one core\n"); - return -ENOENT; - } - - scu_base = ioremap((phys_addr_t)config_base, CORTEX_A9_SCU_SIZE); - if (!scu_base) { - pr_err("failed to remap config base (%lu/%u) for SCU\n", - config_base, CORTEX_A9_SCU_SIZE); + scu_base = of_scu_get_base(); + if (IS_ERR(scu_base)) return -ENOMEM; - } scu_enable(scu_base); diff --git a/arch/arm/mach-bcm/platsmp.c b/arch/arm/mach-bcm/platsmp.c index 3ac3a9b..743599a 100644 --- a/arch/arm/mach-bcm/platsmp.c +++ b/arch/arm/mach-bcm/platsmp.c @@ -28,9 +28,6 @@ #include <asm/smp_plat.h> #include <asm/smp_scu.h> -/* Size of mapped Cortex A9 SCU address space */ -#define CORTEX_A9_SCU_SIZE 0x58 - #define SECONDARY_TIMEOUT_NS NSEC_PER_MSEC /* 1 msec (in nanoseconds) */ #define BOOT_ADDR_CPUID_MASK 0x3 @@ -38,47 +35,6 @@ #define OF_SECONDARY_BOOT "secondary-boot-reg" #define MPIDR_CPUID_BITMASK 0x3 -/* - * Enable the Cortex A9 Snoop Control Unit - * - * By the time this is called we already know there are multiple - * cores present. We assume we're running on a Cortex A9 processor, - * so any trouble getting the base address register or getting the - * SCU base is a problem. - * - * Return 0 if successful or an error code otherwise. - */ -static int __init scu_a9_enable(void) -{ - unsigned long config_base; - void __iomem *scu_base; - - if (!scu_a9_has_base()) { - pr_err("no configuration base address register!\n"); - return -ENXIO; - } - - /* Config base address register value is zero for uniprocessor */ - config_base = scu_a9_get_base(); - if (!config_base) { - pr_err("hardware reports only one core\n"); - return -ENOENT; - } - - scu_base = ioremap((phys_addr_t)config_base, CORTEX_A9_SCU_SIZE); - if (!scu_base) { - pr_err("failed to remap config base (%lu/%u) for SCU\n", - config_base, CORTEX_A9_SCU_SIZE); - return -ENOMEM; - } - - scu_enable(scu_base); - - iounmap(scu_base); /* That's the last we'll need of this */ - - return 0; -} - static u32 secondary_boot_addr_for(unsigned int cpu) { u32 secondary_boot_addr = 0; @@ -134,7 +90,7 @@ static void __init bcm_smp_prepare_cpus(unsigned int max_cpus) const cpumask_t only_cpu_0 = { CPU_BITS_CPU0 }; /* Enable the SCU on Cortex A9 based SoCs */ - if (scu_a9_enable()) { + if (of_scu_enable()) { /* Update the CPU present map to reflect uniprocessor mode */ pr_warn("failed to enable A9 SCU - disabling SMP\n"); init_cpu_present(&only_cpu_0); -- 2.7.4
WARNING: multiple messages have this Message-ID (diff)
From: pankaj.dubey@samsung.com (Pankaj Dubey) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH 09/16] ARM: BCM: use generic API for enabling SCU Date: Mon, 14 Nov 2016 10:32:04 +0530 [thread overview] Message-ID: <1479099731-28108-10-git-send-email-pankaj.dubey@samsung.com> (raw) In-Reply-To: <1479099731-28108-1-git-send-email-pankaj.dubey@samsung.com> Now as we have of_scu_enable which takes care of mapping scu base from DT, lets use it. CC: Florian Fainelli <f.fainelli@gmail.com> CC: Ray Jui <rjui@broadcom.com> CC: Scott Branden <sbranden@broadcom.com> CC: bcm-kernel-feedback-list at broadcom.com Signed-off-by: Pankaj Dubey <pankaj.dubey@samsung.com> --- arch/arm/mach-bcm/bcm63xx_smp.c | 18 ++-------------- arch/arm/mach-bcm/platsmp.c | 46 +---------------------------------------- 2 files changed, 3 insertions(+), 61 deletions(-) diff --git a/arch/arm/mach-bcm/bcm63xx_smp.c b/arch/arm/mach-bcm/bcm63xx_smp.c index 9b6727e..a4c6ecd 100644 --- a/arch/arm/mach-bcm/bcm63xx_smp.c +++ b/arch/arm/mach-bcm/bcm63xx_smp.c @@ -20,9 +20,6 @@ #include "bcm63xx_smp.h" -/* Size of mapped Cortex A9 SCU address space */ -#define CORTEX_A9_SCU_SIZE 0x58 - /* * Enable the Cortex A9 Snoop Control Unit * @@ -35,7 +32,6 @@ */ static int __init scu_a9_enable(void) { - unsigned long config_base; void __iomem *scu_base; unsigned int i, ncores; @@ -44,19 +40,9 @@ static int __init scu_a9_enable(void) return -ENXIO; } - /* Config base address register value is zero for uniprocessor */ - config_base = scu_a9_get_base(); - if (!config_base) { - pr_err("hardware reports only one core\n"); - return -ENOENT; - } - - scu_base = ioremap((phys_addr_t)config_base, CORTEX_A9_SCU_SIZE); - if (!scu_base) { - pr_err("failed to remap config base (%lu/%u) for SCU\n", - config_base, CORTEX_A9_SCU_SIZE); + scu_base = of_scu_get_base(); + if (IS_ERR(scu_base)) return -ENOMEM; - } scu_enable(scu_base); diff --git a/arch/arm/mach-bcm/platsmp.c b/arch/arm/mach-bcm/platsmp.c index 3ac3a9b..743599a 100644 --- a/arch/arm/mach-bcm/platsmp.c +++ b/arch/arm/mach-bcm/platsmp.c @@ -28,9 +28,6 @@ #include <asm/smp_plat.h> #include <asm/smp_scu.h> -/* Size of mapped Cortex A9 SCU address space */ -#define CORTEX_A9_SCU_SIZE 0x58 - #define SECONDARY_TIMEOUT_NS NSEC_PER_MSEC /* 1 msec (in nanoseconds) */ #define BOOT_ADDR_CPUID_MASK 0x3 @@ -38,47 +35,6 @@ #define OF_SECONDARY_BOOT "secondary-boot-reg" #define MPIDR_CPUID_BITMASK 0x3 -/* - * Enable the Cortex A9 Snoop Control Unit - * - * By the time this is called we already know there are multiple - * cores present. We assume we're running on a Cortex A9 processor, - * so any trouble getting the base address register or getting the - * SCU base is a problem. - * - * Return 0 if successful or an error code otherwise. - */ -static int __init scu_a9_enable(void) -{ - unsigned long config_base; - void __iomem *scu_base; - - if (!scu_a9_has_base()) { - pr_err("no configuration base address register!\n"); - return -ENXIO; - } - - /* Config base address register value is zero for uniprocessor */ - config_base = scu_a9_get_base(); - if (!config_base) { - pr_err("hardware reports only one core\n"); - return -ENOENT; - } - - scu_base = ioremap((phys_addr_t)config_base, CORTEX_A9_SCU_SIZE); - if (!scu_base) { - pr_err("failed to remap config base (%lu/%u) for SCU\n", - config_base, CORTEX_A9_SCU_SIZE); - return -ENOMEM; - } - - scu_enable(scu_base); - - iounmap(scu_base); /* That's the last we'll need of this */ - - return 0; -} - static u32 secondary_boot_addr_for(unsigned int cpu) { u32 secondary_boot_addr = 0; @@ -134,7 +90,7 @@ static void __init bcm_smp_prepare_cpus(unsigned int max_cpus) const cpumask_t only_cpu_0 = { CPU_BITS_CPU0 }; /* Enable the SCU on Cortex A9 based SoCs */ - if (scu_a9_enable()) { + if (of_scu_enable()) { /* Update the CPU present map to reflect uniprocessor mode */ pr_warn("failed to enable A9 SCU - disabling SMP\n"); init_cpu_present(&only_cpu_0); -- 2.7.4
next prev parent reply other threads:[~2016-11-14 5:02 UTC|newest] Thread overview: 97+ messages / expand[flat|nested] mbox.gz Atom feed top 2016-11-14 5:01 [PATCH 00/16] Provide support of generic function for SCU enable Pankaj Dubey 2016-11-14 5:01 ` Pankaj Dubey 2016-11-14 5:01 ` [PATCH 01/16] ARM: scu: Provide support for parsing SCU device node to enable SCU Pankaj Dubey 2016-11-14 5:01 ` Pankaj Dubey 2016-11-14 6:12 ` Jisheng Zhang 2016-11-14 6:12 ` Jisheng Zhang 2016-11-14 6:54 ` Jisheng Zhang 2016-11-14 6:54 ` Jisheng Zhang 2016-11-14 8:23 ` pankaj.dubey 2016-11-14 8:23 ` pankaj.dubey 2016-11-14 8:47 ` Jisheng Zhang 2016-11-14 8:47 ` Jisheng Zhang 2016-11-14 8:40 ` pankaj.dubey 2016-11-14 8:40 ` pankaj.dubey 2016-11-14 12:03 ` Arnd Bergmann 2016-11-14 12:03 ` Arnd Bergmann 2016-11-14 13:50 ` Russell King - ARM Linux 2016-11-14 13:50 ` Russell King - ARM Linux 2016-11-14 14:37 ` Arnd Bergmann 2016-11-14 14:37 ` Arnd Bergmann 2016-11-14 14:51 ` Russell King - ARM Linux 2016-11-14 14:51 ` Russell King - ARM Linux 2016-11-17 4:20 ` pankaj.dubey 2016-11-17 4:20 ` pankaj.dubey 2016-11-17 17:03 ` Arnd Bergmann 2016-11-17 17:03 ` Arnd Bergmann 2016-11-18 3:24 ` pankaj.dubey 2016-11-18 3:24 ` pankaj.dubey 2016-11-18 12:14 ` Arnd Bergmann 2016-11-18 12:14 ` Arnd Bergmann 2016-11-18 12:48 ` Russell King - ARM Linux 2016-11-18 12:48 ` Russell King - ARM Linux 2016-11-18 13:32 ` Arnd Bergmann 2016-11-18 13:32 ` Arnd Bergmann 2016-12-08 15:18 ` Pankaj Dubey 2016-12-08 15:18 ` Pankaj Dubey 2016-11-14 13:48 ` Russell King - ARM Linux 2016-11-14 13:48 ` Russell King - ARM Linux 2016-11-17 2:22 ` pankaj.dubey 2016-11-17 2:22 ` pankaj.dubey 2016-11-14 5:01 ` [PATCH 02/16] ARM: EXYNOS: use generic API " Pankaj Dubey 2016-11-14 5:01 ` Pankaj Dubey 2016-11-14 5:01 ` Pankaj Dubey 2016-11-15 18:59 ` Krzysztof Kozlowski 2016-11-15 18:59 ` Krzysztof Kozlowski 2016-11-17 2:15 ` pankaj.dubey 2016-11-17 2:15 ` pankaj.dubey 2016-11-14 5:01 ` [PATCH 03/16] ARM: berlin: use generic API for enabling SCU Pankaj Dubey 2016-11-14 5:01 ` Pankaj Dubey 2016-11-14 8:51 ` Jisheng Zhang 2016-11-14 8:51 ` Jisheng Zhang 2016-11-14 16:20 ` Pankaj Dubey 2016-11-14 16:20 ` Pankaj Dubey 2016-11-14 5:01 ` [PATCH 04/16] ARM: realview: " Pankaj Dubey 2016-11-14 5:01 ` Pankaj Dubey 2016-11-14 11:56 ` Arnd Bergmann 2016-11-14 11:56 ` Arnd Bergmann 2016-11-14 12:06 ` pankaj.dubey 2016-11-14 12:06 ` pankaj.dubey 2016-11-14 14:28 ` Arnd Bergmann 2016-11-14 14:28 ` Arnd Bergmann 2016-11-14 13:19 ` Pankaj Dubey 2016-11-14 13:19 ` Pankaj Dubey 2016-11-14 5:02 ` [PATCH 05/16] ARM: socfpga: " Pankaj Dubey 2016-11-14 5:02 ` Pankaj Dubey 2016-11-14 5:02 ` [PATCH 06/16] ARM: STi: " Pankaj Dubey 2016-11-14 5:02 ` Pankaj Dubey 2016-11-14 5:02 ` [PATCH 07/16] ARM: ux500: " Pankaj Dubey 2016-11-14 5:02 ` Pankaj Dubey 2016-11-14 5:02 ` [PATCH 08/16] ARM: vexpress: " Pankaj Dubey 2016-11-14 5:02 ` Pankaj Dubey 2016-11-16 14:34 ` Sudeep Holla 2016-11-16 14:34 ` Sudeep Holla 2016-11-17 2:12 ` pankaj.dubey 2016-11-17 2:12 ` pankaj.dubey 2016-11-14 5:02 ` Pankaj Dubey [this message] 2016-11-14 5:02 ` [PATCH 09/16] ARM: BCM: " Pankaj Dubey 2016-11-14 6:10 ` Florian Fainelli 2016-11-14 6:10 ` Florian Fainelli 2016-11-14 5:02 ` [PATCH 10/16] ARM: tegra: " Pankaj Dubey 2016-11-14 5:02 ` Pankaj Dubey 2016-11-14 5:02 ` [PATCH 11/16] ARM: rockchip: " Pankaj Dubey 2016-11-14 5:02 ` Pankaj Dubey 2016-11-14 5:02 ` [PATCH 12/16] ARM: imx: " Pankaj Dubey 2016-11-14 5:02 ` Pankaj Dubey 2016-11-14 14:26 ` Shawn Guo 2016-11-14 14:26 ` Shawn Guo 2016-11-17 4:29 ` pankaj.dubey 2016-11-17 4:29 ` pankaj.dubey 2016-11-14 5:02 ` [PATCH 13/16] ARM: zynq: " Pankaj Dubey 2016-11-14 5:02 ` Pankaj Dubey 2016-11-14 5:02 ` [PATCH 14/16] ARM: hisi: " Pankaj Dubey 2016-11-14 5:02 ` Pankaj Dubey 2016-11-14 5:02 ` [PATCH 15/16] ARM: mvebu: " Pankaj Dubey 2016-11-14 5:02 ` Pankaj Dubey 2016-11-14 5:02 ` [PATCH 16/16] ARM: zx: " Pankaj Dubey 2016-11-14 5:02 ` Pankaj Dubey
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=1479099731-28108-10-git-send-email-pankaj.dubey@samsung.com \ --to=pankaj.dubey@samsung.com \ --cc=arnd@arndb.de \ --cc=bcm-kernel-feedback-list@broadcom.com \ --cc=f.fainelli@gmail.com \ --cc=geert+renesas@glider.be \ --cc=horms@verge.net.au \ --cc=krzk@kernel.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=magnus.damm@gmail.com \ --cc=rjui@broadcom.com \ --cc=rmk+kernel@armlinux.org.uk \ --cc=sbranden@broadcom.com \ --cc=shiraz.linux.kernel@gmail.com \ --cc=thomas.ab@samsung.com \ --cc=vireshk@kernel.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: 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.