tree fd17c34f576e9aae5176fd349202d61d639ba496
parent d289200dd99f2a1d088a21f6bf3456bbd111fc0a
author Stewart Smith <stewart@linux.ibm.com> 1536830090 +1000
committer Stewart Smith <stewart@linux.ibm.com> 1536830090 +1000

skiboot v6.1-85-gf83568436527

Alistair Popple (2):
      Move pb_cen_hp_mode_curr register definition to xscom-p9-reg.h
      phb4: Disable nodal scoped DMA accesses when PB pump mode is enabled

Andrew Donnellan (2):
      hw/phb4: Fix unused value/parameter warnings
      hw/npu2: Don't assert if we hit a mixed OpenCAPI/NVLink setup

Andrew Jeffery (7):
      ast-bmc: Move copy routines to ast-sf-ctrl
      core/pci-quirk: Remove broken comment in quirk_astbmc_vga()
      core/pci-quirk: Clean up commented code in quirk_astbmc_vga()
      ast-bmc: Rename LPC FW cycle helpers
      ast-io: Rework setup/tear-down of communication with the BMC
      lpc: Silence LPC SYNC no-response error when necessary
      ast-io: Use bmc_sio_{get, put}() where required

Benjamin Herrenschmidt (10):
      xive: Disable block tracker
      i2c: Fix multiple-enqueue of the same request on NACK
      i2c: Ensure ordering between i2c_request_send() and completion
      lock: Increase con_suspend before __try_lock
      lock: Move code around
      lock: Fix interactions between lock dependency checker and stack checker
      cpu: Better output when waiting for a very long job
      phb4: Don't try to access non-existent PEST entries
      phb4: Handle allocation errors in phb4_eeh_dump_regs()
      phb4: Workaround PHB errata with CFG write UR/CA errors

Cyril Bur (1):
      phb4: Use the return value of phb4_fenced() in phb4_get_diag_data()

Frederic Barrat (3):
      npu2-opencapi: Don't send commands to NPU when link is down
      opal/hmi: Catch NPU2 HMIs for opencapi
      phb4: Disable 32-bit MSI in capi mode

Jeremy Kerr (1):
      docs/platforms: Add S812L and S822L

Joel Stanley (2):
      Makefile: Remove -mno-direct-move cflag
      Makefile: remove try-cflags on no-altivec and no-vsx

Michael Ellerman (1):
      doc: Add documentation on supported platforms and CPUs

Nicholas Piggin (3):
      cpu: add cpu_queue_job_on_node()
      external/mambo: conditionally source qtrace script
      hw/chiptod: test QUIRK_NO_CHIPTOD in opal_resync_timebase

Oliver O'Halloran (13):
      hw/phb4: Print the PEs in the EEH dump in hex
      hw/phb4: Add a helper to dump the PELT-V
      hw/phb4: Add helpers to dump the IODA tables
      hw/phb4: Use local_alloc for phb4 structures
      mem_region: Merge similar allocations when dumping
      hw/p8-i2c: Print the set error bits
      pci: Clarify power down logic
      core/pci: Print 'PCI Summary' at PR_NOTICE
      zaius: Add a slot table
      astbmc/slots: Add SW_PLUGGABLE() macro
      astbmc/slot: Add _add_slot_info()
      zaius: Add slots for the Barreleye G2 HDD rack
      hdata/iohub: Fix Cumulus Hub ID number

Prem Shanker Jha (1):
      STOP API: API conditionally supports 255 SCOM restore entries for each quad.

Reza Arbab (8):
      npu2/hw-procedures: Don't open code NPU2_NTL_MISC_CFG2_BRICK_ENABLE
      npu2/hw-procedures: Enable parity and credit overflow checks
      pci: Move logging macros to pci.h
      phb4: Track PEC index in dt and phb4 struct
      npu2: Add NPU2_SM_REG_OFFSET()
      npu2: Don't open code NPU2_RELAXED_ORDERING_CFG2
      npu2: Add support for relaxed-ordering mode
      doc/opal-api: Document npu2 relaxed ordering APIs

Samuel Mendoza-Jonas (2):
      Recognise signed VERSION partition
      core/flash: Emit a warning if Skiboot version doesn't match

Stewart Smith (16):
      fast-reboot: parallel memory clearing
      Scan PCI and clear memory simultaneously
      mem_region: log region name on mem_alloc failure
      mem_check(): Correct alignment assumptions
      Fixup unit tests for cpu_queue_job() in mem_region.c
      Fixup pflash build for ast refactor
      skiboot 6.0.6 release notes
      core/cpu.c: assert pir is sane before using
      skiboot 6.0.7 release notes
      don't fail fatally if qtrace can't be loaded
      skiboot 6.0.8 release notes
      Qemu: don't print PR_WARNING on qemu defining rtc/uart
      Use $() rather than backticks in all shell
      clang: -Wno-error=ignored-attributes
      xscom-utils/adu_scoms.py: run 2to3 over it
      TEMPORARY HACK: Disable verifying VERSION

Vaibhav Jain (5):
      phb4: Reallocate PEC2 DMA-Read engines to improve GPU-Direct bandwidth
      doc: Add a man page for OPAL_PCI_SET_PHB_CAPI_MODE
      phb4/capp: Update DMA read engines set in APC_FSM_READ_MASK based on link-width
      capp: Fix the capp recovery timeout comparison
      phb4: Don't probe a PHB if its garded

Vaidyanathan Srinivasan (1):
      core/cpu: Fix memory allocation for job array

Vasant Hegde (7):
      opal-prd: Fix opal-prd crash
      core/cpu: Call memset with proper cpu_thread offset
      hdata: Fix dtc warnings
      hdata: Make sure FW feature name is not empty
      fsp/surv: Improve log message
      hdata: Cleanup get_hb_reserved_mem
      hdata: Make sure reserved node name starts with "ibm, "

Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
