|
| 1 | +.. _skiboot-5.5.0-rc2: |
| 2 | + |
| 3 | +skiboot-5.5.0-rc2 |
| 4 | +================= |
| 5 | + |
| 6 | +skiboot-5.5.0-rc2 was released on Monday April 3rd 2017. It is the second |
| 7 | +release candidate of skiboot 5.5, which will become the new stable release |
| 8 | +of skiboot following the 5.4 release, first released November 11th 2016. |
| 9 | + |
| 10 | +skiboot-5.5.0-rc2 contains all bug fixes as of :ref:`skiboot-5.4.3` |
| 11 | +and :ref:`skiboot-5.1.19` (the currently maintained stable releases). |
| 12 | + |
| 13 | +For how the skiboot stable releases work, see :ref:`stable-rules` for details. |
| 14 | + |
| 15 | +The current plan is to cut the final 5.5.0 by April 8th, with skiboot 5.5.0 |
| 16 | +being for all POWER8 and POWER9 platforms in op-build v1.16 (Due April 12th). |
| 17 | +This is a short cycle as this release is mainly targetted towards POWER9 |
| 18 | +bringup efforts. |
| 19 | + |
| 20 | +Following skiboot-5.5.0, we will move to a regular six week release cycle, |
| 21 | +similar to op-build, but slightly offset to allow for a short stabilisation |
| 22 | +period. Expected release dates and contents are tracked using GitHub milestone |
| 23 | +and issues: https://github.com/open-power/skiboot/milestones |
| 24 | + |
| 25 | +Over :ref:`skiboot-5.5.0-rc1`, we have the following changes: |
| 26 | + |
| 27 | +NVLINK2 |
| 28 | +------- |
| 29 | + |
| 30 | +- Introduce NPU2 support |
| 31 | + |
| 32 | + NVLink2 is a new feature introduced on POWER9 systems. It is an |
| 33 | + evolution of of the NVLink1 feature included in POWER8+ systems but |
| 34 | + adds several new features including support for GPU address |
| 35 | + translation using the Nest MMU and cache coherence. |
| 36 | + |
| 37 | + Similar to NVLink1 the functionality is exposed to the OS as a series |
| 38 | + of virtual PCIe devices. However the actual hardware interfaces are |
| 39 | + significantly different which limits the amount of common code that |
| 40 | + can be shared between implementations in the firmware. |
| 41 | + |
| 42 | + This patch adds basic hardware initialisation and exposure of the |
| 43 | + virtual NVLink2 PCIe devices to the running OS. |
| 44 | + |
| 45 | +- npu2: Add OPAL calls for nvlink2 address translation services (see :ref:`OPAL_NPU2`) |
| 46 | + |
| 47 | + Adds three OPAL calls for interacting with NPU2 devices: |
| 48 | + :ref:`OPAL_NPU_INIT_CONTEXT`, :ref:`OPAL_NPU_DESTROY_CONTEXT` and |
| 49 | + :ref:`OPAL_NPU_MAP_LPAR`. |
| 50 | + |
| 51 | + These are used to setup and configure address translation services |
| 52 | + (ATS) for a process/partition on a given NVLink2 device. |
| 53 | + |
| 54 | + |
| 55 | +POWER9 |
| 56 | +------ |
| 57 | +- hdata/memory: ignore homer and occ reserved ranges |
| 58 | + |
| 59 | + We populate these from the HOMER BARs in the PBA directly. There's no |
| 60 | + need to take the hostboot supplied values so just ignore the |
| 61 | + corresponding reserved ranges. |
| 62 | + |
| 63 | +- hdata/vpd: Parse the OpenPOWER OPFR record |
| 64 | + |
| 65 | + Parse the OpenPOWER FRU VPD (OPFR) record on OpenPOWER instead |
| 66 | + of the VINI records. |
| 67 | + |
| 68 | +- hdata/vpd: Parse additional VINI records |
| 69 | + |
| 70 | + These records provide hardware version details, CCIN extension information, |
| 71 | + card type details and hardware characteristics of the FRU |
| 72 | + |
| 73 | +- hdata/cpu: account for p9 shared caches |
| 74 | + |
| 75 | + On P9 the L2 and L3 caches are shared between pairs of SMT=4 cores. |
| 76 | + Currently this is not accounted for when creating caches nodes in |
| 77 | + the device tree. This patch adds additional checking so that a |
| 78 | + cache node is only created for the first core in the pair and |
| 79 | + the second core will reference the cache correctly. |
| 80 | + |
| 81 | +- hdata: print backtraces on HDAT errors |
| 82 | +- hdat: ignore zero length reserves |
| 83 | + |
| 84 | + Hostboot can export reserved regions with a length of zero and these |
| 85 | + should be ignored rather than being turned into reserved range. While |
| 86 | + we're here fix a memory leak by moving the "too large" region check |
| 87 | + to before we allocate space for the label. |
| 88 | + |
| 89 | +- SLW: Add init for power9 power management |
| 90 | + |
| 91 | + This patch adds new function to init core for power9 power management. |
| 92 | + SPECIAL_WKUP_* SCOM registers, if set, can hold the cores from going into |
| 93 | + idle states. Hence, clear PPM_SPECIAL_WKUP_HYP_REG scom register for each |
| 94 | + core during init. (This init are not required for MAMBO) |
| 95 | + |
| 96 | + |
| 97 | +PCI |
| 98 | +--- |
| 99 | + |
| 100 | +- hw/phb3: Adjust ECRC on root port dynamically |
| 101 | + |
| 102 | + The Samsung NVMe adapter is lost when it's connected to PMC 8546 PCIe |
| 103 | + switch, until ECRC is disabled on the root port. We found similar issue |
| 104 | + prevously when Broadcom adapter is connected to same part of PCIe switch |
| 105 | + and it was fixed by commit 60ce59ccd0e9 ("hw/phb3: Disable ECRC on Broadcom |
| 106 | + adapter behind PMC switch"). Unfortunately, the commit doesn't fix |
| 107 | + the Samsung NVMe adapter lost issue. |
| 108 | + |
| 109 | + This fixes the issues by disable ECRC generation/check on root port |
| 110 | + when PMC 8546 PCIe switch ports are found. This can be extended for |
| 111 | + other PCIe switches or endpoints in future: Each PHB maintains the |
| 112 | + count of PCI devices (PMC 8546 PCIe switch ports currently) which |
| 113 | + require to disable ECRC on root port. The ECRC functionality is |
| 114 | + enabled when first PMC 8546 switch port is probed and disabled when |
| 115 | + last PMC 8546 switch port is destroyed (in PCI hot remove scenario). |
| 116 | + Except PHB's reinitialization after complete reset, the ECRC on |
| 117 | + root port is untouched. |
| 118 | + |
| 119 | +- core/pci: Fix lost NVMe adapter behind PMC 8546 switch |
| 120 | + |
| 121 | + The NVMe adapter in below PCI topology is lost. The root cause is |
| 122 | + the presence bit on its PCI slot is missed, but the PCIe link has |
| 123 | + been up. The PCI core doesn't probe the adapter behind the slot, |
| 124 | + leading to lost NVMe adapter in the particular case. |
| 125 | + |
| 126 | + - PHB3 root port |
| 127 | + - PLX switch 8748 (10b5:8748) |
| 128 | + - PLX swich 9733 (10b5:9733) |
| 129 | + - PMC 8546 swtich (11f8:8546) |
| 130 | + - NVMe adapter (1c58:0023) |
| 131 | + |
| 132 | + This fixes the issue by overriding the PCI slot presence bit with |
| 133 | + PCIe link state bit. |
| 134 | +- hw/phb4: Locate AER capability position if necessary |
| 135 | +- core/pci: Disable surprise hotplug on root port |
| 136 | +- core/pci: Ignore PCI slot capability on root port |
| 137 | + |
| 138 | + We are creating PCI slot on root port, where the PCI slot isn't |
| 139 | + supported from hardware. For this case, we shouldn't read the PCI |
| 140 | + slot capability from hardware. When bogus data returned from the |
| 141 | + hardware, we will attempt to the PCI slot's power state or enable |
| 142 | + surprise hotplug functionality. All of them can't be accomplished |
| 143 | + without hardware support. |
| 144 | + |
| 145 | + This leaves the PCI slot's capability list 0 if PCICAP_EXP_CAP_SLOT |
| 146 | + isn't set in hardware (pcie_cap + 0x2). Otherwise, the PCI slot's |
| 147 | + capability list is retrieved from hardware (pcie_cap + 0x14). |
| 148 | + |
| 149 | + |
| 150 | +- phb4: Default to PCIe GEN2 on DD1 |
| 151 | + |
| 152 | + Default to PCIe GEN2 link speeds on DD1 for stability. |
| 153 | + |
| 154 | + Can be overridden using nvram pcie-max-link-speed=4 parameter. |
| 155 | + |
| 156 | +- phb3/4: Set max link speed via nvram |
| 157 | + |
| 158 | + This adds an nvram parameter pcie-max-link-speed to configure the max |
| 159 | + speed of the pcie link. This can be set from the petitboot prompt |
| 160 | + using: :: |
| 161 | + |
| 162 | + nvram -p ibm,skiboot --update-config pcie-max-link-speed=4 |
| 163 | + |
| 164 | + This takes preference over anything set in the device tree and is |
| 165 | + global to all PHBs. |
| 166 | + |
| 167 | +Tests |
| 168 | +----- |
| 169 | + |
| 170 | +- Mambo/Qemu boot tests: expect (and fail) on checkstop |
| 171 | + |
| 172 | + This allows us to fail a lot faster if we checkstop |
0 commit comments