Add support for generic BCM SoC chipsets
Subsystems (6)
PATCH v2 1/1 Add support for generic BCM SoC chipsets
In order to start upstreaming Broadcom SoC support, create
a starting hierarchy, arch and dts files.
The first support SoC family that is planned is the
BCM281XX (BCM28145/28150/28155/28160) family of dual A9 mobile SoC cores This code is just the skeleton code for get the machine upstreamed. It has been made MULTIPLATFORM compatible.
Next steps
----------
Upstream a basic set of drivers - sufficient for a console boot to ramdisk. These will includer timer, gpio, i2c drivers.
After this basic set, we will proceed with a more comprehensive set of drivers for the 281XX SoC family.
v2 patch mods
--------
- Remove l2x0_of_init call as there were problems with the code. A separate patch will be submitted with cache init code
- Rename capri files and refs to bcm281xx-based names
- Add bcm281xx binding doc
- various misc cleanups
--- .../devicetree/bindings/arm/bcm/bcm281xx.txt | 8 ++ arch/arm/Kconfig | 2 + arch/arm/Makefile | 1 + arch/arm/boot/dts/Makefile | 1 + arch/arm/boot/dts/bcm28160-brt.dts | 30 +++++ arch/arm/boot/dts/bcm281xx.dtsi | 50 +++++++++ arch/arm/configs/bcm_defconfig | 114 ++++++++++++++++++++ arch/arm/mach-bcm/Kconfig | 18 +++ arch/arm/mach-bcm/Makefile | 13 +++ arch/arm/mach-bcm/board_bcm.c | 58 ++++++++++ 10 files changed, 295 insertions(+), 0 deletions(-) create mode 100644 Documentation/devicetree/bindings/arm/bcm/bcm281xx.txt create mode 100644 arch/arm/boot/dts/bcm28160-brt.dts create mode 100644 arch/arm/boot/dts/bcm281xx.dtsi create mode 100644 arch/arm/configs/bcm_defconfig create mode 100644 arch/arm/mach-bcm/Kconfig create mode 100644 arch/arm/mach-bcm/Makefile create mode 100644 arch/arm/mach-bcm/board_bcm.c
Documentation/devicetree/bindings/arm/bcm/bcm281xx.txt new file +8 -0
@@ -0,0 +1,8 @@ +Broadcom BCM281XX device tree bindings +------------------------------------------- + +Boards with the bcm281xx SoC family shall have the following properties: + +Required root node property: + +compatible = "bcm,bcm281xx";
arch/arm/Kconfig +2 -0
@@ -1022,6 +1022,8 @@ source "arch/arm/mach-mvebu/Kconfig" source "arch/arm/mach-at91/Kconfig" +source "arch/arm/mach-bcm/Kconfig" + source "arch/arm/mach-clps711x/Kconfig" source "arch/arm/mach-cns3xxx/Kconfig"
arch/arm/Makefile +1 -0
@@ -137,6 +137,7 @@ textofs-$(CONFIG_ARCH_MSM8960) := 0x00208000 # Machine directory name. This list is sorted alphanumerically # by CONFIG_* macro name. machine-$(CONFIG_ARCH_AT91) += at91 +machine-$(CONFIG_ARCH_BCM) += bcm machine-$(CONFIG_ARCH_BCM2835) += bcm2835 machine-$(CONFIG_ARCH_CLPS711X) += clps711x machine-$(CONFIG_ARCH_CNS3XXX) += cns3xxx
arch/arm/boot/dts/Makefile +1 -0
@@ -17,6 +17,7 @@ dtb-$(CONFIG_ARCH_AT91) += aks-cdu.dtb \ usb_a9263.dtb \ usb_a9g20.dtb dtb-$(CONFIG_ARCH_BCM2835) += bcm2835-rpi-b.dtb +dtb-$(CONFIG_ARCH_BCM) += capri-brt.dtb dtb-$(CONFIG_ARCH_DOVE) += dove-cm-a510.dtb \ dove-cubox.dtb \ dove-dove-db.dtb
arch/arm/boot/dts/bcm28160-brt.dts new file +30 -0
@@ -0,0 +1,30 @@ +/* + * Copyright (C) 2012 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. + */ + +/dts-v1/; + +/include/ "bcm281xx.dtsi" + +/ { + model = "BCM28160 BRT board"; + compatible = "bcm,bcm28160-brt", "bcm,bcm281xx"; + + memory { + reg = <0x80000000 0x40000000>; /* 1 GB */ + }; + + uart at 3e000000 { + status = "okay"; + }; + +};
arch/arm/boot/dts/bcm281xx.dtsi new file +50 -0
50 lines not on this page · raw message
arch/arm/configs/bcm_defconfig new file +114 -0
114 lines not on this page · raw message
arch/arm/mach-bcm/Kconfig new file +18 -0
@@ -0,0 +1,18 @@ +config ARCH_BCM + bool "Broadcom SoC" if ARCH_MULTI_V7 + depends on MMU + select ARCH_REQUIRE_GPIOLIB + select ARM_ERRATA_754322 + select ARM_ERRATA_764369 if SMP + select ARM_GIC + select CPU_V7 + select GENERIC_CLOCKEVENTS + select GENERIC_GPIO + select GENERIC_TIME + select GPIO_BCM + select SPARSE_IRQ + select TICK_ONESHOT + help + This enables support for system based on Broadcom SoCs. + It currently supports BCM28145/28150/28155/28160 chips. +
arch/arm/mach-bcm/Makefile new file +13 -0
@@ -0,0 +1,13 @@ +# +# Copyright (C) 2012 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. + +obj-$(CONFIG_ARCH_BCM) := board_bcm.o
arch/arm/mach-bcm/board_bcm.c new file +58 -0
58 lines not on this page · raw message
Signature · 1 line
1.7.1
PATCH v2 1/1 Add support for generic BCM SoC chipsets
Hi Christian,
Quoted 4 lines · On Sunday 11 November 2012 06:57:14 Christian Daudt wrote:
In order to start upstreaming Broadcom SoC support, create
a starting hierarchy, arch and dts files.
The first support SoC family that is planned is the
BCM281XX (BCM28145/28150/28155/28160) family of dual A9 mobile SoC cores
Quoted 8 lines
This code is just the skeleton code for get the machine upstreamed. It has been made MULTIPLATFORM compatible.
Next steps
----------
Upstream a basic set of drivers - sufficient for a console boot to ramdisk. These will includer timer, gpio, i2c drivers. After this basic set, we will proceed with a more comprehensive set of drivers for the 281XX SoC family.
Would not it make more sense to use mach-bcm281xx as a directory name instead of mach-bcm which sounds a tad too generic? This would also make it consistent with Domenico's mach-bcm47xx and the existing bcm47xx and bcm63xx MIPS-based SoC support.
Signature · 1 line
Florian
PATCH v2 1/1 Add support for generic BCM SoC chipsets
Quoted 16 lines · Florian Fainelli
Hi Christian,
Quoted 4 lines · On Sunday 11 November 2012 06:57:14 Christian Daudt wrote:
In order to start upstreaming Broadcom SoC support, create
a starting hierarchy, arch and dts files.
The first support SoC family that is planned is the
BCM281XX (BCM28145/28150/28155/28160) family of dual A9 mobile SoC coresQuoted 8 lines
This code is just the skeleton code for get the machine upstreamed. It has been made MULTIPLATFORM compatible.
Next steps
----------
Upstream a basic set of drivers - sufficient for a console boot to ramdisk. These will includer timer, gpio, i2c drivers. After this basic set, we will proceed with a more comprehensive set of drivers for the 281XX SoC family.
Quoted 8 lines
Would not it make more sense to use mach-bcm281xx as a directory name instead
of mach-bcm which sounds a tad too generic? This would also make it consistent
with Domenico's mach-bcm47xx and the existing bcm47xx and bcm63xx MIPS-based
SoC support.
I'm following the other mobile ARM SoCs which all have a single mach- directory for various families of chips (mach-tegra, mach-omap2, etc...). Plus the intent is to have a single set of mach files that works across bcm SoCs, so it is preferable to keep it in a single mach-bcm.
thanks,
csd
Quoted 3 lines
--
Florian
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20121111/24d6e94c/attachment-0001.html>
PATCH v2 1/1 Add support for generic BCM SoC chipsets
Quoted 27 lines · On Sunday 11 November 2012 09:32:13 Christian Daudt wrote:
Quoted 16 lines · Florian Fainelli
Hi Christian,
Quoted 4 lines · On Sunday 11 November 2012 06:57:14 Christian Daudt wrote:
In order to start upstreaming Broadcom SoC support, create
a starting hierarchy, arch and dts files.
The first support SoC family that is planned is the
BCM281XX (BCM28145/28150/28155/28160) family of dual A9 mobile SoC coresQuoted 8 lines
This code is just the skeleton code for get the machine upstreamed. It has been made MULTIPLATFORM compatible.
Next steps
----------
Upstream a basic set of drivers - sufficient for a console boot to ramdisk. These will includer timer, gpio, i2c drivers. After this basic set, we will proceed with a more comprehensive set of drivers for the 281XX SoC family.Quoted 8 lines
Would not it make more sense to use mach-bcm281xx as a directory name instead
of mach-bcm which sounds a tad too generic? This would also make it consistent
with Domenico's mach-bcm47xx and the existing bcm47xx and bcm63xx MIPS-based
SoC support.
Quoted 4 lines
I'm following the other mobile ARM SoCs which all have a single mach- directory for various families of chips (mach-tegra, mach-omap2, etc...). Plus the intent is to have a single set of mach files that works across bcm SoCs, so it is preferable to keep it in a single mach-bcm.
Your argument does not make sense here, if I follow your point, these directories should have been named mach-nvidia or mach-ti respectively if I follow your convention (you use the vendor name, not a commercial product name)
I do understand your intent, yet you announce support for BCM281xx SoCs, and one of your dtsi file is bcm281xx.dtsi. At least something like mach-bcmmobile sounds better to me.
We have had the inclusion of the "socfpga" platform which is already very badly named because it does not make it clear that it is an Altera platform and not some generic SoC + FPGA platform.
Anyway, that's just my 2 cents.
Signature · 1 line
Florian
PATCH v2 1/1 Add support for generic BCM SoC chipsets
In reply to Christian DaudtQuoted 31 lines · Christian Daudt
On Sun, Nov 11, 2012 at 7:53 AM, Florian Fainelli <[email protected] <mailto:[email protected]>> wrote:
Hi Christian,
On Sunday 11 November 2012 06:57:14 Christian Daudt wrote:
> In order to start upstreaming Broadcom SoC support, create > a starting hierarchy, arch and dts files.
> The first support SoC family that is planned is the
> BCM281XX (BCM28145/28150/28155/28160) family of dual A9 mobile SoC cores
> This code is just the skeleton code for get the machine upstreamed. It > has been made MULTIPLATFORM compatible.
> Next steps
> ----------
> Upstream a basic set of drivers - sufficient for a console boot to > ramdisk. These will includer timer, gpio, i2c drivers.
> After this basic set, we will proceed with a more comprehensive set > of drivers for the 281XX SoC family.Would not it make more sense to use mach-bcm281xx as a directory name instead
of mach-bcm which sounds a tad too generic? This would also make it consistent
with Domenico's mach-bcm47xx and the existing bcm47xx and bcm63xx MIPS-based
SoC support.
Quoted 4 lines
I'm following the other mobile ARM SoCs which all have a single mach- directory for various families of chips (mach-tegra, mach-omap2, etc...). Plus the intent is to have a single set of mach files that works across bcm SoCs, so it is preferable to keep it in a single mach-bcm.
It's quite possible to create one directory now, e.g. mach-bcm281xx, and then when consolidation with other mach-bcm* happens, merge all those directories into a single mach-bcm. I would tend to prefer (but only lightly) using mach-bcm281xx now and then renaming later, unless you plan on expanding the SoC support in the pretty near future.
Arnd Bergmann
maintainerPATCH v2 1/1 Add support for generic BCM SoC chipsets
Quoted 10 lines · Stephen Warren
Quoted 4 lines
I'm following the other mobile ARM SoCs which all have a single mach- directory for various families of chips (mach-tegra, mach-omap2, etc...). Plus the intent is to have a single set of mach files that works across bcm SoCs, so it is preferable to keep it in a single mach-bcm.
It's quite possible to create one directory now, e.g. mach-bcm281xx, and then when consolidation with other mach-bcm* happens, merge all those directories into a single mach-bcm. I would tend to prefer (but only lightly) using mach-bcm281xx now and then renaming later, unless you plan on expanding the SoC support in the pretty near future.
I think the main question is how many files we expect to see in the platform directories for each of bcm3528, bcm281xx and bcm476x. Right now, my feeling is that each of them can be a single file, since most of the stuff that has traditionally been in mach-* directories is moving out to drivers now.
If that is the case, having one directory for each platform is a little silly and we should just stick them all in one place, using the "mach-bcm" name more as a help for people looking for the code than an indication of being a single soc family or maintained by the same person. We already have some precedent in shmobile, which contains some platforms that were completely distinct at the time they were introduced.
You still have to work out how you want to maintain that directory though, either just having per-file maintainers, or having multiple people take responsible for the entire directory.
Arnd
PATCH v2 1/1 Add support for generic BCM SoC chipsets
Quoted 12 lines · Arnd Bergmann
Quoted 10 lines · Stephen Warren
Quoted 4 lines
I'm following the other mobile ARM SoCs which all have a single mach- directory for various families of chips (mach-tegra, mach-omap2, etc...). Plus the intent is to have a single set of mach files that works across bcm SoCs, so it is preferable to keep it in a single mach-bcm.
It's quite possible to create one directory now, e.g. mach-bcm281xx, and then when consolidation with other mach-bcm* happens, merge all those directories into a single mach-bcm. I would tend to prefer (but only lightly) using mach-bcm281xx now and then renaming later, unless you plan on expanding the SoC support in the pretty near future.
Quoted 5 lines
I think the main question is how many files we expect to see in the platform directories for each of bcm3528, bcm281xx and bcm476x. Right now, my feeling is that each of them can be a single file, since most of the stuff that has traditionally been in mach-* directories is moving out to drivers now.
I expect only DT-only stuff will be mainlined so one directory (plat-brcm?) should be ok, right?
Quoted 3 lines
You still have to work out how you want to maintain that directory though, either just having per-file maintainers, or having multiple people take responsible for the entire directory.
I'd like to take care of the bcm476x and related drivers unless Broadcom wants to do it. Let me know in which directory.
Regards,
Domenico
Arnd Bergmann
maintainerPATCH v2 1/1 Add support for generic BCM SoC chipsets
Quoted 13 lines · Domenico Andreoli
Quoted 12 lines · Arnd Bergmann
Quoted 10 lines · Stephen Warren
Quoted 4 lines
I'm following the other mobile ARM SoCs which all have a single mach- directory for various families of chips (mach-tegra, mach-omap2, etc...). Plus the intent is to have a single set of mach files that works across bcm SoCs, so it is preferable to keep it in a single mach-bcm.
It's quite possible to create one directory now, e.g. mach-bcm281xx, and then when consolidation with other mach-bcm* happens, merge all those directories into a single mach-bcm. I would tend to prefer (but only lightly) using mach-bcm281xx now and then renaming later, unless you plan on expanding the SoC support in the pretty near future.
Quoted 8 lines
Quoted 5 lines
I think the main question is how many files we expect to see in the platform directories for each of bcm3528, bcm281xx and bcm476x. Right now, my feeling is that each of them can be a single file, since most of the stuff that has traditionally been in mach-* directories is moving out to drivers now.
I expect only DT-only stuff will be mainlined so one directory (plat-brcm?) should be ok, right?
Right. The usual naming is to use 'mach-*' for one platform, and 'plat-*' for stuff that spreads multiple 'mach-*' directories. In this case, the name I would expect is either 'mach-bcm' as Christian suggested, or 'mach-brcm' if people have strong opinions in favor of that, but not 'plat-brcm'.
Quoted 6 lines
Quoted 3 lines
You still have to work out how you want to maintain that directory though, either just having per-file maintainers, or having multiple people take responsible for the entire directory.
I'd like to take care of the bcm476x and related drivers unless Broadcom wants to do it.
Yes, of course.
Quoted 1 line
Let me know in which directory.
I'll let you work that out with Stephen and Christian. I think just 'mach-bcm' is sufficent, but I think the three of you should come to an agreement first.
Arnd
PATCH v2 1/1 Add support for generic BCM SoC chipsets
Quoted 36 lines · Arnd Bergmann
Quoted 13 lines · Domenico Andreoli
Quoted 12 lines · Arnd Bergmann
Quoted 10 lines · Stephen Warren
Quoted 4 lines
I'm following the other mobile ARM SoCs which all have a single mach- directory for various families of chips (mach-tegra, mach-omap2, etc...). Plus the intent is to have a single set of mach files that works across bcm SoCs, so it is preferable to keep it in a single mach-bcm.
It's quite possible to create one directory now, e.g. mach-bcm281xx, and then when consolidation with other mach-bcm* happens, merge all those directories into a single mach-bcm. I would tend to prefer (but only lightly) using mach-bcm281xx now and then renaming later, unless you plan on expanding the SoC support in the pretty near future.
Quoted 8 lines
Quoted 5 lines
I think the main question is how many files we expect to see in the platform directories for each of bcm3528, bcm281xx and bcm476x. Right now, my feeling is that each of them can be a single file, since most of the stuff that has traditionally been in mach-* directories is moving out to drivers now.
I expect only DT-only stuff will be mainlined so one directory (plat-brcm?) should be ok, right?
Right. The usual naming is to use 'mach-*' for one platform, and 'plat-*' for stuff that spreads multiple 'mach-*' directories. In this case, the name I would expect is either 'mach-bcm' as Christian suggested, or 'mach-brcm' if people have strong opinions in favor of that, but not 'plat-brcm'.
Quoted 6 lines
Quoted 3 lines
You still have to work out how you want to maintain that directory though, either just having per-file maintainers, or having multiple people take responsible for the entire directory.
I'd like to take care of the bcm476x and related drivers unless Broadcom wants to do it.
Quoted 7 lines
Yes, of course.
Quoted 1 line
Let me know in which directory.
I'll let you work that out with Stephen and Christian. I think just 'mach-bcm' is sufficent, but I think the three of you should come to an agreement first.
I don't really have too strong of a preference. If the eventual intent is for the directory to host all ARM Broadcom SoCs, then mach-bcm seems reasonable.
PATCH v2 1/1 Add support for generic BCM SoC chipsets
Quoted 33 lines · Stephen Warren
Quoted 32 lines · Arnd Bergmann
Quoted 11 lines · Domenico Andreoli
Quoted 10 lines · Arnd Bergmann
Quoted 9 lines · Stephen Warren
Quoted 4 lines
I'm following the other mobile ARM SoCs which all have a single mach- directory for various families of chips (mach-tegra, mach-omap2, etc...). Plus the intent is to have a single set of mach files that works across bcm SoCs, so it is preferable to keep it in a single mach-bcm.
It's quite possible to create one directory now, e.g. mach-bcm281xx, and then when consolidation with other mach-bcm* happens, merge all those directories into a single mach-bcm. I would tend to prefer (but only lightly) using mach-bcm281xx now and then renaming later, unless you plan on expanding the SoC support in the pretty near future.
Quoted 7 lines
Quoted 5 lines
I think the main question is how many files we expect to see in the platform directories for each of bcm3528, bcm281xx and bcm476x. Right now, my feeling is that each of them can be a single file, since most of the stuff that has traditionally been in mach-* directories is moving out to drivers now.
I expect only DT-only stuff will be mainlined so one directory (plat-brcm?) should be ok, right?
Right. The usual naming is to use 'mach-*' for one platform, and 'plat-*' for stuff that spreads multiple 'mach-*' directories. In this case, the name I would expect is either 'mach-bcm' as Christian suggested, or 'mach-brcm' if people have strong opinions in favor of that, but not 'plat-brcm'.
Quoted 5 lines
Quoted 3 lines
You still have to work out how you want to maintain that directory though, either just having per-file maintainers, or having multiple people take responsible for the entire directory.
I'd like to take care of the bcm476x and related drivers unless Broadcom wants to do it.
Yes, of course.
Quoted 8 lines
Quoted 4 lines
Quoted 1 line
Let me know in which directory.
I'll let you work that out with Stephen and Christian. I think just 'mach-bcm' is sufficent, but I think the three of you should come to an agreement first.
I don't really have too strong of a preference. If the eventual intent is for the directory to host all ARM Broadcom SoCs, then mach-bcm seems reasonable.
Ok, sounds like sticking to mach-bcm has sufficient acks. What I was thinking of doing is, once mach-bcm had been introduced, to propose to pull in the 476x and 2835 into also, to do some consolidation. And have the separate files can keep separate owners - we'd just have Kconfig + Makefile shared most likely.
Or not. Ultimately I don't mind keeping 2835 and 476x as separate
mach- either. Those are v6 SoCs, and at this point I have no plans on working on mobile v6 SoCs, only v7 onwards. So we can also say that mach-bcm is for v7+ SoCs and v6 SoCs keep their existing mach- dirs for now.
I personally have no strong preference either, just went with mach-bcm
because, as Arnd mentioned, going forward these are going to be mostly empty dirs if we stick to one dir per chipset family. So unless there are strong objections, I'll just stick to mach-bcm for my patches, and if Stephen and/or Domenico want to consolidate into a single dir later, we can do that. If not, we can stick to these 3 dirs.
Thanks,
csd
PATCH v2 1/1 Add support for generic BCM SoC chipsets
Quoted 1 line · Christian Daudt
On 12-11-12 09:15 AM, Stephen Warren wrote:
...
Quoted 9 lines
Quoted 4 lines
I don't really have too strong of a preference. If the eventual intent is for the directory to host all ARM Broadcom SoCs, then mach-bcm seems reasonable.
Ok, sounds like sticking to mach-bcm has sufficient acks. What I was thinking of doing is, once mach-bcm had been introduced, to propose to pull in the 476x and 2835 into also, to do some consolidation. And have the separate files can keep separate owners - we'd just have
Kconfig+Makefileshared most likely.
ok also for me
Quoted 5 lines
Or not. Ultimately I don't mind keeping 2835 and 476x as separate
mach- either. Those are v6 SoCs, and at this point I have no plans on working on mobile v6 SoCs, only v7 onwards. So we can also say that mach-bcm is for v7+ SoCs and v6 SoCs keep their existing mach- dirs for now.
bcm476x is a non-existent directory yet so I'll be happy to switch to mach-bcm at the next round (*).
thanks,
Domenico
(*) I'm a bit late with it because I've been distracted by a crazy way to track kernel regressions I'm hacking on. it's an experiment to test a few ideas: http://filibusta.crema.unimi.it/~cavok/kbts/. early comments are very welcome.
PATCH v2 1/1 Add support for generic BCM SoC chipsets
In reply to Christian Daudtarch/arm/mach-bcm/board_bcm.c line 19
Quoted 6 lines · Christian Daudt
arch/arm/mach-bcm/board_bcm.c new file +6
-0+#include <linux/of_irq.h> +#include <linux/of_platform.h> +#include <linux/init.h> +#include <linux/device.h> +#include <linux/platform_device.h> +#include <asm/io.h>
Please use linux/io.h rather than asm/io.h throughout your patch sets. However, I don't see anything in this file which requires this header, so it's better off being removed entirely.
PATCH v2 1/1 Add support for generic BCM SoC chipsets
Quoted 11 lines · Russell King - ARM Linux
arch/arm/mach-bcm/board_bcm.c line 19
Quoted 6 lines · Christian Daudt
arch/arm/mach-bcm/board_bcm.c new file +6
-0+#include <linux/of_irq.h> +#include <linux/of_platform.h> +#include <linux/init.h> +#include <linux/device.h> +#include <linux/platform_device.h> +#include <asm/io.h> Please use
linux/io.hrather thanasm/io.hthroughout your patch sets. However, I don't see anything in this file which requires this header, so it's better off being removed entirely.
that will be required later, but you're right. It is not being used at this point so I've removed it.
thanks,
csd
PATCH v2 1/1 Add support for generic BCM SoC chipsets
In reply to Christian Daudtarch/arm/boot/dts/Makefile
Quoted 11 lines · Christian Daudt
In order to start upstreaming Broadcom SoC support, create
a starting hierarchy, arch and dts files.
The first support SoC family that is planned is the
BCM281XX (BCM28145/28150/28155/28160) family of dual A9 mobile SoC cores This code is just the skeleton code for get the machine upstreamed. It has been made MULTIPLATFORM compatible.
Next stepsarch/arm/boot/dts/Makefile +1
-0+dtb-$(CONFIG_ARCH_BCM) += capri-brt.dtb
I think that needs to be renamed too.
arch/arm/boot/dts/bcm281xx.dtsi line 18
Quoted 5 lines
arch/arm/boot/dts/bcm281xx.dtsi +3
-0+/ { + model = "BCM281xx SoC"; + compatible = "bcm,bcm281xx";
I think this should list the specific SoC rather than (or perhaps in addition to) a wildcard.
Out of curiosity though, what kind of differences exist between the various SoCs this wildcard is intended to cover; bcm28145/28150/28155/28160? Are they simply package/pinout differences, or something more involved?
arch/arm/boot/dts/bcm281xx.dtsi line 35
Quoted 2 lines
arch/arm/boot/dts/bcm281xx.dtsi +2
-0+ uart at 3e000000 { + compatible = "snps,dw-apb-uart";
As I mentioned in my earlier reply, I think this should indicate the specific instantiation of the IP too; something like bcm,bcm28160-dw-apb-uart.
arch/arm/mach-bcm/Kconfig line 17
Quoted 5 lines
arch/arm/mach-bcm/Kconfig +3
-0+ help + This enables support for system based on Broadcom SoCs. + It currently supports BCM28145/28150/28155/28160 chips.
The indentation looks a little odd there.
arch/arm/mach-bcm/board_bcm.c
Quoted 3 lines
arch/arm/mach-bcm/board_bcm.c +1
-0+static const char *const capri_dt_compat[] = {"bcm,capri" ,NULL , };
I think that needs to be updated too.
PATCH v2 1/1 Add support for generic BCM SoC chipsets
Quoted 11 lines · Stephen Warren
arch/arm/boot/dts/Makefile dtb-$(CONFIG_ARCH_AT91) += aks-cdu.dtb \ · line 20
Quoted 9 lines · Christian Daudt
In order to start upstreaming Broadcom SoC support, create
a starting hierarchy, arch and dts files.
The first support SoC family that is planned is the
BCM281XX (BCM28145/28150/28155/28160) family of dual A9 mobile SoC cores This code is just the skeleton code for get the machine upstreamed. It has been made MULTIPLATFORM compatible.
Next stepsarch/arm/boot/dts/Makefile +1
-0+dtb-$(CONFIG_ARCH_BCM) += capri-brt.dtbI think that needs to be renamed too.
done
Quoted 7 lines
arch/arm/boot/dts/bcm281xx.dtsi line 18
Quoted 5 lines
arch/arm/boot/dts/bcm281xx.dtsi +3
-0+/ { + model = "BCM281xx SoC"; + compatible = "bcm,bcm281xx";I think this should list the specific SoC rather than (or perhaps in addition to) a wildcard.
The idea here is that bcm281xx contains the family-wide definitions, and once there are multiple boards that use the same specific chip then I'd create a chip-specific dtsi file. So eventually it'd be:bcm281xx.dtsi - for the family
bcm28145.dtsibcm28155.dtsi
... for chip-specific
andbcm28160-brt.dts
... for board specific.
But to simplify I'm just starting with bcm281xx and bcm28160-brt
Quoted 4 lines
Out of curiosity though, what kind of differences exist between the various SoCs this wildcard is intended to cover; bcm28145/28150/28155/28160? Are they simply package/pinout differences, or something more involved?
It mostly revolves around single or dual memory controller, and POP or external DDR. I've only used internal names prior to upstreaming, and it turns out that my understanding of the numbering is not quite right, so I'll be adjusting the patchset a bit before sending the next version out.
Quoted 5 lines
arch/arm/boot/dts/bcm281xx.dtsi line 35
Quoted 2 lines
arch/arm/boot/dts/bcm281xx.dtsi +2
-0+ uart at 3e000000 { + compatible = "snps,dw-apb-uart";As I mentioned in my earlier reply, I think this should indicate the specific instantiation of the IP too; something like bcm,bcm28160-dw-apb-uart.
ok. added.
Quoted 5 lines
arch/arm/mach-bcm/Kconfig line 17
Quoted 4 lines
arch/arm/mach-bcm/Kconfig +3
-0+ help + This enables support for system based on Broadcom SoCs. + It currently supports BCM28145/28150/28155/28160 chips.The indentation looks a little odd there.
fixed.
Quoted 3 lines
arch/arm/mach-bcm/board_bcm.c line 50
Quoted 2 lines
arch/arm/mach-bcm/board_bcm.c +1
-0+static const char *const capri_dt_compat[] = {"bcm,capri" ,NULL , };I think that needs to be updated too.
fixed.