mirror of
https://github.com/torvalds/linux.git
synced 2024-12-16 08:02:17 +00:00
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' into armsoc/for-3.15/soc-3 ARM: mach-bcm soc updates - add BCM5301x support - remove GENERIC_TIME
This commit is contained in:
commit
833688f4e4
8
Documentation/devicetree/bindings/arm/bcm4708.txt
Normal file
8
Documentation/devicetree/bindings/arm/bcm4708.txt
Normal file
@ -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";
|
@ -1880,6 +1880,14 @@ F: arch/arm/boot/dts/bcm2835*
|
||||
F: arch/arm/configs/bcm2835_defconfig
|
||||
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
|
||||
M: Nithin Nayak Sujir <nsujir@broadcom.com>
|
||||
M: Michael Chan <mchan@broadcom.com>
|
||||
|
@ -106,6 +106,11 @@ choice
|
||||
depends on ARCH_BCM2835
|
||||
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
|
||||
bool "Kernel low-level debugging messages via BCM KONA UART"
|
||||
depends on ARCH_BCM
|
||||
@ -1023,6 +1028,7 @@ config DEBUG_UART_PHYS
|
||||
default 0x101f1000 if ARCH_VERSATILE
|
||||
default 0x101fb000 if DEBUG_NOMADIK_UART
|
||||
default 0x16000000 if ARCH_INTEGRATOR
|
||||
default 0x18000300 if DEBUG_BCM_5301X
|
||||
default 0x1c090000 if DEBUG_VEXPRESS_UART0_RS1
|
||||
default 0x20060000 if DEBUG_RK29_UART0
|
||||
default 0x20064000 if DEBUG_RK29_UART1 || DEBUG_RK3X_UART2
|
||||
@ -1071,6 +1077,7 @@ config DEBUG_UART_VIRT
|
||||
default 0xf0009000 if DEBUG_CNS3XXX
|
||||
default 0xf01fb000 if DEBUG_NOMADIK_UART
|
||||
default 0xf0201000 if DEBUG_BCM2835
|
||||
default 0xf1000300 if DEBUG_BCM_5301X
|
||||
default 0xf11f1000 if ARCH_VERSATILE
|
||||
default 0xf1600000 if ARCH_INTEGRATOR
|
||||
default 0xf1c28000 if DEBUG_SUNXI_UART0
|
||||
|
@ -11,6 +11,7 @@ CONFIG_ARCH_MVEBU=y
|
||||
CONFIG_MACH_ARMADA_370=y
|
||||
CONFIG_MACH_ARMADA_XP=y
|
||||
CONFIG_ARCH_BCM=y
|
||||
CONFIG_ARCH_BCM_5301X=y
|
||||
CONFIG_ARCH_BCM_MOBILE=y
|
||||
CONFIG_ARCH_BERLIN=y
|
||||
CONFIG_MACH_BERLIN_BG2=y
|
||||
|
@ -19,7 +19,6 @@ config ARCH_BCM_MOBILE
|
||||
select CPU_V7
|
||||
select CLKSRC_OF
|
||||
select GENERIC_CLOCKEVENTS
|
||||
select GENERIC_TIME
|
||||
select GPIO_BCM_KONA
|
||||
select SPARSE_IRQ
|
||||
select TICK_ONESHOT
|
||||
@ -32,6 +31,32 @@ config ARCH_BCM_MOBILE
|
||||
BCM11130, BCM11140, BCM11351, BCM28145 and
|
||||
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
|
||||
|
||||
endif
|
||||
|
@ -13,3 +13,4 @@
|
||||
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)
|
||||
AFLAGS_bcm_kona_smc_asm.o :=-Wa,-march=armv7-a$(plus_sec)
|
||||
obj-$(CONFIG_ARCH_BCM_5301X) += bcm_5301x.o
|
||||
|
61
arch/arm/mach-bcm/bcm_5301x.c
Normal file
61
arch/arm/mach-bcm/bcm_5301x.c
Normal file
@ -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
Block a user