Message ID | 20130814221237.350904818@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Domenico, On Thu, Aug 15, 2013 at 12:10:45AM +0200, Domenico Andreoli wrote: > From: Domenico Andreoli <domenico.andreoli@linux.com> > > Platform infrastructure for the Broadcom BCM4760 based ARM11 SoCs. > > v3: > * dropped the idea of unconditionally build mach-bcm > > v2: > * clocks are now configured via DT > * uart DT nodes have been renamed and hooked to the proper clock nodes > * dropped unneeded config options > * dropped misused initialization of system_rev > * dropped unneeded early io mapping > * build rule of mach-bcm is moved to separated patch > > v1: > * initial release > > Cc: devicetree@vger.kernel.org > Cc: linux-arm-kernel@lists.infradead.org > Signed-off-by: Domenico Andreoli <domenico.andreoli@linux.com> > --- > Documentation/devicetree/bindings/arm/bcm4760.txt | 8 ++ > MAINTAINERS | 7 ++ > arch/arm/Makefile | 1 + > arch/arm/boot/dts/Makefile | 1 + > arch/arm/boot/dts/bcm4760-catalina.dts | 11 +++ > arch/arm/boot/dts/bcm4760.dtsi | 71 +++++++++++++++++++++ > arch/arm/configs/bcm4760_defconfig | 76 ++++++++++++++++++++++ > arch/arm/mach-bcm/Kconfig | 7 ++ > arch/arm/mach-bcm/Makefile | 2 + > arch/arm/mach-bcm/bcm4760.c | 37 +++++++++++ > 10 files changed, 221 insertions(+) Since I raised the original objection to the unconditional build, Acked-by: Jason Cooper <jason@lakedaemon.net> thx, Jason.
Hi, On Thu, Aug 15, 2013 at 12:10:45AM +0200, Domenico Andreoli wrote: > From: Domenico Andreoli <domenico.andreoli@linux.com> > > Platform infrastructure for the Broadcom BCM4760 based ARM11 SoCs. > > v3: > * dropped the idea of unconditionally build mach-bcm > > v2: > * clocks are now configured via DT > * uart DT nodes have been renamed and hooked to the proper clock nodes > * dropped unneeded config options > * dropped misused initialization of system_rev > * dropped unneeded early io mapping > * build rule of mach-bcm is moved to separated patch > > v1: > * initial release > > Cc: devicetree@vger.kernel.org > Cc: linux-arm-kernel@lists.infradead.org > Signed-off-by: Domenico Andreoli <domenico.andreoli@linux.com> > --- > Documentation/devicetree/bindings/arm/bcm4760.txt | 8 ++ > MAINTAINERS | 7 ++ > arch/arm/Makefile | 1 + > arch/arm/boot/dts/Makefile | 1 + > arch/arm/boot/dts/bcm4760-catalina.dts | 11 +++ > arch/arm/boot/dts/bcm4760.dtsi | 71 +++++++++++++++++++++ > arch/arm/configs/bcm4760_defconfig | 76 ++++++++++++++++++++++ > arch/arm/mach-bcm/Kconfig | 7 ++ > arch/arm/mach-bcm/Makefile | 2 + > arch/arm/mach-bcm/bcm4760.c | 37 +++++++++++ > 10 files changed, 221 insertions(+) > > Index: b/Documentation/devicetree/bindings/arm/bcm4760.txt > =================================================================== > --- /dev/null > +++ b/Documentation/devicetree/bindings/arm/bcm4760.txt > @@ -0,0 +1,8 @@ > +Broadcom BCM4760 ARM11 SoC device tree bindings > +----------------------------------------------- > + > +Boards with the BCM4760 SoC shall have the following properties: > + > +Required root node property: > + > +compatible = "brcm,bcm4760"; > Index: b/arch/arm/configs/bcm4760_defconfig > =================================================================== > --- /dev/null > +++ b/arch/arm/configs/bcm4760_defconfig > @@ -0,0 +1,76 @@ > +CONFIG_IRQ_DOMAIN_DEBUG=y > +CONFIG_IKCONFIG=y > +CONFIG_IKCONFIG_PROC=y > +CONFIG_BLK_DEV_INITRD=y > +CONFIG_CC_OPTIMIZE_FOR_SIZE=y > +CONFIG_EMBEDDED=y > +CONFIG_MODULES=y > +CONFIG_MODULE_UNLOAD=y > +# CONFIG_BLK_DEV_BSG is not set > +# CONFIG_IOSCHED_DEADLINE is not set > +# CONFIG_IOSCHED_CFQ is not set > +CONFIG_ARCH_MULTI_V6=y > +# CONFIG_ARCH_MULTI_V7 is not set > +CONFIG_ARCH_BCM4760=y > +CONFIG_ARM_ERRATA_411920=y > +CONFIG_ARM_ERRATA_364296=y > +CONFIG_AEABI=y > +CONFIG_DEPRECATED_PARAM_STRUCT=y > +CONFIG_ARM_APPENDED_DTB=y > +CONFIG_ARM_ATAG_DTB_COMPAT=y > +CONFIG_VFP=y > +# CONFIG_SUSPEND is not set > +CONFIG_DEVTMPFS=y > +CONFIG_DEVTMPFS_MOUNT=y > +CONFIG_CMA=y > +CONFIG_PROC_DEVICETREE=y > +CONFIG_BLK_DEV_LOOP=y > +CONFIG_BLK_DEV_RAM=y > +CONFIG_SCSI=y > +# CONFIG_SCSI_PROC_FS is not set > +CONFIG_BLK_DEV_SD=y > +CONFIG_SCSI_MULTI_LUN=y > +# CONFIG_SCSI_LOWLEVEL is not set > +# CONFIG_INPUT_MOUSEDEV is not set > +CONFIG_INPUT_EVDEV=y > +# CONFIG_INPUT_KEYBOARD is not set > +# CONFIG_INPUT_MOUSE is not set > +# CONFIG_SERIO is not set > +# CONFIG_VT is not set > +# CONFIG_DEVKMEM is not set > +CONFIG_SERIAL_AMBA_PL011=y > +CONFIG_SERIAL_AMBA_PL011_CONSOLE=y > +# CONFIG_HW_RANDOM is not set > +# CONFIG_HWMON is not set > +# CONFIG_HID is not set > +# CONFIG_USB_SUPPORT is not set > +CONFIG_COMMON_CLK_DEBUG=y > +# CONFIG_IOMMU_SUPPORT is not set > +CONFIG_EXT2_FS=y > +CONFIG_EXT3_FS=y > +# CONFIG_EXT3_FS_XATTR is not set > +CONFIG_EXT4_FS=y > +CONFIG_FANOTIFY=y > +CONFIG_MSDOS_FS=y > +CONFIG_VFAT_FS=y > +# CONFIG_PROC_PAGE_MONITOR is not set > +CONFIG_TMPFS=y > +CONFIG_CRAMFS=y > +CONFIG_ROMFS_FS=y > +CONFIG_NLS_CODEPAGE_437=y > +CONFIG_NLS_CODEPAGE_850=y > +CONFIG_NLS_ISO8859_1=y > +CONFIG_NLS_ISO8859_15=y > +CONFIG_PRINTK_TIME=y > +CONFIG_DEBUG_INFO=y > +CONFIG_DEBUG_INFO_REDUCED=y > +CONFIG_STRIP_ASM_SYMS=y > +CONFIG_DEBUG_SECTION_MISMATCH=y > +CONFIG_MAGIC_SYSRQ=y > +# CONFIG_SCHED_DEBUG is not set > +CONFIG_DEBUG_SPINLOCK=y > +CONFIG_DEBUG_MUTEXES=y > +CONFIG_DEBUG_ATOMIC_SLEEP=y > +# CONFIG_FTRACE is not set > +# CONFIG_CRYPTO_ANSI_CPRNG is not set > +# CONFIG_CRYPTO_HW is not set > Index: b/arch/arm/mach-bcm/bcm4760.c > =================================================================== > --- /dev/null > +++ b/arch/arm/mach-bcm/bcm4760.c > @@ -0,0 +1,37 @@ > +/* > + * Broadcom BCM4760 based ARM11 SoCs platform support > + * > + * Copyright (C) 2012 Domenico Andreoli <domenico.andreoli@linux.com> > + * > + * 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; either version 2 of the License, or > + * (at your option) any later version. > + * > + * This program is distributed in the hope that it will be useful, > + * but WITHOUT ANY WARRANTY; without even the implied warranty of > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > + * GNU General Public License for more details. > + */ > + > +#include <linux/init.h> > +#include <linux/clk-provider.h> > +#include <linux/of_platform.h> > + > +#include <asm/mach/arch.h> > + > +static void __init bcm4760_init(void) > +{ > + of_clk_init(NULL); > + of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); > +} > + > +static const char * const bcm4760_compat[] __initconst = { > + "brcm,bcm4760", > + NULL > +}; > + > +DT_MACHINE_START(BCM4760, "Broadcom BCM4760") > + .init_machine = bcm4760_init, > + .dt_compat = bcm4760_compat Please add a , after the last member too, it makes life much easier if someone is scripting a change across all these in the future (such as sorting them). > Index: b/arch/arm/mach-bcm/Kconfig > =================================================================== > --- a/arch/arm/mach-bcm/Kconfig > +++ b/arch/arm/mach-bcm/Kconfig > @@ -17,3 +17,10 @@ config ARCH_BCM > It currently supports the 'BCM281XX' family, which includes > BCM11130, BCM11140, BCM11351, BCM28145 and > BCM28155 variants. > + > +config ARCH_BCM4760 > + bool "Broadcom BCM4760 based SoCs (ARM11)" if ARCH_MULTI_V6 > + select ARM_AMBA > + select ARM_VIC > + select CLKSRC_OF > + select SOC_BUS So I think I mentioned this during previous discussions, but I think this should be solved by having: config ARCH_BCM bool "Broadcom platforms" help This enables support for Broadcom based systems menu "Broadcom platform selection" depends on ARCH_BCM config ARCH_BCM281XX ... current ARCH_BCM contents config ARCH_BCM4760 ... above conents endmenu > Index: b/arch/arm/mach-bcm/Makefile > =================================================================== > --- a/arch/arm/mach-bcm/Makefile > +++ b/arch/arm/mach-bcm/Makefile > @@ -13,3 +13,5 @@ > obj-$(CONFIG_ARCH_BCM) := board_bcm.o bcm_kona_smc.o bcm_kona_smc_asm.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_BCM4760) += bcm4760.o > Index: b/arch/arm/Makefile > =================================================================== > --- a/arch/arm/Makefile > +++ b/arch/arm/Makefile > @@ -147,6 +147,7 @@ textofs-$(CONFIG_ARCH_MSM8960) := 0x0020 > machine-$(CONFIG_ARCH_AT91) += at91 > machine-$(CONFIG_ARCH_BCM) += bcm > machine-$(CONFIG_ARCH_BCM2835) += bcm2835 > +machine-$(CONFIG_ARCH_BCM4760) += bcm With the above change, this isn't needed. -Olof
On Thu, Aug 29, 2013 at 04:17:29PM -0700, Olof Johansson wrote: > Hi, Hi, > On Thu, Aug 15, 2013 at 12:10:45AM +0200, Domenico Andreoli wrote: > > From: Domenico Andreoli <domenico.andreoli@linux.com> > > > > Platform infrastructure for the Broadcom BCM4760 based ARM11 SoCs. > > > > v3: > > * dropped the idea of unconditionally build mach-bcm > > > > v2: > > * clocks are now configured via DT > > * uart DT nodes have been renamed and hooked to the proper clock nodes > > * dropped unneeded config options > > * dropped misused initialization of system_rev > > * dropped unneeded early io mapping > > * build rule of mach-bcm is moved to separated patch > > > > v1: > > * initial release > > > > Cc: devicetree@vger.kernel.org > > Cc: linux-arm-kernel@lists.infradead.org > > Signed-off-by: Domenico Andreoli <domenico.andreoli@linux.com> > > --- > > Documentation/devicetree/bindings/arm/bcm4760.txt | 8 ++ > > MAINTAINERS | 7 ++ > > arch/arm/Makefile | 1 + > > arch/arm/boot/dts/Makefile | 1 + > > arch/arm/boot/dts/bcm4760-catalina.dts | 11 +++ > > arch/arm/boot/dts/bcm4760.dtsi | 71 +++++++++++++++++++++ > > arch/arm/configs/bcm4760_defconfig | 76 ++++++++++++++++++++++ > > arch/arm/mach-bcm/Kconfig | 7 ++ > > arch/arm/mach-bcm/Makefile | 2 + > > arch/arm/mach-bcm/bcm4760.c | 37 +++++++++++ > > 10 files changed, 221 insertions(+) > > > > Index: b/Documentation/devicetree/bindings/arm/bcm4760.txt > > =================================================================== > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/arm/bcm4760.txt > > @@ -0,0 +1,8 @@ > > +Broadcom BCM4760 ARM11 SoC device tree bindings > > +----------------------------------------------- > > + > > +Boards with the BCM4760 SoC shall have the following properties: > > + > > +Required root node property: > > + > > +compatible = "brcm,bcm4760"; > > Index: b/arch/arm/configs/bcm4760_defconfig > > =================================================================== > > --- /dev/null > > +++ b/arch/arm/configs/bcm4760_defconfig > > @@ -0,0 +1,76 @@ > > +CONFIG_IRQ_DOMAIN_DEBUG=y > > +CONFIG_IKCONFIG=y > > +CONFIG_IKCONFIG_PROC=y > > +CONFIG_BLK_DEV_INITRD=y > > +CONFIG_CC_OPTIMIZE_FOR_SIZE=y > > +CONFIG_EMBEDDED=y > > +CONFIG_MODULES=y > > +CONFIG_MODULE_UNLOAD=y > > +# CONFIG_BLK_DEV_BSG is not set > > +# CONFIG_IOSCHED_DEADLINE is not set > > +# CONFIG_IOSCHED_CFQ is not set > > +CONFIG_ARCH_MULTI_V6=y > > +# CONFIG_ARCH_MULTI_V7 is not set > > +CONFIG_ARCH_BCM4760=y > > +CONFIG_ARM_ERRATA_411920=y > > +CONFIG_ARM_ERRATA_364296=y > > +CONFIG_AEABI=y > > +CONFIG_DEPRECATED_PARAM_STRUCT=y > > +CONFIG_ARM_APPENDED_DTB=y > > +CONFIG_ARM_ATAG_DTB_COMPAT=y > > +CONFIG_VFP=y > > +# CONFIG_SUSPEND is not set > > +CONFIG_DEVTMPFS=y > > +CONFIG_DEVTMPFS_MOUNT=y > > +CONFIG_CMA=y > > +CONFIG_PROC_DEVICETREE=y > > +CONFIG_BLK_DEV_LOOP=y > > +CONFIG_BLK_DEV_RAM=y > > +CONFIG_SCSI=y > > +# CONFIG_SCSI_PROC_FS is not set > > +CONFIG_BLK_DEV_SD=y > > +CONFIG_SCSI_MULTI_LUN=y > > +# CONFIG_SCSI_LOWLEVEL is not set > > +# CONFIG_INPUT_MOUSEDEV is not set > > +CONFIG_INPUT_EVDEV=y > > +# CONFIG_INPUT_KEYBOARD is not set > > +# CONFIG_INPUT_MOUSE is not set > > +# CONFIG_SERIO is not set > > +# CONFIG_VT is not set > > +# CONFIG_DEVKMEM is not set > > +CONFIG_SERIAL_AMBA_PL011=y > > +CONFIG_SERIAL_AMBA_PL011_CONSOLE=y > > +# CONFIG_HW_RANDOM is not set > > +# CONFIG_HWMON is not set > > +# CONFIG_HID is not set > > +# CONFIG_USB_SUPPORT is not set > > +CONFIG_COMMON_CLK_DEBUG=y > > +# CONFIG_IOMMU_SUPPORT is not set > > +CONFIG_EXT2_FS=y > > +CONFIG_EXT3_FS=y > > +# CONFIG_EXT3_FS_XATTR is not set > > +CONFIG_EXT4_FS=y > > +CONFIG_FANOTIFY=y > > +CONFIG_MSDOS_FS=y > > +CONFIG_VFAT_FS=y > > +# CONFIG_PROC_PAGE_MONITOR is not set > > +CONFIG_TMPFS=y > > +CONFIG_CRAMFS=y > > +CONFIG_ROMFS_FS=y > > +CONFIG_NLS_CODEPAGE_437=y > > +CONFIG_NLS_CODEPAGE_850=y > > +CONFIG_NLS_ISO8859_1=y > > +CONFIG_NLS_ISO8859_15=y > > +CONFIG_PRINTK_TIME=y > > +CONFIG_DEBUG_INFO=y > > +CONFIG_DEBUG_INFO_REDUCED=y > > +CONFIG_STRIP_ASM_SYMS=y > > +CONFIG_DEBUG_SECTION_MISMATCH=y > > +CONFIG_MAGIC_SYSRQ=y > > +# CONFIG_SCHED_DEBUG is not set > > +CONFIG_DEBUG_SPINLOCK=y > > +CONFIG_DEBUG_MUTEXES=y > > +CONFIG_DEBUG_ATOMIC_SLEEP=y > > +# CONFIG_FTRACE is not set > > +# CONFIG_CRYPTO_ANSI_CPRNG is not set > > +# CONFIG_CRYPTO_HW is not set > > Index: b/arch/arm/mach-bcm/bcm4760.c > > =================================================================== > > --- /dev/null > > +++ b/arch/arm/mach-bcm/bcm4760.c > > @@ -0,0 +1,37 @@ > > +/* > > + * Broadcom BCM4760 based ARM11 SoCs platform support > > + * > > + * Copyright (C) 2012 Domenico Andreoli <domenico.andreoli@linux.com> > > + * > > + * 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; either version 2 of the License, or > > + * (at your option) any later version. > > + * > > + * This program is distributed in the hope that it will be useful, > > + * but WITHOUT ANY WARRANTY; without even the implied warranty of > > + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > > + * GNU General Public License for more details. > > + */ > > + > > +#include <linux/init.h> > > +#include <linux/clk-provider.h> > > +#include <linux/of_platform.h> > > + > > +#include <asm/mach/arch.h> > > + > > +static void __init bcm4760_init(void) > > +{ > > + of_clk_init(NULL); > > + of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); > > +} > > + > > +static const char * const bcm4760_compat[] __initconst = { > > + "brcm,bcm4760", > > + NULL > > +}; > > + > > +DT_MACHINE_START(BCM4760, "Broadcom BCM4760") > > + .init_machine = bcm4760_init, > > + .dt_compat = bcm4760_compat > > Please add a , after the last member too, it makes life much easier if someone > is scripting a change across all these in the future (such as sorting them). I usually pay attention to this detail. I'll fix. > > > Index: b/arch/arm/mach-bcm/Kconfig > > =================================================================== > > --- a/arch/arm/mach-bcm/Kconfig > > +++ b/arch/arm/mach-bcm/Kconfig > > @@ -17,3 +17,10 @@ config ARCH_BCM > > It currently supports the 'BCM281XX' family, which includes > > BCM11130, BCM11140, BCM11351, BCM28145 and > > BCM28155 variants. > > + > > +config ARCH_BCM4760 > > + bool "Broadcom BCM4760 based SoCs (ARM11)" if ARCH_MULTI_V6 > > + select ARM_AMBA > > + select ARM_VIC > > + select CLKSRC_OF > > + select SOC_BUS > > So I think I mentioned this during previous discussions, but I think this > should be solved by having: > > config ARCH_BCM > bool "Broadcom platforms" > help > This enables support for Broadcom based systems > > menu "Broadcom platform selection" > depends on ARCH_BCM > > config ARCH_BCM281XX > ... current ARCH_BCM contents > > config ARCH_BCM4760 > ... above conents > endmenu got it. need to sync with Christian, the current owner of ARCH_BCM. > > > > Index: b/arch/arm/mach-bcm/Makefile > > =================================================================== > > --- a/arch/arm/mach-bcm/Makefile > > +++ b/arch/arm/mach-bcm/Makefile > > @@ -13,3 +13,5 @@ > > obj-$(CONFIG_ARCH_BCM) := board_bcm.o bcm_kona_smc.o bcm_kona_smc_asm.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_BCM4760) += bcm4760.o > > Index: b/arch/arm/Makefile > > =================================================================== > > --- a/arch/arm/Makefile > > +++ b/arch/arm/Makefile > > @@ -147,6 +147,7 @@ textofs-$(CONFIG_ARCH_MSM8960) := 0x0020 > > machine-$(CONFIG_ARCH_AT91) += at91 > > machine-$(CONFIG_ARCH_BCM) += bcm > > machine-$(CONFIG_ARCH_BCM2835) += bcm2835 > > +machine-$(CONFIG_ARCH_BCM4760) += bcm > > With the above change, this isn't needed. clear > > > -Olof Thanks Domenico
On 13-08-30 12:53 AM, Domenico Andreoli wrote: >>> Index: b/arch/arm/mach-bcm/Kconfig >>> =================================================================== >>> --- a/arch/arm/mach-bcm/Kconfig >>> +++ b/arch/arm/mach-bcm/Kconfig >>> @@ -17,3 +17,10 @@ config ARCH_BCM >>> It currently supports the 'BCM281XX' family, which includes >>> BCM11130, BCM11140, BCM11351, BCM28145 and >>> BCM28155 variants. >>> + >>> +config ARCH_BCM4760 >>> + bool "Broadcom BCM4760 based SoCs (ARM11)" if ARCH_MULTI_V6 >>> + select ARM_AMBA >>> + select ARM_VIC >>> + select CLKSRC_OF >>> + select SOC_BUS >> So I think I mentioned this during previous discussions, but I think this >> should be solved by having: >> >> config ARCH_BCM >> bool "Broadcom platforms" >> help >> This enables support for Broadcom based systems >> >> menu "Broadcom platform selection" >> depends on ARCH_BCM >> >> config ARCH_BCM281XX >> ... current ARCH_BCM contents >> >> config ARCH_BCM4760 >> ... above conents >> endmenu > got it. > > need to sync with Christian, the current owner of ARCH_BCM. This is fine, but it is better to name it MOBILEBCM instead for our platform, as it plan to keep it single zImage. My plan was to switch the current usage of ARCH_BCM for chips to ARCH_MOBILEBCM, and then leave ARCH_BCM as a generic BCM menu option as above. I can send a patch to that effect if everyone is okay with that. thanks, csd
On Fri, Aug 30, 2013 at 2:52 PM, Christian Daudt <csd@broadcom.com> wrote: > On 13-08-30 12:53 AM, Domenico Andreoli wrote: >>>> >>>> Index: b/arch/arm/mach-bcm/Kconfig >>>> =================================================================== >>>> --- a/arch/arm/mach-bcm/Kconfig >>>> +++ b/arch/arm/mach-bcm/Kconfig >>>> @@ -17,3 +17,10 @@ config ARCH_BCM >>>> It currently supports the 'BCM281XX' family, which includes >>>> BCM11130, BCM11140, BCM11351, BCM28145 and >>>> BCM28155 variants. >>>> + >>>> +config ARCH_BCM4760 >>>> + bool "Broadcom BCM4760 based SoCs (ARM11)" if ARCH_MULTI_V6 >>>> + select ARM_AMBA >>>> + select ARM_VIC >>>> + select CLKSRC_OF >>>> + select SOC_BUS >>> >>> So I think I mentioned this during previous discussions, but I think this >>> should be solved by having: >>> >>> config ARCH_BCM >>> bool "Broadcom platforms" >>> help >>> This enables support for Broadcom based systems >>> >>> menu "Broadcom platform selection" >>> depends on ARCH_BCM >>> >>> config ARCH_BCM281XX >>> ... current ARCH_BCM contents >>> >>> config ARCH_BCM4760 >>> ... above conents >>> endmenu >> >> got it. >> >> need to sync with Christian, the current owner of ARCH_BCM. > > This is fine, but it is better to name it MOBILEBCM instead for our > platform, as it plan to keep it single zImage. My plan was to switch the > current usage of ARCH_BCM for chips to ARCH_MOBILEBCM, and then leave > ARCH_BCM as a generic BCM menu option as above. I can send a patch to that > effect if everyone is okay with that. Sounds good. Let's do that for 2.13. -Olof
On Fri, Aug 30, 2013 at 02:58:58PM -0700, Olof Johansson wrote: > On Fri, Aug 30, 2013 at 2:52 PM, Christian Daudt <csd@broadcom.com> wrote: > > On 13-08-30 12:53 AM, Domenico Andreoli wrote: > >>>> > >>>> Index: b/arch/arm/mach-bcm/Kconfig > >>>> =================================================================== > >>>> --- a/arch/arm/mach-bcm/Kconfig > >>>> +++ b/arch/arm/mach-bcm/Kconfig > >>>> @@ -17,3 +17,10 @@ config ARCH_BCM > >>>> It currently supports the 'BCM281XX' family, which includes > >>>> BCM11130, BCM11140, BCM11351, BCM28145 and > >>>> BCM28155 variants. > >>>> + > >>>> +config ARCH_BCM4760 > >>>> + bool "Broadcom BCM4760 based SoCs (ARM11)" if ARCH_MULTI_V6 > >>>> + select ARM_AMBA > >>>> + select ARM_VIC > >>>> + select CLKSRC_OF > >>>> + select SOC_BUS > >>> > >>> So I think I mentioned this during previous discussions, but I think this > >>> should be solved by having: > >>> > >>> config ARCH_BCM > >>> bool "Broadcom platforms" > >>> help > >>> This enables support for Broadcom based systems > >>> > >>> menu "Broadcom platform selection" > >>> depends on ARCH_BCM > >>> > >>> config ARCH_BCM281XX > >>> ... current ARCH_BCM contents > >>> > >>> config ARCH_BCM4760 > >>> ... above conents > >>> endmenu > >> > >> got it. > >> > >> need to sync with Christian, the current owner of ARCH_BCM. > > > > This is fine, but it is better to name it MOBILEBCM instead for our > > platform, as it plan to keep it single zImage. My plan was to switch the > > current usage of ARCH_BCM for chips to ARCH_MOBILEBCM, and then leave > > ARCH_BCM as a generic BCM menu option as above. I can send a patch to that > > effect if everyone is okay with that. > > Sounds good. Let's do that for 2.13. Christian, can I assume you will prepare a patch to rename ARCH_BCM or do you prefer I include it my series, maybe simplifying the merge of it? I'm fine with both. Regards, Domenico
On 13-09-10 09:16 AM, Domenico Andreoli wrote: > On Fri, Aug 30, 2013 at 02:58:58PM -0700, Olof Johansson wrote: >> On Fri, Aug 30, 2013 at 2:52 PM, Christian Daudt <csd@broadcom.com> wrote: >>> On 13-08-30 12:53 AM, Domenico Andreoli wrote: >>>>>> Index: b/arch/arm/mach-bcm/Kconfig >>>>>> =================================================================== >>>>>> --- a/arch/arm/mach-bcm/Kconfig >>>>>> +++ b/arch/arm/mach-bcm/Kconfig >>>>>> @@ -17,3 +17,10 @@ config ARCH_BCM >>>>>> It currently supports the 'BCM281XX' family, which includes >>>>>> BCM11130, BCM11140, BCM11351, BCM28145 and >>>>>> BCM28155 variants. >>>>>> + >>>>>> +config ARCH_BCM4760 >>>>>> + bool "Broadcom BCM4760 based SoCs (ARM11)" if ARCH_MULTI_V6 >>>>>> + select ARM_AMBA >>>>>> + select ARM_VIC >>>>>> + select CLKSRC_OF >>>>>> + select SOC_BUS >>>>> So I think I mentioned this during previous discussions, but I think this >>>>> should be solved by having: >>>>> >>>>> config ARCH_BCM >>>>> bool "Broadcom platforms" >>>>> help >>>>> This enables support for Broadcom based systems >>>>> >>>>> menu "Broadcom platform selection" >>>>> depends on ARCH_BCM >>>>> >>>>> config ARCH_BCM281XX >>>>> ... current ARCH_BCM contents >>>>> >>>>> config ARCH_BCM4760 >>>>> ... above conents >>>>> endmenu >>>> got it. >>>> >>>> need to sync with Christian, the current owner of ARCH_BCM. >>> This is fine, but it is better to name it MOBILEBCM instead for our >>> platform, as it plan to keep it single zImage. My plan was to switch the >>> current usage of ARCH_BCM for chips to ARCH_MOBILEBCM, and then leave >>> ARCH_BCM as a generic BCM menu option as above. I can send a patch to that >>> effect if everyone is okay with that. >> Sounds good. Let's do that for 2.13. > Christian, can I assume you will prepare a patch to rename ARCH_BCM or do > you prefer I include it my series, maybe simplifying the merge of it? I'm > fine with both. > > Regards, > Domenico > Yes. I have a patch going through internal review, I'll post it early next week. thanks, csd
Index: b/Documentation/devicetree/bindings/arm/bcm4760.txt =================================================================== --- /dev/null +++ b/Documentation/devicetree/bindings/arm/bcm4760.txt @@ -0,0 +1,8 @@ +Broadcom BCM4760 ARM11 SoC device tree bindings +----------------------------------------------- + +Boards with the BCM4760 SoC shall have the following properties: + +Required root node property: + +compatible = "brcm,bcm4760"; Index: b/arch/arm/configs/bcm4760_defconfig =================================================================== --- /dev/null +++ b/arch/arm/configs/bcm4760_defconfig @@ -0,0 +1,76 @@ +CONFIG_IRQ_DOMAIN_DEBUG=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_BLK_DEV_INITRD=y +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_EMBEDDED=y +CONFIG_MODULES=y +CONFIG_MODULE_UNLOAD=y +# CONFIG_BLK_DEV_BSG is not set +# CONFIG_IOSCHED_DEADLINE is not set +# CONFIG_IOSCHED_CFQ is not set +CONFIG_ARCH_MULTI_V6=y +# CONFIG_ARCH_MULTI_V7 is not set +CONFIG_ARCH_BCM4760=y +CONFIG_ARM_ERRATA_411920=y +CONFIG_ARM_ERRATA_364296=y +CONFIG_AEABI=y +CONFIG_DEPRECATED_PARAM_STRUCT=y +CONFIG_ARM_APPENDED_DTB=y +CONFIG_ARM_ATAG_DTB_COMPAT=y +CONFIG_VFP=y +# CONFIG_SUSPEND is not set +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_CMA=y +CONFIG_PROC_DEVICETREE=y +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_RAM=y +CONFIG_SCSI=y +# CONFIG_SCSI_PROC_FS is not set +CONFIG_BLK_DEV_SD=y +CONFIG_SCSI_MULTI_LUN=y +# CONFIG_SCSI_LOWLEVEL is not set +# CONFIG_INPUT_MOUSEDEV is not set +CONFIG_INPUT_EVDEV=y +# CONFIG_INPUT_KEYBOARD is not set +# CONFIG_INPUT_MOUSE is not set +# CONFIG_SERIO is not set +# CONFIG_VT is not set +# CONFIG_DEVKMEM is not set +CONFIG_SERIAL_AMBA_PL011=y +CONFIG_SERIAL_AMBA_PL011_CONSOLE=y +# CONFIG_HW_RANDOM is not set +# CONFIG_HWMON is not set +# CONFIG_HID is not set +# CONFIG_USB_SUPPORT is not set +CONFIG_COMMON_CLK_DEBUG=y +# CONFIG_IOMMU_SUPPORT is not set +CONFIG_EXT2_FS=y +CONFIG_EXT3_FS=y +# CONFIG_EXT3_FS_XATTR is not set +CONFIG_EXT4_FS=y +CONFIG_FANOTIFY=y +CONFIG_MSDOS_FS=y +CONFIG_VFAT_FS=y +# CONFIG_PROC_PAGE_MONITOR is not set +CONFIG_TMPFS=y +CONFIG_CRAMFS=y +CONFIG_ROMFS_FS=y +CONFIG_NLS_CODEPAGE_437=y +CONFIG_NLS_CODEPAGE_850=y +CONFIG_NLS_ISO8859_1=y +CONFIG_NLS_ISO8859_15=y +CONFIG_PRINTK_TIME=y +CONFIG_DEBUG_INFO=y +CONFIG_DEBUG_INFO_REDUCED=y +CONFIG_STRIP_ASM_SYMS=y +CONFIG_DEBUG_SECTION_MISMATCH=y +CONFIG_MAGIC_SYSRQ=y +# CONFIG_SCHED_DEBUG is not set +CONFIG_DEBUG_SPINLOCK=y +CONFIG_DEBUG_MUTEXES=y +CONFIG_DEBUG_ATOMIC_SLEEP=y +# CONFIG_FTRACE is not set +# CONFIG_CRYPTO_ANSI_CPRNG is not set +# CONFIG_CRYPTO_HW is not set Index: b/arch/arm/mach-bcm/bcm4760.c =================================================================== --- /dev/null +++ b/arch/arm/mach-bcm/bcm4760.c @@ -0,0 +1,37 @@ +/* + * Broadcom BCM4760 based ARM11 SoCs platform support + * + * Copyright (C) 2012 Domenico Andreoli <domenico.andreoli@linux.com> + * + * 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; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + */ + +#include <linux/init.h> +#include <linux/clk-provider.h> +#include <linux/of_platform.h> + +#include <asm/mach/arch.h> + +static void __init bcm4760_init(void) +{ + of_clk_init(NULL); + of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); +} + +static const char * const bcm4760_compat[] __initconst = { + "brcm,bcm4760", + NULL +}; + +DT_MACHINE_START(BCM4760, "Broadcom BCM4760") + .init_machine = bcm4760_init, + .dt_compat = bcm4760_compat +MACHINE_END Index: b/MAINTAINERS =================================================================== --- a/MAINTAINERS +++ b/MAINTAINERS @@ -1807,6 +1807,13 @@ F: arch/arm/boot/dts/bcm2835* F: arch/arm/configs/bcm2835_defconfig F: drivers/*/*bcm2835* +BROADCOM BCM4760 ARM ARCHITECTURE +M: Domenico Andreoli <domenico.andreoli@linux.com> +L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) +S: Maintained +F: arch/arm/mach-bcm/bcm4760.c +F: drivers/*/*bcm4760* + BROADCOM TG3 GIGABIT ETHERNET DRIVER M: Nithin Nayak Sujir <nsujir@broadcom.com> M: Michael Chan <mchan@broadcom.com> Index: b/arch/arm/boot/dts/Makefile =================================================================== --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile @@ -42,6 +42,7 @@ dtb-$(CONFIG_ARCH_AT91) += sama5d34ek.dt dtb-$(CONFIG_ARCH_AT91) += sama5d35ek.dtb dtb-$(CONFIG_ARCH_BCM2835) += bcm2835-rpi-b.dtb +dtb-$(CONFIG_ARCH_BCM4760) += bcm4760-catalina.dtb dtb-$(CONFIG_ARCH_BCM) += bcm11351-brt.dtb dtb-$(CONFIG_ARCH_DAVINCI) += da850-enbw-cmc.dtb \ da850-evm.dtb Index: b/arch/arm/boot/dts/bcm4760-catalina.dts =================================================================== --- /dev/null +++ b/arch/arm/boot/dts/bcm4760-catalina.dts @@ -0,0 +1,11 @@ +/dts-v1/; +#include "bcm4760.dtsi" + +/ { + compatible = "brcm,catalina", "brcm,bcm4760"; + model = "Broadcom Catalina"; + + memory { + reg = <0x30000000 0x4000000>; + }; +}; Index: b/arch/arm/boot/dts/bcm4760.dtsi =================================================================== --- /dev/null +++ b/arch/arm/boot/dts/bcm4760.dtsi @@ -0,0 +1,71 @@ +#include "skeleton.dtsi" + +/ { + compatible = "brcm,bcm4760"; + model = "Broadcom BCM4760"; + + clocks { + #address-cells = <1>; + #size-cells = <0>; + + pclk: plc_m1 { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <100100000>; + }; + + uartclk: pla_m1 { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <78000000>; + }; + }; + + amba { + compatible = "arm,amba-bus"; + #address-cells = <1>; + #size-cells = <1>; + ranges; + + vic0: interrupt-controller@80000 { + compatible = "brcm,bcm4760-pl192", "arm,pl192-vic", "arm,primecell"; + reg = <0x80000 0x1000>; + interrupt-controller; + #interrupt-cells = <1>; + }; + + vic1: interrupt-controller@81000 { + compatible = "brcm,bcm4760-pl192", "arm,pl192-vic", "arm,primecell"; + reg = <0x81000 0x1000>; + interrupt-controller; + #interrupt-cells = <1>; + }; + + serial0: uart@c0000 { + compatible = "brcm,bcm4760-pl011", "arm,pl011", "arm,primecell"; + reg = <0xc0000 0x1000>; + interrupt-parent = <&vic0>; + interrupts = <14>; + clocks = <&uartclk>, <&pclk>; + clock-names = "uartclk", "apb_pclk"; + }; + + serial1: uart@c1000 { + compatible = "brcm,bcm4760-pl011", "arm,pl011", "arm,primecell"; + reg = <0xc1000 0x1000>; + interrupt-parent = <&vic0>; + interrupts = <15>; + clocks = <&uartclk>, <&pclk>; + clock-names = "uartclk", "apb_pclk"; + }; + + serial2: uart@b2000 { + compatible = "brcm,bcm4760-pl011", "arm,pl011", "arm,primecell"; + reg = <0xb2000 0x1000>; + interrupt-parent = <&vic0>; + interrupts = <16>; + clocks = <&uartclk>, <&pclk>; + clock-names = "uartclk", "apb_pclk"; + }; + }; +}; Index: b/arch/arm/mach-bcm/Kconfig =================================================================== --- a/arch/arm/mach-bcm/Kconfig +++ b/arch/arm/mach-bcm/Kconfig @@ -17,3 +17,10 @@ config ARCH_BCM It currently supports the 'BCM281XX' family, which includes BCM11130, BCM11140, BCM11351, BCM28145 and BCM28155 variants. + +config ARCH_BCM4760 + bool "Broadcom BCM4760 based SoCs (ARM11)" if ARCH_MULTI_V6 + select ARM_AMBA + select ARM_VIC + select CLKSRC_OF + select SOC_BUS Index: b/arch/arm/mach-bcm/Makefile =================================================================== --- a/arch/arm/mach-bcm/Makefile +++ b/arch/arm/mach-bcm/Makefile @@ -13,3 +13,5 @@ obj-$(CONFIG_ARCH_BCM) := board_bcm.o bcm_kona_smc.o bcm_kona_smc_asm.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_BCM4760) += bcm4760.o Index: b/arch/arm/Makefile =================================================================== --- a/arch/arm/Makefile +++ b/arch/arm/Makefile @@ -147,6 +147,7 @@ textofs-$(CONFIG_ARCH_MSM8960) := 0x0020 machine-$(CONFIG_ARCH_AT91) += at91 machine-$(CONFIG_ARCH_BCM) += bcm machine-$(CONFIG_ARCH_BCM2835) += bcm2835 +machine-$(CONFIG_ARCH_BCM4760) += bcm machine-$(CONFIG_ARCH_CLPS711X) += clps711x machine-$(CONFIG_ARCH_CNS3XXX) += cns3xxx machine-$(CONFIG_ARCH_DAVINCI) += davinci