[PATCH V3 00/11] Multiplatform BMIPS kernel
From: Kevin Cernekee
Date: Sun Nov 23 2014 - 21:43:54 EST
This patch series REPLACES the following commits in Ralf's
ab3e5d0647e3 Documentation: DT: Add entries for BCM3384 and its peripherals
1251d9964de5 MIPS: bcm3384: Initial commit of bcm3384 platform support
aff366c68e5c MAINTAINERS: Add entry for BCM33xx cable chips
(Ralf, if you just want to drop the above commits and target the new
platform for 3.20+, that's fine.)
- Omit the BMIPS updates that have already been accepted into Ralf's tree.
They are still needed, but not reposted.
- Make USB endian swap options conditional on "if CPU_BIG_ENDIAN".
- Remove board listing from Documentation/devicetree/bindings/mips/brcm/soc.txt
- Remove legacy device autodetection and chip ID decoding. Legacy
boards/bootloaders will be supported by selecting a single DTB file
to compile into the kernel.
- Refactor quirks code to match against DT "compatible" strings, not chip IDs.
- Fix CPU1 boot (missing DT node) on 6329.
- Remove @0 / addressing properties on non-reg nodes.
- Remove bogus "brcm,bmips" bus registration.
- Move UBUS peripherals onto a "simple-bus" and set DMA ranges for this
bus on bcm3384_zephyr.
- Fix base addresses on 6328/6368 for "periph_intc@10000020".
- Change the MIPS_L1_CACHE_SHIFT calculation so as to minimize the impact
on other builds (like bcm63xx).
This series is based on mips-for-linux-next, minus the three 3384 patches
listed above, plus these non-MIPS patches:
http://marc.info/?l=linux-usb&m=141305106215886&w=2 (all 3/3)
These are queued for tty-next / irqchip-next / usb-next.
Re: irqchip patches in this series
These apply cleanly on top of earlier bcm7120/brcmstb commits currently
in irqchip-next. The BMIPS commit in this series depends on both the
irqchip-next updates, and the irqchip updates in this series.
I have some patches ready for the brcmstb syscon/reset drivers, but will
submit them separately so we can get the basic platform support stuff
nailed down first.
I don't have a patch ready for gisb-arb support yet, but I have prototyped
These patches will also have interdependencies between the
arch/mips/boot/dts changes and the drivers/ changes.
Re: external (non-MIPS) timers:
I left this problem for a future submission. There are a couple of
elements to consider:
- Do we want to completely eliminate CSRC_R4K and CEVT_R4K in favor of an
external timer, and leave mips_hpt_frequency unset?
- If so, do all platforms have a suitable timer, and is it hooked up to an
IRQ? On STB we saw conflicts with other software when taking over one
of the UPG timers; the alternative (WKTMR) doesn't have a suitable
- Or do we want to use another timer to calibrate mips_hpt_frequency? In
this case we may need to add part of that timer's driver under
arch/mips/bmips instead of under drivers/, so it is available early in the
boot process. Unfortunately that might cause problems or redundancy
sharing the code with ARM platforms.
- And if we do wind up using CSRC_R4K / CEVT_R4K, we'll need a way to
handle the complications caused by frequency scaling. The brcmstb
kernel sources posted on github do this, but it did require changes to
other files under arch/mips/kernel/.
dma.c implements a minimal remapping scheme just for the current UBUS
peripherals. The remapping is global, and it isn't the same mapping
needed for PCI(e). A more comprehensive solution will be needed before
PCI support can be added.
On chips OTHER than 3384, remapping is only required on PCI (not UBUS or
"rdb"). Notably, BCM7445, an ARM platform currently supported upstream,
doesn't require dma-ranges for non-PCI devices.
I am hoping we can piggyback on top of the ARM dma-ranges code once it
is merged. This will allow for eliminating my dma.c.
Brian Norris (1):
irqchip: brcmstb-l2: don't clear wakeable interrupts at init time
Dmitry Torokhov (2):
irqchip: brcmstb-l2: fix error handling of irq_of_parse_and_map
irqchip: bcm7120-l2: fix error handling of irq_of_parse_and_map
Kevin Cernekee (8):
irqchip: Update docs regarding irq_domain_add_tree()
irqchip: bcm7120-l2: Refactor driver for arbitrary IRQEN/IRQSTAT
irqchip: bcm7120-l2: Change DT binding to allow non-contiguous
irqchip: Add new driver for BCM7038-style level 1 interrupt
MIPS: Let __dt_register_buses accept a single bus type
MIPS: Fall back to the generic restart notifier
MIPS: Reorder MIPS_L1_CACHE_SHIFT priorities
MIPS: Add multiplatform BMIPS target
Documentation/IRQ-domain.txt | 3 +-
.../interrupt-controller/brcm,bcm7038-l1-intc.txt | 52 ++++
.../interrupt-controller/brcm,bcm7120-l2-intc.txt | 5 +-
.../devicetree/bindings/mips/brcm/bmips.txt | 8 +
.../devicetree/bindings/mips/brcm/soc.txt | 12 +
arch/mips/Kbuild.platforms | 1 +
arch/mips/Kconfig | 42 ++-
arch/mips/bmips/Kconfig | 50 +++
arch/mips/bmips/Makefile | 1 +
arch/mips/bmips/Platform | 7 +
arch/mips/bmips/dma.c | 141 +++++++++
arch/mips/bmips/irq.c | 38 +++
arch/mips/bmips/setup.c | 195 ++++++++++++
arch/mips/boot/dts/Makefile | 9 +
arch/mips/boot/dts/bcm3384_viper.dtsi | 108 +++++++
arch/mips/boot/dts/bcm3384_zephyr.dtsi | 126 ++++++++
arch/mips/boot/dts/bcm6328.dtsi | 87 ++++++
arch/mips/boot/dts/bcm6368.dtsi | 94 ++++++
arch/mips/boot/dts/bcm7125.dtsi | 107 +++++++
arch/mips/boot/dts/bcm7346.dtsi | 192 ++++++++++++
arch/mips/boot/dts/bcm7360.dtsi | 129 ++++++++
arch/mips/boot/dts/bcm7420.dtsi | 151 ++++++++++
arch/mips/boot/dts/bcm7425.dtsi | 191 ++++++++++++
arch/mips/boot/dts/bcm93384wvg.dts | 25 ++
arch/mips/boot/dts/bcm93384wvg_viper.dts | 25 ++
arch/mips/boot/dts/bcm96368mvwg.dts | 31 ++
arch/mips/boot/dts/bcm97125cbmb.dts | 31 ++
arch/mips/boot/dts/bcm97346dbsmb.dts | 58 ++++
arch/mips/boot/dts/bcm97360svmb.dts | 34 +++
arch/mips/boot/dts/bcm97420c.dts | 45 +++
arch/mips/boot/dts/bcm97425svmb.dts | 60 ++++
arch/mips/boot/dts/bcm9ejtagprb.dts | 22 ++
arch/mips/configs/bmips_be_defconfig | 86 ++++++
arch/mips/configs/bmips_stb_defconfig | 86 ++++++
arch/mips/include/asm/mach-bmips/dma-coherence.h | 45 +++
arch/mips/include/asm/mach-bmips/spaces.h | 17 ++
arch/mips/include/asm/mach-bmips/war.h | 24 ++
arch/mips/kernel/prom.c | 5 +-
arch/mips/kernel/reset.c | 2 +
drivers/irqchip/Kconfig | 5 +
drivers/irqchip/Makefile | 1 +
drivers/irqchip/irq-bcm7038-l1.c | 335 +++++++++++++++++++++
drivers/irqchip/irq-bcm7120-l2.c | 105 +++++--
drivers/irqchip/irq-brcmstb-l2.c | 13 +-
44 files changed, 2768 insertions(+), 36 deletions(-)
create mode 100644 Documentation/devicetree/bindings/interrupt-controller/brcm,bcm7038-l1-intc.txt
create mode 100644 Documentation/devicetree/bindings/mips/brcm/bmips.txt
create mode 100644 Documentation/devicetree/bindings/mips/brcm/soc.txt
create mode 100644 arch/mips/bmips/Kconfig
create mode 100644 arch/mips/bmips/Makefile
create mode 100644 arch/mips/bmips/Platform
create mode 100644 arch/mips/bmips/dma.c
create mode 100644 arch/mips/bmips/irq.c
create mode 100644 arch/mips/bmips/setup.c
create mode 100644 arch/mips/boot/dts/bcm3384_viper.dtsi
create mode 100644 arch/mips/boot/dts/bcm3384_zephyr.dtsi
create mode 100644 arch/mips/boot/dts/bcm6328.dtsi
create mode 100644 arch/mips/boot/dts/bcm6368.dtsi
create mode 100644 arch/mips/boot/dts/bcm7125.dtsi
create mode 100644 arch/mips/boot/dts/bcm7346.dtsi
create mode 100644 arch/mips/boot/dts/bcm7360.dtsi
create mode 100644 arch/mips/boot/dts/bcm7420.dtsi
create mode 100644 arch/mips/boot/dts/bcm7425.dtsi
create mode 100644 arch/mips/boot/dts/bcm93384wvg.dts
create mode 100644 arch/mips/boot/dts/bcm93384wvg_viper.dts
create mode 100644 arch/mips/boot/dts/bcm96368mvwg.dts
create mode 100644 arch/mips/boot/dts/bcm97125cbmb.dts
create mode 100644 arch/mips/boot/dts/bcm97346dbsmb.dts
create mode 100644 arch/mips/boot/dts/bcm97360svmb.dts
create mode 100644 arch/mips/boot/dts/bcm97420c.dts
create mode 100644 arch/mips/boot/dts/bcm97425svmb.dts
create mode 100644 arch/mips/boot/dts/bcm9ejtagprb.dts
create mode 100644 arch/mips/configs/bmips_be_defconfig
create mode 100644 arch/mips/configs/bmips_stb_defconfig
create mode 100644 arch/mips/include/asm/mach-bmips/dma-coherence.h
create mode 100644 arch/mips/include/asm/mach-bmips/spaces.h
create mode 100644 arch/mips/include/asm/mach-bmips/war.h
create mode 100644 drivers/irqchip/irq-bcm7038-l1.c
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/