[Arm-dev] [PATCH v1 00/87] Cavium ThunderX support

Thu Aug 13 13:17:57 UTC 2015
Vadim Lomovtsev <Vadim.Lomovtsev at caviumnetworks.com>

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