tree 4da55957f55e9a1370b18e594f2cdeb2088dcb08
parent 9480007ff988740595e2f1943450976135cdf221
author Stewart Smith <stewart@linux.ibm.com> 1523341388 +1000
committer Stewart Smith <stewart@linux.ibm.com> 1523416706 -0500

skiboot v5.11-30-gcb16e55a234b

Benjamin Herrenschmidt (2):
      pcie-slot: Don't fail powering on an already on switch
      phb4: Quieten and improve "Timeout waiting for electrical link"

Cyril Bur (20):
      external/ffspart: Allow # comments in input file
      libffs: Standardise ffs partition flags
      external/pflash: Use ffs_entry_user_to_string() to standardise flag strings
      libflash/libffs: Add setter for a partitions actual size
      libflash/libffs: ffs_close() should use ffs_hdr_free()
      external/ffspart: Remove side, order and backup options
      libflash/libffs: Always add entries to the end of the TOC
      libflash/libffs: Remove the 'sides' from the FFS TOC generation code
      libflash/libffs: Remove backup partition from TOC generation code
      libflash/libffs: Switch to storing header entries in an array
      libflash/libffs: Refcount ffs entries
      libflash/libffs: Allow caller to specifiy header partition
      external/ffspart: Use new interface
      libffs: Fix bad checks for partition overlap
      external/ffspart: Improve error output
      gitignore: Add stb test kernel files
      libflash/ecc: Add functions to deal with unaligned ECC memcpy
      libflash/ecc: Add helpers to align a position within an ecc buffer
      libflash/blocklevel: Return region start from ecc_protected()
      libflash/blocklevel: Make read/write be ECC agnostic for callers

Madhavan Srinivasan (2):
      hw/imc: Check for pause_microcode_at_boot() return status
      hw/imc: Add support to load imc catalog lid file

Oliver O'Halloran (1):
      core/pci: Document some stuff

Philippe Bergheaud (2):
      phb4: set TVT1 for tunneled operations in capi mode
      phb4: Do not set the PBCQ Tunnel BAR register when enabling capi mode.

Reza Arbab (1):
      npu2: Move NPU2_XTS_BDF_MAP_VALID assignment to context init

Stewart Smith (1):
      hdat/i2c.c: quieten "v2 found, parsing as v1"

Vasant Hegde (1):
      opal-prd: Insert powernv_flash module

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