This patch set implements Cavium ThunderX SoC support.
Patch set rebased on to 4.2-rc5 and overrides patch set v0 so please drop them
before applying this one.
In case of any issues at build or run-time, please let me know.
Al Stone (2):
Fix arm64 compilation error in PNP code
clocksource: arm_arch_timer: fix system hang
Andre Przywara (14):
KVM: arm/arm64: VGIC: don't track used LRs in the distributor
KVM: arm/arm64: add emulation model specific destroy function
KVM: arm/arm64: extend arch CAP checks to allow per-VM capabilities
KVM: arm/arm64: make GIC frame address initialization model specific
KVM: arm64: Introduce new MMIO region for the ITS base address
KVM: arm64: handle ITS related GICv3 redistributor registers
KVM: arm64: introduce ITS emulation file with stub functions
KVM: arm64: implement basic ITS register handlers
KVM: arm64: add data structures to model ITS interrupt translation
KVM: arm64: handle pending bit for LPIs in ITS emulation
KVM: arm64: sync LPI configuration and pending tables
KVM: arm64: implement ITS command queue command handlers
KVM: arm64: implement MSI injection in ITS emulation
KVM: arm64: enable ITS emulation as a virtual MSI controller
Andrew Pinski (5):
ARM64:VDSO: Improve gettimeofday, don't use udiv
ARM64:VDSO: Improve __do_get_tspec, don't use udiv
ARM64:Improve ticked spinlocks for high core count.
ARM64:spinlocks: Fix up for WFE and improve performance slightly.
ARM64: Improve copy_page for 128 cache line sizes.
Craig Magina (1):
arm64: optimized copy_to_user and copy_from_user assembly code, part 2
David Daney (5):
pci: Add is_pcierc element to struct pci_bus
gic-its: Allow pci_requester_id to be overridden.
arm64, pci: Allow RC drivers to supply pcibios_add_device()
implementation.
irqchip: gic-v3: Add gic_get_irq_domain() to get the irqdomain of the
GIC.
net/mlx4: Remove improper usage of dma_alloc_coherent().
Eric Auger (7):
KVM: api: introduce KVM_IRQ_ROUTING_EXTENDED_MSI
KVM: kvm_host: add devid in kvm_kernel_irq_routing_entry
KVM: irqchip: convey devid to kvm_set_msi
KVM: arm/arm64: enable irqchip routing
KVM: arm/arm64: build a default routing table
KVM: arm/arm64: enable MSI routing
KVM: arm: implement kvm_set_msi by gsi direct mapping
Feng Kan (1):
arm64: optimized copy_to_user and copy_from_user assembly code
Graeme Gregory (3):
Juno / net: smsc911x add support for probing from ACPI
net: smc91x: add ACPI probing support.
virtio-mmio: add ACPI probing
Naresh Bhat (1):
mfd: vexpress-sysreg Add ACPI support for probing to driver
Narinder (1):
Fixes to get ACPI based kernel booting. Temporary fix to get going.
Radha Mohan Chintakuntla (4):
net: mdio-octeon: Modify driver to work on both ThunderX and Octeon
net: mdio-octeon: Fix octeon_mdiobus_probe function for return values
net: thunderx: Select CONFIG_MDIO_OCTEON for ThunderX NIC
arm64: gicv3: its: Increase FORCE_MAX_ZONEORDER for Cavium ThunderX
Robert Richter (12):
Revert "acpi, thuderx, pci: Add MCFG fixup."
net: thunderx: Fixes for nicvf_set_rxfh()
net: cavium: thunder_bgx/nic: Factor out DT specific code
irqchip, gicv3-its: Read typer register outside the loop
irqchip, gicv3: Add HW revision detection and configuration
irqchip, gicv3: Implement Cavium ThunderX erratum 23154
irqchip, gicv3-its: Implement Cavium ThunderX errata 22375, 24313
arm64: gicv3: its: Add range check for number of allocated pages
Revert "mfd: vexpress: Remove non-DT code"
net: thunderx: acpi: Get mac address from acpi table
acpi, property: Fix EXPORT_SYMBOL_GPL() for
acpi_dev_prop_read_single()
arm64: topology: Use acpi_disabled for ACPI check
Sunil Goutham (2):
net: thunderx: Receive hashing HW offload support
net: thunderx: Add receive error stats reporting via ethtool
TIRUMALESH CHALAMARLA (1):
arm64: Increase the max granular size
Tirumalesh Chalamarla (3):
PCI_ Add host drivers for Cavium ThunderX processors
arm64: KVM: Enable minimalistic support for Thunder
KVM: extend struct kvm_msi to hold a 32-bit device ID
Tomasz Nowicki (24):
arm64, acpi: Implement new "GIC version" field of MADT GIC entry.
ACPI, GICv3: Allow to map irq for non-hierarchical doamin.
GICv3: Refactor gic_of_init() of GICv3 driver to allow for FDT and
ACPI initialization.
ACPI, GICV3+: Add support for GICv3+ initialization.
GICv3, ITS: Isolate FDT related code, extract common functions.
ACPI, GICv3, ITS: Add support for ACPI ITS binding.
x86, acpi, pci: Reorder logic of pci_mmconfig_insert() function
x86, acpi, pci: Move arch-agnostic MMCFG code out of arch/x86/
directory
x86, acpi, pci: Move PCI config space accessors.
x86, acpi, pci: mmconfig_{32,64}.c code refactoring - remove code
duplication.
x86, acpi, pci: mmconfig_64.c becomes default implementation for arch
agnostic low-level direct PCI config space accessors via MMCONFIG.
pci, acpi: Share ACPI PCI config space accessors.
arm64, pci, acpi: Let ARM64 to use MMCONFIG PCI config space
accessors.
arm64, pci: Add PCI ACPI probing for ARM64
net, phy, apci: Allow to initialize Marvell phy in the ACPI way.
net, mdio, acpi: Add support for ACPI binding.
net, thunder, bgx: Rework driver to support ACPI binding.
arm64/acpi/pci: provide hook for MCFG fixups
acpi, property: Export acpi_dev_prop_read call to be usable for kernel
modules.
ARM64 / ACPI: Point KVM to the virtual timer interrupt when booting
with ACPI
arm64, acpi, pci: Omit OF related IRQ parsing when running with ACPI
kernel.
pci, acpi, dma: Unify coherency checking logic for PCI devices.
ARM64, ACPI, PCI, MSI: I/O Remapping Table (IORT) initial support.
Compiler bug workaround!!!
Vadim Lomovtsev (1):
PCI: ThunderX: fix build issue
Documentation/virtual/kvm/api.txt | 46 +-
Documentation/virtual/kvm/devices/arm-vgic.txt | 9 +
arch/arm/include/asm/kvm_host.h | 4 +-
arch/arm/kvm/Kconfig | 3 +
arch/arm/kvm/Makefile | 2 +-
arch/arm/kvm/arm.c | 2 +-
arch/arm64/Kconfig | 4 +
arch/arm64/include/asm/acpi.h | 2 +
arch/arm64/include/asm/cache.h | 2 +-
arch/arm64/include/asm/cputype.h | 3 +
arch/arm64/include/asm/kvm_host.h | 3 +-
arch/arm64/include/asm/pci.h | 47 +
arch/arm64/include/asm/spinlock.h | 36 +-
arch/arm64/include/uapi/asm/kvm.h | 5 +-
arch/arm64/kernel/Makefile | 1 +
arch/arm64/kernel/acpi.c | 33 +-
arch/arm64/kernel/pci-acpi.c | 362 +++++++
arch/arm64/kernel/pci.c | 35 +-
arch/arm64/kernel/topology.c | 8 +
arch/arm64/kernel/vdso/gettimeofday.S | 47 +-
arch/arm64/kvm/Kconfig | 3 +
arch/arm64/kvm/Makefile | 3 +-
arch/arm64/kvm/guest.c | 6 +
arch/arm64/kvm/reset.c | 8 +-
arch/arm64/kvm/sys_regs_generic_v8.c | 2 +
arch/arm64/lib/copy_from_user.S | 87 +-
arch/arm64/lib/copy_page.S | 32 +
arch/arm64/lib/copy_template.S | 212 ++++
arch/arm64/lib/copy_to_user.S | 57 +-
arch/x86/include/asm/pci.h | 42 +
arch/x86/include/asm/pci_x86.h | 72 --
arch/x86/pci/Makefile | 5 +-
arch/x86/pci/acpi.c | 1 +
arch/x86/pci/init.c | 1 +
arch/x86/pci/mmconfig-shared.c | 242 +----
arch/x86/pci/mmconfig_32.c | 11 +-
arch/x86/pci/mmconfig_64.c | 153 ---
drivers/acpi/Kconfig | 3 +
drivers/acpi/Makefile | 2 +
drivers/acpi/bus.c | 1 +
drivers/acpi/iort.c | 272 +++++
drivers/acpi/mmconfig.c | 437 ++++++++
drivers/acpi/property.c | 1 +
drivers/clocksource/arm_arch_timer.c | 9 +-
drivers/infiniband/hw/mlx4/cq.c | 2 +-
drivers/infiniband/hw/mlx4/qp.c | 2 +-
drivers/infiniband/hw/mlx4/srq.c | 3 +-
drivers/irqchip/Kconfig | 1 +
drivers/irqchip/irq-gic-common.c | 11 +
drivers/irqchip/irq-gic-common.h | 9 +
drivers/irqchip/irq-gic-v3-its.c | 241 +++--
drivers/irqchip/irq-gic-v3.c | 373 ++++++-
drivers/mfd/vexpress-sysreg.c | 133 ++-
drivers/net/ethernet/cavium/Kconfig | 2 +
drivers/net/ethernet/cavium/thunder/nic.h | 36 +-
.../net/ethernet/cavium/thunder/nicvf_ethtool.c | 50 +-
drivers/net/ethernet/cavium/thunder/nicvf_main.c | 62 +-
drivers/net/ethernet/cavium/thunder/nicvf_queues.c | 86 +-
drivers/net/ethernet/cavium/thunder/nicvf_queues.h | 41 -
drivers/net/ethernet/cavium/thunder/thunder_bgx.c | 175 ++-
drivers/net/ethernet/mellanox/mlx4/alloc.c | 104 +-
drivers/net/ethernet/mellanox/mlx4/en_cq.c | 9 +-
drivers/net/ethernet/mellanox/mlx4/en_netdev.c | 2 +-
drivers/net/ethernet/mellanox/mlx4/en_resources.c | 32 -
drivers/net/ethernet/mellanox/mlx4/en_rx.c | 11 +-
drivers/net/ethernet/mellanox/mlx4/en_tx.c | 14 +-
drivers/net/ethernet/mellanox/mlx4/mlx4_en.h | 2 -
drivers/net/ethernet/mellanox/mlx4/mr.c | 5 +-
drivers/net/ethernet/smsc/smc91x.c | 11 +-
drivers/net/ethernet/smsc/smsc911x.c | 38 +
drivers/net/phy/Kconfig | 9 +-
drivers/net/phy/marvell.c | 118 +-
drivers/net/phy/mdio-octeon.c | 198 +++-
drivers/pci/host/Kconfig | 12 +
drivers/pci/host/Makefile | 2 +
drivers/pci/host/pcie-thunder-pem.c | 462 ++++++++
drivers/pci/host/pcie-thunder.c | 335 ++++++
drivers/pci/pci-acpi.c | 13 +
drivers/pci/pci.c | 98 +-
drivers/pci/probe.c | 4 +-
drivers/pnp/resource.c | 2 +
drivers/tty/n_tty.c | 3 +-
drivers/virtio/virtio_mmio.c | 12 +-
include/acpi/actbl1.h | 12 +-
include/asm-generic/vmlinux.lds.h | 7 +
include/kvm/arm_vgic.h | 39 +-
include/linux/iort.h | 39 +
include/linux/irqchip/arm-gic-acpi.h | 3 +
include/linux/irqchip/arm-gic-v3.h | 22 +-
include/linux/kvm_host.h | 7 +-
include/linux/mlx4/device.h | 11 +-
include/linux/mmconfig.h | 86 ++
include/linux/pci-acpi.h | 2 +
include/linux/pci.h | 11 +-
include/uapi/linux/kvm.h | 11 +-
virt/kvm/arm/arch_timer.c | 76 +-
virt/kvm/arm/its-emul.c | 1141 ++++++++++++++++++++
virt/kvm/arm/its-emul.h | 55 +
virt/kvm/arm/vgic-v2-emul.c | 15 +
virt/kvm/arm/vgic-v2.c | 1 +
virt/kvm/arm/vgic-v3-emul.c | 105 +-
virt/kvm/arm/vgic-v3.c | 1 +
virt/kvm/arm/vgic.c | 375 +++++--
virt/kvm/arm/vgic.h | 5 +
virt/kvm/eventfd.c | 6 +-
virt/kvm/irqchip.c | 12 +-
106 files changed, 5824 insertions(+), 1257 deletions(-)
create mode 100644 arch/arm64/kernel/pci-acpi.c
create mode 100644 arch/arm64/lib/copy_template.S
delete mode 100644 arch/x86/pci/mmconfig_64.c
create mode 100644 drivers/acpi/iort.c
create mode 100644 drivers/acpi/mmconfig.c
create mode 100644 drivers/pci/host/pcie-thunder-pem.c
create mode 100644 drivers/pci/host/pcie-thunder.c
create mode 100644 include/linux/iort.h
create mode 100644 include/linux/mmconfig.h
create mode 100644 virt/kvm/arm/its-emul.c
create mode 100644 virt/kvm/arm/its-emul.h
--
2.4.3