tree 35ee0c168eaf10d1bb9a5eb9e85f1d8092583894
parent 65d12f02898553dc8f5e69d31f950ed5a5efe23c
author Stewart Smith <stewart@linux.ibm.com> 1559603413 +1000
committer Stewart Smith <stewart@linux.ibm.com> 1559603413 +1000

Bump skiboot to v6.3-190-g9cae036fafea

Alexey Kardashevskiy (4):
      npu2: Reset PID wildcard and refcounter when mapped to LPID
      npu2: Reset NVLinks when resetting a GPU
      npu2: Fix clearing the FIR bits
      npu2: Clear fence state for a brick being reset

Alistair Popple (1):
      lpc-port80h: Don't write port 80h when running under Simics

Artem Senichev (1):
      platforms/vesnin: PCI inventory via IPMI OEM

Claudio Carvalho (1):
      trustedboot: Change PCR and event_type for the skiboot events

Oliver O'Halloran (6):
      hw/phb4: Assert Link Disable bit after ETU init
      hw/phb4: Use read/write_reg in assert_perst
      hw/phb4: Add missing LTSSM states
      hw/phb4: Set trace enable where it's used
      hw/phb4: Make phb4_training_trace() more general
      opal-api: Document hole in the token list

Stewart Smith (110):
      doc: flesh out OPAL return codes documentation
      doc/opal-spec: update email address
      doc/overview: flesh out overview
      doc: Giant OPAL API table
      doc: Make OPAL_CONSOLE_* docs pretty
      doc: Make OPAL_RTC_READ docs pretty
      doc: make OPAL_RTC_WRITE docs pretty
      doc: prettify OPAL_REINIT_CPUS
      doc: prettify FSP Code update docs
      doc: prettify and expand OPAL_HANDLE_HMI2 docs
      doc: prettify OPAL powercap docs
      doc: prettify opal IMC counters calls
      doc: prettify OPAL_SENSOR_GROUP_ENABLE and OPAL_SENSOR_GROUP_CLEAR
      doc: prettify OPAL_QUIESCE
      doc: prettify OPAL_PCI_SET_P2P
      doc: prettify OPAL_[GET|SET]_PBCQ_TUNNEL_BAR
      doc: prettify and RSTify OPAL_NMMU_SET_PTCR
      doc: prettify OPAL_PCI_TCE_KILL
      doc: prettify OPAL_INT_* calls
      doc: prettify OPAL_PCI_[GET|SET]_POWER_STATE
      doc: prettify OPAL_GET_DEVICE_TREE
      doc: prettify OPAL_PCI_GET_PRESENCE_STATE
      doc: prettify OPAL_PRD_MSG
      doc: prettify OPAL_IPMI_(SEND|RECV)
      doc: prettify OPAL_SLW_SET_REG
      doc: prettify OPAL_CHECK_TOKEN
      doc: prettify OPAL_PCI_SET_PHB_CAPI_MODE
      doc: make OPAL_TEST docs pretty
      doc: Add anchors to 5.1.13 and 5.3.0 release notes
      doc: combine OPAL_RTC_READ and OPAL_RTC_WRITE pages
      doc: Make OPAL_CEC_POWER_DOWN docs pretty
      doc: Add example to OPAL_CEC_POWER_DOWN
      doc: flesh out OPAL_CEC_REBOOT docs
      doc: Flesh out NVRAM docs
      doc: Fix up OPAL_HANDLE_INTERRUPT links
      doc: Add details on removed calls
      Remove remnants of OPAL_PCI_SET_PHB_TCE_MEMORY
      Remove last remnants of OPAL_PCI_SET_PHB_TCE_MEMORY and OPAL_PCI_SET_HUB_TCE_MEMORY
      doc: Add PCI Config Space OPAL call docs
      doc: Make OPAL_ELOG_* pretty, mark OPAL_ELOG_WRITE unimplemented
      Document the long removed OPAL_REGISTER_OPAL_EXCEPTION_HANDLER call
      doc: fix OPAL_CONSOLE_* links
      doc: OPAL_START_CPU and OPAL_RETURN_CPU
      doc: Add links to XIVE calls
      doc: Combine and extend OPAL_SENSOR_READ[_U64] docs
      doc: Clean up OPAL power shift ratio docs
      doc: combine OPAL_SENSOR_GROUP_ENABLE and OPAL_SENSOR_GROUP_CLEAR
      doc: Extend OPAL_LEDS_[GET|SET]_INDICATOR
      doc: prettify and flesh out OPAL_FLASH_* call documentation
      doc: Add OPAL_I2C_REQUEST documentation
      doc: Flesh out OPAL_(READ|WRITE)_TPO and OPAL_GET_DPO_STATUS docs
      doc: Flesh out OPAL_(UN)REGISTER_DUMP_REGION docs
      doc: prettify and flesh out OPAL_XSCOM_READ and OPAL_XSCOM_WRITE
      doc: flesh out and prettify OPAL_LPC_(READ|WRITE)
      doc: misc formatting fixes
      doc: Document OPAL_DUMP_* calls
      Add missing 5.4.9 release notes
      skiboot 6.0.3 release notes
      skiboot v6.0.12 release notes
      skiboot 6.0.9 release notes
      doc: Add missing skiboot 5.9.8 release notes
      doc: Add missing skiboot-4.0 release notes
      doc: Add missing skiboot-5.0 release notes
      doc: Add missing skiboot-4.1 release notes
      doc: Add missing skiboot-4.1.1 release notes
      doc: Add skeleton OPAL_PCI_EEH_FREEZE_STATUS docs
      doc: OPAL_PCI_SHPC was never implemented
      doc: Add skeleton OPAL_PCI_EEH_FREEZE_CLEAR docs
      Remove unused OPAL_PCI_EEH_FREEZE_STATUS2
      doc: prettify OPAL_PCI_PHB_MMIO_ENABLE
      doc: prettify OPAL_PCI_SET_PHB_MEM_WINDOW
      doc: prettify OPAL_PCI_MAP_PE_MMIO_WINDOW
      Remove never implemented OPAL_PCI_SET_PHB_TABLE_MEMORY and document why
      doc: prettify OPAL_PCI_SET_PE
      doc: prettify OPAL_PCI_SET_PELTV
      doc: prettify OPAL_PCI_SET_MVE
      doc: prettify OPAL_PCI_SET_MVE_ENABLE
      Remove unused OPAL_PCI_GET_XIVE_REISSUE and OPAL_PCI_SET_XIVE_REISSUE
      doc: prettify OPAL_PCI_SET_XIVE_PE
      Remove unused OPAL_GET_XIVE_SOURCE
      doc: prettify OPAL_GET_MSI_[32|64]
      doc: Document OPAL_QUERY_CPU_STATUS
      doc: prettify OPAL_PCI_MAP_PE_DMA_WINDOW[_REAL]
      doc: Add skeleton OPAL_PCI_RESET docs
      doc: Skeleton OPAL_PCI_GET_HUB_DIAG_DATA docs
      doc: Flesh out OPAL_PCI_GET_PHB_DIAG_DATA2 docs
      Remove remnants of OPAL_PCI_GET_PHB_DIAG_DATA
      doc: OPAL_PCI_FENCE_PHB was never implemented
      doc: Add skeleton for OPAL_PCI_REINIT
      doc: OPAL_PCI_MASK_PE_ERROR was never implemented
      doc: Mark OPAL_SET_SLOT_LED_STATUS as never implemented
      doc: Add OPAL_GET_EPOW_STATUS docs
      doc: OPAL_SET_SYSTEM_ATTENTION_LED was never implemented
      doc: OPAL_RESERVED[12], reserved but never used
      doc: Add skeleton for OPAL_PCI_NEXT_ERROR
      doc: Skeleton OPAL_PCI_POLL docs
      doc: Add OPAL_PCI_MSI_EOI skeleton docs
      doc: Add OPAL_ELOG_WRITE to a list of future calls
      doc: Add skeleton OPAL_RESYNC_TIMEBASE docs
      doc: prettify OPAL_GET_MSG
      doc: prettify OPAL_CHECK_ASYNC_COMPLETION
      doc: prettify OPAL_SYNC_HOST_REBOOT
      doc: Document OPAL_GET_PARAM and OPAL_SET_PARAM
      doc: Document OPAL_ELOG_SEND as not ever used
      doc: Document OPAL_WRITE_OPPANEL_ASYNC
      doc: Skeleton OPAL_PCI_ERR_INJECT docs
      doc: skeleton OPAL_PCI_EEH_FREEZE_SET docs
      doc: Document OPAL_CONFIG_CPU_IDLE_STATE
      doc: prettify OPAL_GET_XIVE and OPAL_SET_XIVE
      doc: fixup misc broken links

Vasant Hegde (10):
      core/opal: Increase opal-msg-size size
      opal-msg: Pass return value to callback handler
      opal-msg: Pass parameter size to _opal_queue_msg()
      opal-msg: Enhance opal-get-msg API
      core/test/run-msg: Add callback function test
      hostservices: Do not call hservices_init on ZZ
      prd: Validate _opal_queue_msg() return value
      prd: Implement generic HBRT - FSP interface
      prd: Implement generic FSP - HBRT interface
      opal-prd: Fix prd message size issue

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