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

Jim Perrin jperrin at centos.org
Thu Aug 13 20:00:40 UTC 2015


It's taken a bit of time, but we now have the 4.2rc2 kernel available in
git. If you could use this git repo as the base for these patches it
would make things immensely easier.

https://git.centos.org/summary/sig-altarch!kernel.git

The basics for how to work with the kernel source repository are here ->
http://wiki.centos.org/Sources




On 08/13/2015 08:17 AM, Vadim Lomovtsev wrote:
> 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
> 

-- 
Jim Perrin
The CentOS Project | http://www.centos.org
twitter: @BitIntegrity | GPG Key: FA09AD77


More information about the Arm-dev mailing list