Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 656b5def authored by Olof Johansson's avatar Olof Johansson
Browse files

Merge tag 'brcmstb-smp-uart-for-3.19' of http://github.com/brcm/linux into next/soc

Merge "ARM: brcmstb: SMP, Kconfig, earlyprintk and GISB fixes" from Florian
Fainelli:

This pull request contains 3 changes for the brcmstb platform and 2 changes
to the GISB bus arbiter driver

- fist patch adds earlyprintk to brcmstb platforms using the existing 8250
  infrastructure

- second patch re-introduces SMP support after fixing the problems we had in
  the initial implementation, for this patch to apply cleanly, I had to advance
  up to "ARM: brcmstb: revert SMP support"

- third patch is dropping unused Kconfig dependencies

- fourth patch registers the ARM fault code for external aborts that the GISB
  bus arbiter driver is designed to assit

- fifth patch does save/restore the GISB arbiter timeout across S3
  suspend/resume cycles

Thanks!

* tag 'brcmstb-smp-uart-for-3.19' of http://github.com/brcm/linux

:
  bus: brcmstb_gisb: save and restore GISB timeout
  bus: brcmstb_gisb: register the fault code hook
  ARM: brcmstb: Kconfig: drop unneeded symbol selections
  ARM: brcmstb: reintroduce SMP support
  ARM: brcmstb: add debug UART for earlyprintk support

Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
parents 9576d3e6 203bb85e
Loading
Loading
Loading
Loading
+15 −1
Original line number Diff line number Diff line
@@ -139,6 +139,17 @@ choice
		  Say Y here if you want kernel low-level debugging support
		  on Marvell Berlin SoC based platforms.

	config DEBUG_BRCMSTB_UART
		bool "Use BRCMSTB UART for low-level debug"
		depends on ARCH_BRCMSTB
		select DEBUG_UART_8250
		help
		  Say Y here if you want the debug print routines to direct
		  their output to the first serial port on these devices.

		  If you have a Broadcom STB chip and would like early print
		  messages to appear over the UART, select this option.

	config DEBUG_CLPS711X_UART1
		bool "Kernel low-level debugging messages via UART1"
		depends on ARCH_CLPS711X
@@ -1153,6 +1164,7 @@ config DEBUG_UART_PHYS
	default 0xe0000000 if ARCH_SPEAR13XX
	default 0xe4007000 if DEBUG_HIP04_UART
	default 0xf0000be0 if ARCH_EBSA110
	default 0xf040ab00 if DEBUG_BRCMSTB_UART
	default 0xf1012000 if DEBUG_MVEBU_UART_ALTERNATE
	default 0xf1012000 if ARCH_DOVE || ARCH_MV78XX0 || \
				ARCH_ORION5X
@@ -1204,6 +1216,7 @@ config DEBUG_UART_VIRT
	default 0xfb002000 if DEBUG_CNS3XXX
	default 0xfb009000 if DEBUG_REALVIEW_STD_PORT
	default 0xfb10c000 if DEBUG_REALVIEW_PB1176_PORT
	default 0xfc40ab00 if DEBUG_BRCMSTB_UART
	default 0xfcfe8600 if DEBUG_UART_BCM63XX
	default 0xfd000000 if ARCH_SPEAR3XX || ARCH_SPEAR6XX
	default 0xfd000000 if ARCH_SPEAR13XX
@@ -1260,7 +1273,8 @@ config DEBUG_UART_8250_WORD
		ARCH_KEYSTONE || \
		DEBUG_DAVINCI_DMx_UART0 || DEBUG_DAVINCI_DA8XX_UART1 || \
		DEBUG_DAVINCI_DA8XX_UART2 || \
		DEBUG_BCM_KONA_UART || DEBUG_RK32_UART2
		DEBUG_BCM_KONA_UART || DEBUG_RK32_UART2 || \
		DEBUG_BRCMSTB_UART

config DEBUG_UART_8250_FLOW_CONTROL
	bool "Enable flow control for 8250 UART"
+0 −3
Original line number Diff line number Diff line
@@ -118,10 +118,7 @@ config ARCH_BCM_63XX

config ARCH_BRCMSTB
	bool "Broadcom BCM7XXX based boards" if ARCH_MULTI_V7
	depends on MMU
	select ARM_GIC
	select MIGHT_HAVE_PCI
	select HAVE_SMP
	select HAVE_ARM_ARCH_TIMER
	select BRCMSTB_GISB_ARB
	select BRCMSTB_L2_IRQ
+2 −0
Original line number Diff line number Diff line
@@ -38,5 +38,7 @@ obj-$(CONFIG_ARCH_BCM_5301X) += bcm_5301x.o
obj-$(CONFIG_ARCH_BCM_63XX)	:= bcm63xx.o

ifeq ($(CONFIG_ARCH_BRCMSTB),y)
CFLAGS_platsmp-brcmstb.o	+= -march=armv7-a
obj-y				+= brcmstb.o
obj-$(CONFIG_SMP)		+= headsmp-brcmstb.o platsmp-brcmstb.o
endif
+19 −0
Original line number Diff line number Diff line
/*
 * Copyright (C) 2013-2014 Broadcom Corporation
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License as
 * published by the Free Software Foundation version 2.
 *
 * This program is distributed "as is" WITHOUT ANY WARRANTY of any
 * kind, whether express or implied; without even the implied warranty
 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 */

#ifndef __BRCMSTB_H__
#define __BRCMSTB_H__

void brcmstb_secondary_startup(void);

#endif /* __BRCMSTB_H__ */
+33 −0
Original line number Diff line number Diff line
/*
 * SMP boot code for secondary CPUs
 * Based on arch/arm/mach-tegra/headsmp.S
 *
 * Copyright (C) 2010 NVIDIA, Inc.
 * Copyright (C) 2013-2014 Broadcom Corporation
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License as
 * published by the Free Software Foundation version 2.
 *
 * This program is distributed "as is" WITHOUT ANY WARRANTY of any
 * kind, whether express or implied; without even the implied warranty
 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 */

#include <asm/assembler.h>
#include <linux/linkage.h>
#include <linux/init.h>

        .section ".text.head", "ax"

ENTRY(brcmstb_secondary_startup)
        /*
         * Ensure CPU is in a sane state by disabling all IRQs and switching
         * into SVC mode.
         */
        setmode	PSR_I_BIT | PSR_F_BIT | SVC_MODE, r0

        bl      v7_invalidate_l1
        b       secondary_startup
ENDPROC(brcmstb_secondary_startup)
Loading