Merge branch 'next/cross-platform' of git://git.linaro.org/people/arnd/arm-soc
* 'next/cross-platform' of git://git.linaro.org/people/arnd/arm-soc: arm/imx: use Kconfig choice for low-level debug UART selection ARM: realview: use Kconfig choice for debug UART selection ARM: plat-samsung: use Kconfig choice for debug UART selection ARM: versatile: convert logical CPU numbers to physical numbers ARM: ux500: convert logical CPU numbers to physical numbers ARM: shmobile: convert logical CPU numbers to physical numbers ARM: msm: convert logical CPU numbers to physical numbers ARM: exynos4: convert logical CPU numbers to physical numbers Fix up trivial conflict (config DEBUG_S3C_UART move/split vs addition of ARM_KPROBES_TEST option) in arch/arm/Kconfig.debug
This commit is contained in:
commit
6585dea1f9
@ -128,6 +128,111 @@ choice
|
||||
Say Y here if you want the debug print routines to direct
|
||||
their output to the second serial port on these devices.
|
||||
|
||||
config DEBUG_IMX1_UART
|
||||
bool "i.MX1 Debug UART"
|
||||
depends on SOC_IMX1
|
||||
help
|
||||
Say Y here if you want kernel low-level debugging support
|
||||
on i.MX1.
|
||||
|
||||
config DEBUG_IMX23_UART
|
||||
bool "i.MX23 Debug UART"
|
||||
depends on SOC_IMX23
|
||||
help
|
||||
Say Y here if you want kernel low-level debugging support
|
||||
on i.MX23.
|
||||
|
||||
config DEBUG_IMX25_UART
|
||||
bool "i.MX25 Debug UART"
|
||||
depends on SOC_IMX25
|
||||
help
|
||||
Say Y here if you want kernel low-level debugging support
|
||||
on i.MX25.
|
||||
|
||||
config DEBUG_IMX21_IMX27_UART
|
||||
bool "i.MX21 and i.MX27 Debug UART"
|
||||
depends on SOC_IMX21 || SOC_IMX27
|
||||
help
|
||||
Say Y here if you want kernel low-level debugging support
|
||||
on i.MX21 or i.MX27.
|
||||
|
||||
config DEBUG_IMX28_UART
|
||||
bool "i.MX28 Debug UART"
|
||||
depends on SOC_IMX28
|
||||
help
|
||||
Say Y here if you want kernel low-level debugging support
|
||||
on i.MX28.
|
||||
|
||||
config DEBUG_IMX31_IMX35_UART
|
||||
bool "i.MX31 and i.MX35 Debug UART"
|
||||
depends on SOC_IMX31 || SOC_IMX35
|
||||
help
|
||||
Say Y here if you want kernel low-level debugging support
|
||||
on i.MX31 or i.MX35.
|
||||
|
||||
config DEBUG_IMX51_UART
|
||||
bool "i.MX51 Debug UART"
|
||||
depends on SOC_IMX51
|
||||
help
|
||||
Say Y here if you want kernel low-level debugging support
|
||||
on i.MX51.
|
||||
|
||||
config DEBUG_IMX50_IMX53_UART
|
||||
bool "i.MX50 and i.MX53 Debug UART"
|
||||
depends on SOC_IMX50 || SOC_IMX53
|
||||
help
|
||||
Say Y here if you want kernel low-level debugging support
|
||||
on i.MX50 or i.MX53.
|
||||
|
||||
config DEBUG_S3C_UART0
|
||||
depends on PLAT_SAMSUNG
|
||||
bool "Use S3C UART 0 for low-level debug"
|
||||
help
|
||||
Say Y here if you want the debug print routines to direct
|
||||
their output to UART 0. The port must have been initialised
|
||||
by the boot-loader before use.
|
||||
|
||||
The uncompressor code port configuration is now handled
|
||||
by CONFIG_S3C_LOWLEVEL_UART_PORT.
|
||||
|
||||
config DEBUG_S3C_UART1
|
||||
depends on PLAT_SAMSUNG
|
||||
bool "Use S3C UART 1 for low-level debug"
|
||||
help
|
||||
Say Y here if you want the debug print routines to direct
|
||||
their output to UART 1. The port must have been initialised
|
||||
by the boot-loader before use.
|
||||
|
||||
The uncompressor code port configuration is now handled
|
||||
by CONFIG_S3C_LOWLEVEL_UART_PORT.
|
||||
|
||||
config DEBUG_S3C_UART2
|
||||
depends on PLAT_SAMSUNG
|
||||
bool "Use S3C UART 2 for low-level debug"
|
||||
help
|
||||
Say Y here if you want the debug print routines to direct
|
||||
their output to UART 2. The port must have been initialised
|
||||
by the boot-loader before use.
|
||||
|
||||
The uncompressor code port configuration is now handled
|
||||
by CONFIG_S3C_LOWLEVEL_UART_PORT.
|
||||
|
||||
config DEBUG_REALVIEW_STD_PORT
|
||||
bool "RealView Default UART"
|
||||
depends on ARCH_REALVIEW
|
||||
help
|
||||
Say Y here if you want the debug print routines to direct
|
||||
their output to the serial port on RealView EB, PB11MP, PBA8
|
||||
and PBX platforms.
|
||||
|
||||
config DEBUG_REALVIEW_PB1176_PORT
|
||||
bool "RealView PB1176 UART"
|
||||
depends on MACH_REALVIEW_PB1176
|
||||
help
|
||||
Say Y here if you want the debug print routines to direct
|
||||
their output to the standard serial port on the RealView
|
||||
PB1176 platform.
|
||||
|
||||
endchoice
|
||||
|
||||
config EARLY_PRINTK
|
||||
@ -146,18 +251,6 @@ config OC_ETM
|
||||
buffer driver that will allow you to collect traces of the
|
||||
kernel code.
|
||||
|
||||
config DEBUG_S3C_UART
|
||||
depends on PLAT_SAMSUNG
|
||||
int "S3C UART to use for low-level debug"
|
||||
default "0"
|
||||
help
|
||||
Choice for UART for kernel low-level using S3C UARTS,
|
||||
should be between zero and two. The port must have been
|
||||
initialised by the boot-loader before use.
|
||||
|
||||
The uncompressor code port configuration is now handled
|
||||
by CONFIG_S3C_LOWLEVEL_UART_PORT.
|
||||
|
||||
config ARM_KPROBES_TEST
|
||||
tristate "Kprobes test module"
|
||||
depends on KPROBES && MODULES
|
||||
|
@ -75,7 +75,7 @@ static inline void platform_do_lowpower(unsigned int cpu, int *spurious)
|
||||
:
|
||||
: "memory", "cc");
|
||||
|
||||
if (pen_release == cpu) {
|
||||
if (pen_release == cpu_logical_map(cpu)) {
|
||||
/*
|
||||
* OK, proper wakeup, we're done
|
||||
*/
|
||||
|
@ -132,7 +132,7 @@ int __cpuinit boot_secondary(unsigned int cpu, struct task_struct *idle)
|
||||
* Note that "pen_release" is the hardware CPU ID, whereas
|
||||
* "cpu" is Linux's internal ID.
|
||||
*/
|
||||
write_pen_release(cpu);
|
||||
write_pen_release(cpu_logical_map(cpu));
|
||||
|
||||
if (!(__raw_readl(S5P_ARM_CORE1_STATUS) & S5P_CORE_LOCAL_PWR_EN)) {
|
||||
__raw_writel(S5P_CORE_LOCAL_PWR_EN,
|
||||
|
@ -37,7 +37,7 @@ static inline void platform_do_lowpower(unsigned int cpu)
|
||||
:
|
||||
: "memory", "cc");
|
||||
|
||||
if (pen_release == cpu) {
|
||||
if (pen_release == cpu_logical_map(cpu)) {
|
||||
/*
|
||||
* OK, proper wakeup, we're done
|
||||
*/
|
||||
|
@ -117,7 +117,7 @@ int __cpuinit boot_secondary(unsigned int cpu, struct task_struct *idle)
|
||||
* Note that "pen_release" is the hardware CPU ID, whereas
|
||||
* "cpu" is Linux's internal ID.
|
||||
*/
|
||||
pen_release = cpu;
|
||||
pen_release = cpu_logical_map(cpu);
|
||||
__cpuc_flush_dcache_area((void *)&pen_release, sizeof(pen_release));
|
||||
outer_clean_range(__pa(&pen_release), __pa(&pen_release + 1));
|
||||
|
||||
|
@ -14,17 +14,9 @@
|
||||
#include <mach/mx23.h>
|
||||
#include <mach/mx28.h>
|
||||
|
||||
#ifdef CONFIG_SOC_IMX23
|
||||
#ifdef UART_PADDR
|
||||
#error "CONFIG_DEBUG_LL is incompatible with multiple archs"
|
||||
#endif
|
||||
#ifdef CONFIG_DEBUG_IMX23_UART
|
||||
#define UART_PADDR MX23_DUART_BASE_ADDR
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_SOC_IMX28
|
||||
#ifdef UART_PADDR
|
||||
#error "CONFIG_DEBUG_LL is incompatible with multiple archs"
|
||||
#endif
|
||||
#elif defined (CONFIG_DEBUG_IMX28_UART)
|
||||
#define UART_PADDR MX28_DUART_BASE_ADDR
|
||||
#endif
|
||||
|
||||
|
@ -69,7 +69,7 @@ static inline void platform_do_lowpower(unsigned int cpu, int *spurious)
|
||||
:
|
||||
: "memory", "cc");
|
||||
|
||||
if (pen_release == cpu) {
|
||||
if (pen_release == cpu_logical_map(cpu)) {
|
||||
/*
|
||||
* OK, proper wakeup, we're done
|
||||
*/
|
||||
|
@ -10,23 +10,10 @@
|
||||
* published by the Free Software Foundation.
|
||||
*/
|
||||
|
||||
#if defined(CONFIG_MACH_REALVIEW_EB) || \
|
||||
defined(CONFIG_MACH_REALVIEW_PB11MP) || \
|
||||
defined(CONFIG_MACH_REALVIEW_PBA8) || \
|
||||
defined(CONFIG_MACH_REALVIEW_PBX)
|
||||
#ifndef DEBUG_LL_UART_OFFSET
|
||||
#ifdef CONFIG_DEBUG_REALVIEW_STD_PORT
|
||||
#define DEBUG_LL_UART_OFFSET 0x00009000
|
||||
#elif DEBUG_LL_UART_OFFSET != 0x00009000
|
||||
#warning "DEBUG_LL_UART_OFFSET already defined to a different value"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_MACH_REALVIEW_PB1176
|
||||
#ifndef DEBUG_LL_UART_OFFSET
|
||||
#elif defined(CONFIG_DEBUG_REALVIEW_PB1176_PORT)
|
||||
#define DEBUG_LL_UART_OFFSET 0x0010c000
|
||||
#elif DEBUG_LL_UART_OFFSET != 0x0010c000
|
||||
#warning "DEBUG_LL_UART_OFFSET already defined to a different value"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef DEBUG_LL_UART_OFFSET
|
||||
|
@ -74,6 +74,8 @@ void __cpuinit sh73a0_secondary_init(unsigned int cpu)
|
||||
|
||||
int __cpuinit sh73a0_boot_secondary(unsigned int cpu)
|
||||
{
|
||||
cpu = cpu_logical_map(cpu);
|
||||
|
||||
/* enable cache coherency */
|
||||
modify_scu_cpu_psr(0, 3 << (cpu * 8));
|
||||
|
||||
@ -87,6 +89,8 @@ int __cpuinit sh73a0_boot_secondary(unsigned int cpu)
|
||||
|
||||
void __init sh73a0_smp_prepare_cpus(void)
|
||||
{
|
||||
int cpu = cpu_logical_map(0);
|
||||
|
||||
scu_enable(scu_base_addr());
|
||||
|
||||
/* Map the reset vector (in headsmp.S) */
|
||||
@ -94,5 +98,5 @@ void __init sh73a0_smp_prepare_cpus(void)
|
||||
__raw_writel(__pa(shmobile_secondary_vector), __io(SBAR));
|
||||
|
||||
/* enable cache coherency on CPU0 */
|
||||
modify_scu_cpu_psr(0, 3 << (0 * 8));
|
||||
modify_scu_cpu_psr(0, 3 << (cpu * 8));
|
||||
}
|
||||
|
@ -24,7 +24,7 @@ static inline void platform_do_lowpower(unsigned int cpu)
|
||||
for (;;) {
|
||||
__asm__ __volatile__("dsb\n\t" "wfi\n\t"
|
||||
: : : "memory");
|
||||
if (pen_release == cpu) {
|
||||
if (pen_release == cpu_logical_map(cpu)) {
|
||||
/*
|
||||
* OK, proper wakeup, we're done
|
||||
*/
|
||||
|
@ -96,7 +96,7 @@ int __cpuinit boot_secondary(unsigned int cpu, struct task_struct *idle)
|
||||
* the holding pen - release it, then wait for it to flag
|
||||
* that it has been released by resetting pen_release.
|
||||
*/
|
||||
write_pen_release(cpu);
|
||||
write_pen_release(cpu_logical_map(cpu));
|
||||
|
||||
gic_raise_softirq(cpumask_of(cpu), 1);
|
||||
|
||||
|
@ -65,7 +65,7 @@ static inline void platform_do_lowpower(unsigned int cpu, int *spurious)
|
||||
for (;;) {
|
||||
wfi();
|
||||
|
||||
if (pen_release == cpu) {
|
||||
if (pen_release == cpu_logical_map(cpu)) {
|
||||
/*
|
||||
* OK, proper wakeup, we're done
|
||||
*/
|
||||
|
@ -12,43 +12,17 @@
|
||||
*/
|
||||
#include <mach/hardware.h>
|
||||
|
||||
#ifdef CONFIG_SOC_IMX1
|
||||
#ifdef CONFIG_DEBUG_IMX1_UART
|
||||
#define UART_PADDR MX1_UART1_BASE_ADDR
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_SOC_IMX25
|
||||
#ifdef UART_PADDR
|
||||
#error "CONFIG_DEBUG_LL is incompatible with multiple archs"
|
||||
#endif
|
||||
#elif defined (CONFIG_DEBUG_IMX25_UART)
|
||||
#define UART_PADDR MX25_UART1_BASE_ADDR
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_SOC_IMX21) || defined (CONFIG_SOC_IMX27)
|
||||
#ifdef UART_PADDR
|
||||
#error "CONFIG_DEBUG_LL is incompatible with multiple archs"
|
||||
#endif
|
||||
#elif defined (CONFIG_DEBUG_IMX21_IMX27_UART)
|
||||
#define UART_PADDR MX2x_UART1_BASE_ADDR
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_SOC_IMX31) || defined(CONFIG_SOC_IMX35)
|
||||
#ifdef UART_PADDR
|
||||
#error "CONFIG_DEBUG_LL is incompatible with multiple archs"
|
||||
#endif
|
||||
#elif defined (CONFIG_DEBUG_IMX31_IMX35_UART)
|
||||
#define UART_PADDR MX3x_UART1_BASE_ADDR
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_SOC_IMX51
|
||||
#ifdef UART_PADDR
|
||||
#error "CONFIG_DEBUG_LL is incompatible with multiple archs"
|
||||
#endif
|
||||
#elif defined (CONFIG_DEBUG_IMX51_UART)
|
||||
#define UART_PADDR MX51_UART1_BASE_ADDR
|
||||
#endif
|
||||
|
||||
/* iMX50/53 have same addresses, but not iMX51 */
|
||||
#if defined(CONFIG_SOC_IMX50) || defined(CONFIG_SOC_IMX53)
|
||||
#ifdef UART_PADDR
|
||||
#error "CONFIG_DEBUG_LL is incompatible with multiple archs"
|
||||
#endif
|
||||
#elif defined (CONFIG_DEBUG_IMX50_IMX53_UART)
|
||||
#define UART_PADDR MX53_UART1_BASE_ADDR
|
||||
#endif
|
||||
|
||||
|
@ -362,4 +362,11 @@ config SAMSUNG_PD
|
||||
help
|
||||
Say Y here if you want to control Power Domain by Runtime PM.
|
||||
|
||||
config DEBUG_S3C_UART
|
||||
depends on PLAT_SAMSUNG
|
||||
int
|
||||
default "0" if DEBUG_S3C_UART0
|
||||
default "1" if DEBUG_S3C_UART1
|
||||
default "2" if DEBUG_S3C_UART2
|
||||
|
||||
endif
|
||||
|
@ -77,7 +77,7 @@ int __cpuinit boot_secondary(unsigned int cpu, struct task_struct *idle)
|
||||
* since we haven't sent them a soft interrupt, they shouldn't
|
||||
* be there.
|
||||
*/
|
||||
write_pen_release(cpu);
|
||||
write_pen_release(cpu_logical_map(cpu));
|
||||
|
||||
/*
|
||||
* Send the secondary CPU a soft interrupt, thereby causing
|
||||
|
Loading…
Reference in New Issue
Block a user