ARM: mach-bcm soc updates
- add BCM5301x support - remove GENERIC_TIME -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAABAgAGBQJTGAsEAAoJEOfTILNwq7R4hyEP/ApeGhAN6ubhui78M880ycl1 TEjTvAA9yvbldiTF8Jp2XUIdIfxTcraCpd11TMF1kgQcnKNK9GqvkaB8Dh98WYzD MY8+8SMJSGsPtAT5tp0MaamZREoPm4wEZ5JWn8wQjIMTjiIPDu78Gjm0M00E3c+a 1uOkbUrIFTECgzIeMr92p0NSYqYthz0g5EE/BTfPWCA6wqfIQ4DvqUtB9Mad6iR6 VBN6tqjL98riz+CYSV3WhqMCaI60HEPtpVBhrVMoZHKyMcR7O83F7V91t2QZc/dM 5DZLSdU9/1ZkIpK3gFf5CyBbO6lVv47kFpVm7hSZhqPIR6w3SfhCNxjPy5dyCb5Y vlMqUmakXtuqPkk6mm4x79Scxj/1ct3g7pssHzS7N8tuAtPISeBzW+GhjXjICXtR 6shZQRJwhCDJ3pPMWsBW60VQ/ct+A9X5gXka8kthWGoLPBlZrLNR8vZmsfcbx4Ei nurWQGLoMfHt7KxVaTVrrwdUXkXTRc4EZrmMvVkNzJEiedyuN8E1nZEF2kVOPsgA aZIih6Lex4mPVakGwaQH4zPCXTfHwstIe0P1aPy+seHzbqUf64s0VkNEbctCCZOe 7a4yj72KYXEnsD2mSHa3c/MRfQEzEatefl1QGeQw7nPsDwxOWgrCsWylXYoVCSyT +i6ga9T1VIwL5Jlb6fhr =WKwJ -----END PGP SIGNATURE----- Merge tag 'armsoc/for-3.15/soc-2' of git://github.com/broadcom/mach-bcm into next/soc Merge "ARM: mach-bcm soc updates" from Matt Porter: - add BCM5301x support - remove GENERIC_TIME * tag 'armsoc/for-3.15/soc-2' of git://github.com/broadcom/mach-bcm: ARM: BCM5301X: workaround suppress fault ARM: BCM5301X: add early debugging support ARM: BCM5301X: initial support for the BCM5301X/BCM470X SoCs with ARM CPU ARM: mach-bcm: Remove GENERIC_TIME Signed-off-by: Olof Johansson <olof@lixom.net>
This commit is contained in:
commit
07cb1ec1ae
|
@ -0,0 +1,8 @@
|
||||||
|
Broadcom BCM4708 device tree bindings
|
||||||
|
-------------------------------------------
|
||||||
|
|
||||||
|
Boards with the BCM4708 SoC shall have the following properties:
|
||||||
|
|
||||||
|
Required root node property:
|
||||||
|
|
||||||
|
compatible = "brcm,bcm4708";
|
|
@ -1889,6 +1889,14 @@ F: arch/arm/boot/dts/bcm2835*
|
||||||
F: arch/arm/configs/bcm2835_defconfig
|
F: arch/arm/configs/bcm2835_defconfig
|
||||||
F: drivers/*/*bcm2835*
|
F: drivers/*/*bcm2835*
|
||||||
|
|
||||||
|
BROADCOM BCM5301X ARM ARCHICTURE
|
||||||
|
M: Hauke Mehrtens <hauke@hauke-m.de>
|
||||||
|
L: linux-arm-kernel@lists.infradead.org
|
||||||
|
S: Maintained
|
||||||
|
F: arch/arm/mach-bcm/bcm_5301x.c
|
||||||
|
F: arch/arm/boot/dts/bcm5301x.dtsi
|
||||||
|
F: arch/arm/boot/dts/bcm470*
|
||||||
|
|
||||||
BROADCOM TG3 GIGABIT ETHERNET DRIVER
|
BROADCOM TG3 GIGABIT ETHERNET DRIVER
|
||||||
M: Nithin Nayak Sujir <nsujir@broadcom.com>
|
M: Nithin Nayak Sujir <nsujir@broadcom.com>
|
||||||
M: Michael Chan <mchan@broadcom.com>
|
M: Michael Chan <mchan@broadcom.com>
|
||||||
|
|
|
@ -106,6 +106,11 @@ choice
|
||||||
depends on ARCH_BCM2835
|
depends on ARCH_BCM2835
|
||||||
select DEBUG_UART_PL01X
|
select DEBUG_UART_PL01X
|
||||||
|
|
||||||
|
config DEBUG_BCM_5301X
|
||||||
|
bool "Kernel low-level debugging on BCM5301X UART1"
|
||||||
|
depends on ARCH_BCM_5301X
|
||||||
|
select DEBUG_UART_PL01X
|
||||||
|
|
||||||
config DEBUG_BCM_KONA_UART
|
config DEBUG_BCM_KONA_UART
|
||||||
bool "Kernel low-level debugging messages via BCM KONA UART"
|
bool "Kernel low-level debugging messages via BCM KONA UART"
|
||||||
depends on ARCH_BCM
|
depends on ARCH_BCM
|
||||||
|
@ -1023,6 +1028,7 @@ config DEBUG_UART_PHYS
|
||||||
default 0x101f1000 if ARCH_VERSATILE
|
default 0x101f1000 if ARCH_VERSATILE
|
||||||
default 0x101fb000 if DEBUG_NOMADIK_UART
|
default 0x101fb000 if DEBUG_NOMADIK_UART
|
||||||
default 0x16000000 if ARCH_INTEGRATOR
|
default 0x16000000 if ARCH_INTEGRATOR
|
||||||
|
default 0x18000300 if DEBUG_BCM_5301X
|
||||||
default 0x1c090000 if DEBUG_VEXPRESS_UART0_RS1
|
default 0x1c090000 if DEBUG_VEXPRESS_UART0_RS1
|
||||||
default 0x20060000 if DEBUG_RK29_UART0
|
default 0x20060000 if DEBUG_RK29_UART0
|
||||||
default 0x20064000 if DEBUG_RK29_UART1 || DEBUG_RK3X_UART2
|
default 0x20064000 if DEBUG_RK29_UART1 || DEBUG_RK3X_UART2
|
||||||
|
@ -1071,6 +1077,7 @@ config DEBUG_UART_VIRT
|
||||||
default 0xf0009000 if DEBUG_CNS3XXX
|
default 0xf0009000 if DEBUG_CNS3XXX
|
||||||
default 0xf01fb000 if DEBUG_NOMADIK_UART
|
default 0xf01fb000 if DEBUG_NOMADIK_UART
|
||||||
default 0xf0201000 if DEBUG_BCM2835
|
default 0xf0201000 if DEBUG_BCM2835
|
||||||
|
default 0xf1000300 if DEBUG_BCM_5301X
|
||||||
default 0xf11f1000 if ARCH_VERSATILE
|
default 0xf11f1000 if ARCH_VERSATILE
|
||||||
default 0xf1600000 if ARCH_INTEGRATOR
|
default 0xf1600000 if ARCH_INTEGRATOR
|
||||||
default 0xf1c28000 if DEBUG_SUNXI_UART0
|
default 0xf1c28000 if DEBUG_SUNXI_UART0
|
||||||
|
|
|
@ -11,6 +11,7 @@ CONFIG_ARCH_MVEBU=y
|
||||||
CONFIG_MACH_ARMADA_370=y
|
CONFIG_MACH_ARMADA_370=y
|
||||||
CONFIG_MACH_ARMADA_XP=y
|
CONFIG_MACH_ARMADA_XP=y
|
||||||
CONFIG_ARCH_BCM=y
|
CONFIG_ARCH_BCM=y
|
||||||
|
CONFIG_ARCH_BCM_5301X=y
|
||||||
CONFIG_ARCH_BCM_MOBILE=y
|
CONFIG_ARCH_BCM_MOBILE=y
|
||||||
CONFIG_ARCH_BERLIN=y
|
CONFIG_ARCH_BERLIN=y
|
||||||
CONFIG_MACH_BERLIN_BG2=y
|
CONFIG_MACH_BERLIN_BG2=y
|
||||||
|
|
|
@ -27,6 +27,32 @@ config ARCH_BCM_MOBILE
|
||||||
BCM11130, BCM11140, BCM11351, BCM28145 and
|
BCM11130, BCM11140, BCM11351, BCM28145 and
|
||||||
BCM28155 variants.
|
BCM28155 variants.
|
||||||
|
|
||||||
|
config ARCH_BCM_5301X
|
||||||
|
bool "Broadcom BCM470X / BCM5301X ARM SoC" if ARCH_MULTI_V7
|
||||||
|
depends on MMU
|
||||||
|
select ARM_GIC
|
||||||
|
select CACHE_L2X0
|
||||||
|
select HAVE_ARM_SCU if SMP
|
||||||
|
select HAVE_ARM_TWD if SMP
|
||||||
|
select HAVE_SMP
|
||||||
|
select COMMON_CLK
|
||||||
|
select GENERIC_CLOCKEVENTS
|
||||||
|
select ARM_GLOBAL_TIMER
|
||||||
|
select CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK
|
||||||
|
select MIGHT_HAVE_PCI
|
||||||
|
help
|
||||||
|
Support for Broadcom BCM470X and BCM5301X SoCs with ARM CPU cores.
|
||||||
|
|
||||||
|
This is a network SoC line mostly used in home routers and
|
||||||
|
wifi access points, it's internal name is Northstar.
|
||||||
|
This inclused the following SoC: BCM53010, BCM53011, BCM53012,
|
||||||
|
BCM53014, BCM53015, BCM53016, BCM53017, BCM53018, BCM4707,
|
||||||
|
BCM4708 and BCM4709.
|
||||||
|
|
||||||
|
Do not confuse this with the BCM4760 which is a totally
|
||||||
|
different SoC or with the older BCM47XX and BCM53XX based
|
||||||
|
network SoC using a MIPS CPU, they are supported by arch/mips/bcm47xx
|
||||||
|
|
||||||
endmenu
|
endmenu
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -13,3 +13,4 @@
|
||||||
obj-$(CONFIG_ARCH_BCM_MOBILE) := board_bcm281xx.o bcm_kona_smc.o bcm_kona_smc_asm.o kona.o
|
obj-$(CONFIG_ARCH_BCM_MOBILE) := board_bcm281xx.o bcm_kona_smc.o bcm_kona_smc_asm.o kona.o
|
||||||
plus_sec := $(call as-instr,.arch_extension sec,+sec)
|
plus_sec := $(call as-instr,.arch_extension sec,+sec)
|
||||||
AFLAGS_bcm_kona_smc_asm.o :=-Wa,-march=armv7-a$(plus_sec)
|
AFLAGS_bcm_kona_smc_asm.o :=-Wa,-march=armv7-a$(plus_sec)
|
||||||
|
obj-$(CONFIG_ARCH_BCM_5301X) += bcm_5301x.o
|
||||||
|
|
|
@ -0,0 +1,61 @@
|
||||||
|
/*
|
||||||
|
* Broadcom BCM470X / BCM5301X ARM platform code.
|
||||||
|
*
|
||||||
|
* Copyright 2013 Hauke Mehrtens <hauke@hauke-m.de>
|
||||||
|
*
|
||||||
|
* Licensed under the GNU/GPL. See COPYING for details.
|
||||||
|
*/
|
||||||
|
#include <linux/of_platform.h>
|
||||||
|
#include <asm/hardware/cache-l2x0.h>
|
||||||
|
|
||||||
|
#include <asm/mach/arch.h>
|
||||||
|
#include <asm/siginfo.h>
|
||||||
|
#include <asm/signal.h>
|
||||||
|
|
||||||
|
|
||||||
|
static bool first_fault = true;
|
||||||
|
|
||||||
|
static int bcm5301x_abort_handler(unsigned long addr, unsigned int fsr,
|
||||||
|
struct pt_regs *regs)
|
||||||
|
{
|
||||||
|
if (fsr == 0x1c06 && first_fault) {
|
||||||
|
first_fault = false;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* These faults with code 0x1c06 happens for no good reason,
|
||||||
|
* possibly left over from the CFE boot loader.
|
||||||
|
*/
|
||||||
|
pr_warn("External imprecise Data abort at addr=%#lx, fsr=%#x ignored.\n",
|
||||||
|
addr, fsr);
|
||||||
|
|
||||||
|
/* Returning non-zero causes fault display and panic */
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Others should cause a fault */
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void __init bcm5301x_init_early(void)
|
||||||
|
{
|
||||||
|
/* Install our hook */
|
||||||
|
hook_fault_code(16 + 6, bcm5301x_abort_handler, SIGBUS, BUS_OBJERR,
|
||||||
|
"imprecise external abort");
|
||||||
|
}
|
||||||
|
|
||||||
|
static void __init bcm5301x_dt_init(void)
|
||||||
|
{
|
||||||
|
l2x0_of_init(0, ~0UL);
|
||||||
|
of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
static const char __initconst *bcm5301x_dt_compat[] = {
|
||||||
|
"brcm,bcm4708",
|
||||||
|
NULL,
|
||||||
|
};
|
||||||
|
|
||||||
|
DT_MACHINE_START(BCM5301X, "BCM5301X")
|
||||||
|
.init_early = bcm5301x_init_early,
|
||||||
|
.init_machine = bcm5301x_dt_init,
|
||||||
|
.dt_compat = bcm5301x_dt_compat,
|
||||||
|
MACHINE_END
|
Loading…
Reference in New Issue