blob: fae3b09c5d9f7be367eccfe6451a7edfa913f9db [file] [log] [blame]
<!DOCTYPE html>
<html lang="en" data-content_root="../">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<title>skiboot-5.5.0-rc2 &#8212; skiboot d365a01
documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=fa44fd50" />
<link rel="stylesheet" type="text/css" href="../_static/classic.css?v=514cf933" />
<script src="../_static/documentation_options.js?v=e1fecbe9"></script>
<script src="../_static/doctools.js?v=888ff710"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="skiboot-5.5.0-rc3" href="skiboot-5.5.0-rc3.html" />
<link rel="prev" title="skiboot-5.5.0-rc1" href="skiboot-5.5.0-rc1.html" />
</head><body>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="skiboot-5.5.0-rc3.html" title="skiboot-5.5.0-rc3"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="skiboot-5.5.0-rc1.html" title="skiboot-5.5.0-rc1"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">skiboot d365a01
documentation</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Release Notes</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">skiboot-5.5.0-rc2</a></li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="skiboot-5-5-0-rc2">
<span id="id1"></span><h1>skiboot-5.5.0-rc2<a class="headerlink" href="#skiboot-5-5-0-rc2" title="Link to this heading"></a></h1>
<p>skiboot-5.5.0-rc2 was released on Monday April 3rd 2017. It is the second
release candidate of skiboot 5.5, which will become the new stable release
of skiboot following the 5.4 release, first released November 11th 2016.</p>
<p>skiboot-5.5.0-rc2 contains all bug fixes as of <a class="reference internal" href="skiboot-5.4.3.html#skiboot-5-4-3"><span class="std std-ref">skiboot-5.4.3</span></a>
and <a class="reference internal" href="skiboot-5.1.19.html#skiboot-5-1-19"><span class="std std-ref">skiboot-5.1.19</span></a> (the currently maintained stable releases).</p>
<p>For how the skiboot stable releases work, see <a class="reference internal" href="../process/stable-skiboot-rules.html#stable-rules"><span class="std std-ref">Skiboot stable tree rules and releases</span></a> for details.</p>
<p>The current plan is to cut the final 5.5.0 by April 8th, with skiboot 5.5.0
being for all POWER8 and POWER9 platforms in op-build v1.16 (Due April 12th).
This is a short cycle as this release is mainly targetted towards POWER9
bringup efforts.</p>
<p>Following skiboot-5.5.0, we will move to a regular six week release cycle,
similar to op-build, but slightly offset to allow for a short stabilisation
period. Expected release dates and contents are tracked using GitHub milestone
and issues: <a class="reference external" href="https://github.com/open-power/skiboot/milestones">https://github.com/open-power/skiboot/milestones</a></p>
<p>Over <a class="reference internal" href="skiboot-5.5.0-rc1.html#skiboot-5-5-0-rc1"><span class="std std-ref">skiboot-5.5.0-rc1</span></a>, we have the following changes:</p>
<section id="nvlink2">
<h2>NVLINK2<a class="headerlink" href="#nvlink2" title="Link to this heading"></a></h2>
<ul>
<li><p>Introduce NPU2 support</p>
<p>NVLink2 is a new feature introduced on POWER9 systems. It is an
evolution of of the NVLink1 feature included in POWER8+ systems but
adds several new features including support for GPU address
translation using the Nest MMU and cache coherence.</p>
<p>Similar to NVLink1 the functionality is exposed to the OS as a series
of virtual PCIe devices. However the actual hardware interfaces are
significantly different which limits the amount of common code that
can be shared between implementations in the firmware.</p>
<p>This patch adds basic hardware initialisation and exposure of the
virtual NVLink2 PCIe devices to the running OS.</p>
</li>
<li><p>npu2: Add OPAL calls for nvlink2 address translation services (see <a class="reference internal" href="../opal-api/opal-npu2-146-147-148.html#opal-npu2"><span class="std std-ref">OPAL NPU2 calls</span></a>)</p>
<p>Adds three OPAL calls for interacting with NPU2 devices:
<a class="reference internal" href="../opal-api/opal-npu2-146-147-148.html#opal-npu-init-context"><span class="std std-ref">OPAL_NPU_INIT_CONTEXT</span></a>, <a class="reference internal" href="../opal-api/opal-npu2-146-147-148.html#opal-npu-destroy-context"><span class="std std-ref">OPAL_NPU_DESTROY_CONTEXT</span></a> and
<a class="reference internal" href="../opal-api/opal-npu2-146-147-148.html#opal-npu-map-lpar"><span class="std std-ref">OPAL_NPU_MAP_LPAR</span></a>.</p>
<p>These are used to setup and configure address translation services
(ATS) for a process/partition on a given NVLink2 device.</p>
</li>
</ul>
</section>
<section id="power9">
<h2>POWER9<a class="headerlink" href="#power9" title="Link to this heading"></a></h2>
<ul>
<li><p>hdata/memory: ignore homer and occ reserved ranges</p>
<p>We populate these from the HOMER BARs in the PBA directly. There’s no
need to take the hostboot supplied values so just ignore the
corresponding reserved ranges.</p>
</li>
<li><p>hdata/vpd: Parse the OpenPOWER OPFR record</p>
<p>Parse the OpenPOWER FRU VPD (OPFR) record on OpenPOWER instead
of the VINI records.</p>
</li>
<li><p>hdata/vpd: Parse additional VINI records</p>
<p>These records provide hardware version details, CCIN extension information,
card type details and hardware characteristics of the FRU</p>
</li>
<li><p>hdata/cpu: account for p9 shared caches</p>
<p>On P9 the L2 and L3 caches are shared between pairs of SMT=4 cores.
Currently this is not accounted for when creating caches nodes in
the device tree. This patch adds additional checking so that a
cache node is only created for the first core in the pair and
the second core will reference the cache correctly.</p>
</li>
<li><p>hdata: print backtraces on HDAT errors</p></li>
<li><p>hdat: ignore zero length reserves</p>
<p>Hostboot can export reserved regions with a length of zero and these
should be ignored rather than being turned into reserved range. While
we’re here fix a memory leak by moving the “too large” region check
to before we allocate space for the label.</p>
</li>
<li><p>SLW: Add init for power9 power management</p>
<p>This patch adds new function to init core for power9 power management.
SPECIAL_WKUP_* SCOM registers, if set, can hold the cores from going into
idle states. Hence, clear PPM_SPECIAL_WKUP_HYP_REG scom register for each
core during init. (This init are not required for MAMBO)</p>
</li>
</ul>
</section>
<section id="pci">
<h2>PCI<a class="headerlink" href="#pci" title="Link to this heading"></a></h2>
<ul>
<li><p>hw/phb3: Adjust ECRC on root port dynamically</p>
<p>The Samsung NVMe adapter is lost when it’s connected to PMC 8546 PCIe
switch, until ECRC is disabled on the root port. We found similar issue
prevously when Broadcom adapter is connected to same part of PCIe switch
and it was fixed by commit 60ce59ccd0e9 (“hw/phb3: Disable ECRC on Broadcom
adapter behind PMC switch”). Unfortunately, the commit doesn’t fix
the Samsung NVMe adapter lost issue.</p>
<p>This fixes the issues by disable ECRC generation/check on root port
when PMC 8546 PCIe switch ports are found. This can be extended for
other PCIe switches or endpoints in future: Each PHB maintains the
count of PCI devices (PMC 8546 PCIe switch ports currently) which
require to disable ECRC on root port. The ECRC functionality is
enabled when first PMC 8546 switch port is probed and disabled when
last PMC 8546 switch port is destroyed (in PCI hot remove scenario).
Except PHB’s reinitialization after complete reset, the ECRC on
root port is untouched.</p>
</li>
<li><p>core/pci: Fix lost NVMe adapter behind PMC 8546 switch</p>
<p>The NVMe adapter in below PCI topology is lost. The root cause is
the presence bit on its PCI slot is missed, but the PCIe link has
been up. The PCI core doesn’t probe the adapter behind the slot,
leading to lost NVMe adapter in the particular case.</p>
<ul class="simple">
<li><p>PHB3 root port</p></li>
<li><p>PLX switch 8748 (10b5:8748)</p></li>
<li><p>PLX swich 9733 (10b5:9733)</p></li>
<li><p>PMC 8546 swtich (11f8:8546)</p></li>
<li><p>NVMe adapter (1c58:0023)</p></li>
</ul>
<p>This fixes the issue by overriding the PCI slot presence bit with
PCIe link state bit.</p>
</li>
<li><p>hw/phb4: Locate AER capability position if necessary</p></li>
<li><p>core/pci: Disable surprise hotplug on root port</p></li>
<li><p>core/pci: Ignore PCI slot capability on root port</p>
<p>We are creating PCI slot on root port, where the PCI slot isn’t
supported from hardware. For this case, we shouldn’t read the PCI
slot capability from hardware. When bogus data returned from the
hardware, we will attempt to the PCI slot’s power state or enable
surprise hotplug functionality. All of them can’t be accomplished
without hardware support.</p>
<p>This leaves the PCI slot’s capability list 0 if PCICAP_EXP_CAP_SLOT
isn’t set in hardware (pcie_cap + 0x2). Otherwise, the PCI slot’s
capability list is retrieved from hardware (pcie_cap + 0x14).</p>
</li>
<li><p>phb4: Default to PCIe GEN2 on DD1</p>
<p>Default to PCIe GEN2 link speeds on DD1 for stability.</p>
<p>Can be overridden using nvram pcie-max-link-speed=4 parameter.</p>
</li>
<li><p>phb3/4: Set max link speed via nvram</p>
<p>This adds an nvram parameter pcie-max-link-speed to configure the max
speed of the pcie link. This can be set from the petitboot prompt
using:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">nvram</span> <span class="o">-</span><span class="n">p</span> <span class="n">ibm</span><span class="p">,</span><span class="n">skiboot</span> <span class="o">--</span><span class="n">update</span><span class="o">-</span><span class="n">config</span> <span class="n">pcie</span><span class="o">-</span><span class="nb">max</span><span class="o">-</span><span class="n">link</span><span class="o">-</span><span class="n">speed</span><span class="o">=</span><span class="mi">4</span>
</pre></div>
</div>
<p>This takes preference over anything set in the device tree and is
global to all PHBs.</p>
</li>
</ul>
</section>
<section id="tests">
<h2>Tests<a class="headerlink" href="#tests" title="Link to this heading"></a></h2>
<ul>
<li><p>Mambo/Qemu boot tests: expect (and fail) on checkstop</p>
<p>This allows us to fail a lot faster if we checkstop</p>
</li>
</ul>
</section>
</section>
<div class="clearer"></div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<div>
<h3><a href="../index.html">Table of Contents</a></h3>
<ul>
<li><a class="reference internal" href="#">skiboot-5.5.0-rc2</a><ul>
<li><a class="reference internal" href="#nvlink2">NVLINK2</a></li>
<li><a class="reference internal" href="#power9">POWER9</a></li>
<li><a class="reference internal" href="#pci">PCI</a></li>
<li><a class="reference internal" href="#tests">Tests</a></li>
</ul>
</li>
</ul>
</div>
<div>
<h4>Previous topic</h4>
<p class="topless"><a href="skiboot-5.5.0-rc1.html"
title="previous chapter">skiboot-5.5.0-rc1</a></p>
</div>
<div>
<h4>Next topic</h4>
<p class="topless"><a href="skiboot-5.5.0-rc3.html"
title="next chapter">skiboot-5.5.0-rc3</a></p>
</div>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../_sources/release-notes/skiboot-5.5.0-rc2.rst.txt"
rel="nofollow">Show Source</a></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</div>
<script>document.getElementById('searchbox').style.display = "block"</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="skiboot-5.5.0-rc3.html" title="skiboot-5.5.0-rc3"
>next</a> |</li>
<li class="right" >
<a href="skiboot-5.5.0-rc1.html" title="skiboot-5.5.0-rc1"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">skiboot d365a01
documentation</a> &#187;</li>
<li class="nav-item nav-item-1"><a href="index.html" >Release Notes</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">skiboot-5.5.0-rc2</a></li>
</ul>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2016-2017, IBM, others.
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 7.2.6.
</div>
</body>
</html>