[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20160830172929.16948-1-paul.burton@imgtec.com>
Date: Tue, 30 Aug 2016 18:29:03 +0100
From: Paul Burton <paul.burton@...tec.com>
To: <linux-mips@...ux-mips.org>, Ralf Baechle <ralf@...ux-mips.org>
CC: Paul Burton <paul.burton@...tec.com>,
Paolo Bonzini <pbonzini@...hat.com>,
Guenter Roeck <linux@...ck-us.net>,
John Crispin <john@...ozen.org>,
"Maciej W. Rozycki" <macro@...tec.com>,
Bjorn Helgaas <bhelgaas@...gle.com>,
Jacek Anaszewski <j.anaszewski@...sung.com>,
Jason Cooper <jason@...edaemon.net>,
Robin Murphy <robin.murphy@....com>,
Hans-Christian Noren Egtvedt <egtvedt@...fundet.no>,
James Hogan <james.hogan@...tec.com>,
John Crispin <blogic@...nwrt.org>,
Sergey Ryazanov <ryazanov.s.a@...il.com>,
Michael Turquette <mturquette@...libre.com>,
Qais Yousef <qsyousef@...il.com>,
Valentin Rothberg <valentinrothberg@...il.com>,
Huacai Chen <chenhc@...ote.com>,
Kefeng Wang <wangkefeng.wang@...wei.com>,
Thomas Gleixner <tglx@...utronix.de>,
<linux-clk@...r.kernel.org>,
Krzysztof Kozlowski <k.kozlowski@...sung.com>,
Florian Fainelli <f.fainelli@...il.com>,
Will Deacon <will.deacon@....com>,
Alex Smith <alex.smith@...tec.com>,
Andrew Morton <akpm@...ux-foundation.org>,
Max Filippov <jcmvbkbc@...il.com>,
<devicetree@...r.kernel.org>, Qais Yousef <qais.yousef@...tec.com>,
Stephen Boyd <sboyd@...eaurora.org>,
Markos Chandras <markos.chandras@...tec.com>,
Marc Zyngier <marc.zyngier@....com>,
Matt Redfearn <matt.redfearn@...tec.com>,
Masahiro Yamada <yamada.masahiro@...ionext.com>,
Lorenzo Pieralisi <lorenzo.pieralisi@....com>,
Kees Cook <keescook@...omium.org>,
<linux-kernel@...r.kernel.org>, Rob Herring <robh+dt@...nel.org>,
Yinghai Lu <yinghai@...nel.org>,
Mark Rutland <mark.rutland@....com>,
Anna-Maria Gleixner <anna-maria@...utronix.de>
Subject: [PATCH v2 00/26] MIPS generic kernels, SEAD-3 & Boston support
This series introduces some infrastructure for building generic kernels
which will run on multiple boards depending upon the device tree
provided to them by the bootloader. It converts SEAD-3 to make use of
this, and adds support for the MIPS Boston development platform.
The Boston support can be tested in QEMU with this patchset applied:
https://lists.gnu.org/archive/html/qemu-devel/2016-08/msg03419.html
To do so, configure the kernel for the generic 64r6el_defconfig & run
QEMU like so:
$ make ARCH=mips 64r6el_defconfig
$ make ARCH=mips CROSS_COMPILE=my-toolchain-
$ qemu-system-mips64el -M boston \
-kernel arch/mips/boot/vmlinux.gz.itb \
serial stdio
The same kernel binary will also boot on a SEAD-3 if using a bootloader
capable of loading the FIT image format (ie. U-Boot). These 2 boards
form the starting point for the generic kernels, with Ci20 & Ci40 able
to be added easily. Malta will require further work, but I've got most
peripherals converted to probe using device tree as a starting point &
will submit that separately.
This series applies atop v4.8-rc3 with my "MIPS: SEAD3 device tree
conversion" series applied first.
Paul Burton (26):
MIPS: PCI: Support for CONFIG_PCI_DOMAINS_GENERIC
MIPS: PCI: Make pcibios_set_cache_line_size an initcall
MIPS: PCI: Inline pcibios_assign_all_busses
MIPS: PCI: Split pci.c into pci.c & pci-legacy.c
MIPS: PCI: Introduce CONFIG_PCI_DRIVERS_LEGACY
MIPS: PCI: Support generic drivers
MIPS: Sanitise coherentio semantics
MIPS: dma-default: Don't check hw_coherentio if device is non-coherent
MIPS: Support per-device DMA coherence
MIPS: Print CM error reports upon bus errors
dt-bindings: Document mti,mips-cpc binding
MIPS: CPC: Provide a default mips_cpc_default_phys_base
dt-bindings: Document mti,mips-cdmm binding
MIPS: CDMM: Allow CDMM base address to be specified via DT
irqchip: mips-cpu: Replace magic 0x100 with IE_SW0
irqchip: mips-cpu: Prepare for non-legacy IRQ domains
irqchip: mips-cpu: Introduce IPI IRQ domain support
MIPS: smp-mt: Use CPU interrupt controller IPI IRQ domain support
MIPS: Stengthen IPI IRQ domain sanity check
MIPS: Adjust MIPS64 CAC_BASE to reflect Config.K0
MIPS: Support generating Flattened Image Trees (.itb)
MIPS: generic: Introduce generic DT-based board support
MIPS: generic: Convert SEAD-3 to a generic board
dt-bindings: Document img,boston-clock binding
clk: boston: Add a driver for MIPS Boston board clocks
MIPS: generic: Support MIPS Boston development boards
.../devicetree/bindings/clock/img,boston-clock.txt | 27 ++
.../devicetree/bindings/misc/mti,mips-cdmm.txt | 8 +
.../devicetree/bindings/misc/mti,mips-cpc.txt | 8 +
arch/mips/Kbuild.platforms | 2 +-
arch/mips/Kconfig | 105 ++++---
arch/mips/Makefile | 77 +++++-
arch/mips/alchemy/common/setup.c | 6 +-
arch/mips/boot/Makefile | 66 +++++
arch/mips/boot/dts/Makefile | 1 +
arch/mips/boot/dts/img/Makefile | 7 +
arch/mips/boot/dts/img/boston.dts | 230 ++++++++++++++++
arch/mips/boot/dts/mti/Makefile | 2 +-
arch/mips/boot/dts/mti/sead3.dts | 1 +
arch/mips/configs/generic/32r1.config | 2 +
arch/mips/configs/generic/32r2.config | 3 +
arch/mips/configs/generic/32r6.config | 2 +
arch/mips/configs/generic/64r1.config | 4 +
arch/mips/configs/generic/64r2.config | 5 +
arch/mips/configs/generic/64r6.config | 4 +
arch/mips/configs/generic/board-boston.config | 46 ++++
arch/mips/configs/generic/board-sead-3.config | 32 +++
arch/mips/configs/generic/eb.config | 1 +
arch/mips/configs/generic/el.config | 1 +
arch/mips/configs/generic/micro32r2.config | 4 +
arch/mips/configs/generic_defconfig | 96 +++++++
arch/mips/configs/sead3_defconfig | 129 ---------
arch/mips/configs/sead3micro_defconfig | 122 ---------
arch/mips/generic/Kconfig | 27 ++
arch/mips/generic/Makefile | 15 +
arch/mips/generic/Platform | 14 +
.../sead3-dtshim.c => generic/board-sead3.c} | 106 +++++++-
arch/mips/generic/init.c | 172 ++++++++++++
arch/mips/generic/irq.c | 64 +++++
arch/mips/generic/proc.c | 29 ++
arch/mips/generic/vmlinux.its.S | 56 ++++
arch/mips/include/asm/addrspace.h | 3 +-
arch/mips/include/asm/device.h | 5 +
arch/mips/include/asm/dma-coherence.h | 16 +-
arch/mips/include/asm/dma-mapping.h | 10 +
arch/mips/include/asm/mach-generic/dma-coherence.h | 14 +-
arch/mips/include/asm/mach-generic/spaces.h | 8 +-
arch/mips/include/asm/mach-ip27/spaces.h | 1 +
.../include/asm/mach-sead3/cpu-feature-overrides.h | 72 -----
arch/mips/include/asm/mach-sead3/irq.h | 9 -
.../include/asm/mach-sead3/kernel-entry-init.h | 21 --
arch/mips/include/asm/mach-sead3/sead3-dtshim.h | 29 --
arch/mips/include/asm/mach-sead3/war.h | 24 --
arch/mips/include/asm/machine.h | 63 +++++
arch/mips/include/asm/pci.h | 57 +++-
arch/mips/kernel/mips-cpc.c | 18 ++
arch/mips/kernel/smp-mt.c | 49 +---
arch/mips/kernel/smp.c | 20 +-
arch/mips/kernel/traps.c | 3 +
arch/mips/lantiq/irq.c | 52 ----
arch/mips/lib/iomap-pci.c | 4 +
arch/mips/mm/c-r4k.c | 7 +-
arch/mips/mm/dma-default.c | 16 +-
arch/mips/mti-malta/malta-int.c | 90 +-----
arch/mips/mti-malta/malta-setup.c | 10 +-
arch/mips/mti-sead3/Makefile | 15 -
arch/mips/mti-sead3/Platform | 7 -
arch/mips/mti-sead3/sead3-init.c | 100 -------
arch/mips/mti-sead3/sead3-int.c | 23 --
arch/mips/mti-sead3/sead3-setup.c | 39 ---
arch/mips/mti-sead3/sead3-time.c | 91 -------
arch/mips/pci/Makefile | 2 +
arch/mips/pci/pci-alchemy.c | 3 +-
arch/mips/pci/pci-generic.c | 52 ++++
arch/mips/pci/pci-legacy.c | 302 +++++++++++++++++++++
arch/mips/pci/pci.c | 296 +-------------------
drivers/bus/mips_cdmm.c | 13 +
drivers/clk/Kconfig | 1 +
drivers/clk/Makefile | 1 +
drivers/clk/imgtec/Kconfig | 10 +
drivers/clk/imgtec/Makefile | 1 +
drivers/clk/imgtec/clk-boston.c | 101 +++++++
drivers/irqchip/Kconfig | 2 +
drivers/irqchip/irq-mips-cpu.c | 149 ++++++++--
include/dt-bindings/clock/boston-clock.h | 14 +
79 files changed, 2018 insertions(+), 1279 deletions(-)
create mode 100644 Documentation/devicetree/bindings/clock/img,boston-clock.txt
create mode 100644 Documentation/devicetree/bindings/misc/mti,mips-cdmm.txt
create mode 100644 Documentation/devicetree/bindings/misc/mti,mips-cpc.txt
create mode 100644 arch/mips/boot/dts/img/Makefile
create mode 100644 arch/mips/boot/dts/img/boston.dts
create mode 100644 arch/mips/configs/generic/32r1.config
create mode 100644 arch/mips/configs/generic/32r2.config
create mode 100644 arch/mips/configs/generic/32r6.config
create mode 100644 arch/mips/configs/generic/64r1.config
create mode 100644 arch/mips/configs/generic/64r2.config
create mode 100644 arch/mips/configs/generic/64r6.config
create mode 100644 arch/mips/configs/generic/board-boston.config
create mode 100644 arch/mips/configs/generic/board-sead-3.config
create mode 100644 arch/mips/configs/generic/eb.config
create mode 100644 arch/mips/configs/generic/el.config
create mode 100644 arch/mips/configs/generic/micro32r2.config
create mode 100644 arch/mips/configs/generic_defconfig
delete mode 100644 arch/mips/configs/sead3_defconfig
delete mode 100644 arch/mips/configs/sead3micro_defconfig
create mode 100644 arch/mips/generic/Kconfig
create mode 100644 arch/mips/generic/Makefile
create mode 100644 arch/mips/generic/Platform
rename arch/mips/{mti-sead3/sead3-dtshim.c => generic/board-sead3.c} (72%)
create mode 100644 arch/mips/generic/init.c
create mode 100644 arch/mips/generic/irq.c
create mode 100644 arch/mips/generic/proc.c
create mode 100644 arch/mips/generic/vmlinux.its.S
delete mode 100644 arch/mips/include/asm/mach-sead3/cpu-feature-overrides.h
delete mode 100644 arch/mips/include/asm/mach-sead3/irq.h
delete mode 100644 arch/mips/include/asm/mach-sead3/kernel-entry-init.h
delete mode 100644 arch/mips/include/asm/mach-sead3/sead3-dtshim.h
delete mode 100644 arch/mips/include/asm/mach-sead3/war.h
create mode 100644 arch/mips/include/asm/machine.h
delete mode 100644 arch/mips/mti-sead3/Makefile
delete mode 100644 arch/mips/mti-sead3/Platform
delete mode 100644 arch/mips/mti-sead3/sead3-init.c
delete mode 100644 arch/mips/mti-sead3/sead3-int.c
delete mode 100644 arch/mips/mti-sead3/sead3-setup.c
delete mode 100644 arch/mips/mti-sead3/sead3-time.c
create mode 100644 arch/mips/pci/pci-generic.c
create mode 100644 arch/mips/pci/pci-legacy.c
create mode 100644 drivers/clk/imgtec/Kconfig
create mode 100644 drivers/clk/imgtec/Makefile
create mode 100644 drivers/clk/imgtec/clk-boston.c
create mode 100644 include/dt-bindings/clock/boston-clock.h
--
2.9.3
Powered by blists - more mailing lists