149 lines
7 KiB
ReStructuredText
149 lines
7 KiB
ReStructuredText
|
.. _skiboot-5.10-rc3:
|
||
|
|
||
|
skiboot-5.10-rc3
|
||
|
================
|
||
|
|
||
|
skiboot v5.10-rc3 was released on Thursday February 15th 2018. It is the third
|
||
|
release candidate of skiboot 5.10, which will become the new stable release
|
||
|
of skiboot following the 5.9 release, first released October 31st 2017.
|
||
|
|
||
|
skiboot v5.10-rc3 contains all bug fixes as of :ref:`skiboot-5.9.8`
|
||
|
and :ref:`skiboot-5.4.9` (the currently maintained stable releases). There
|
||
|
may be more 5.9.x stable releases, it will depend on demand.
|
||
|
|
||
|
For how the skiboot stable releases work, see :ref:`stable-rules` for details.
|
||
|
|
||
|
The current plan is to cut the final 5.10 in February, with skiboot 5.10
|
||
|
being for all POWER8 and POWER9 platforms in op-build v1.21.
|
||
|
This release will be targeted to early POWER9 systems.
|
||
|
|
||
|
Over skiboot-5.10-rc2, we have the following changes:
|
||
|
|
||
|
- vas: Disable VAS/NX-842 on some P9 revisions
|
||
|
|
||
|
VAS/NX-842 are not functional on some P9 revisions, so disable them
|
||
|
in hardware and skip creating their device tree nodes.
|
||
|
|
||
|
Since the intent is to prevent OS from configuring VAS/NX, we remove
|
||
|
only the platform device nodes but leave the VAS/NX DT nodes under
|
||
|
xscom (i.e we don't skip add_vas_node() in hdata/spira.c)
|
||
|
- phb4: Only escalate freezes on MMIO load where necessary
|
||
|
|
||
|
In order to work around a hardware issue, MMIO load freezes were
|
||
|
escalated to fences on every chip. Now that hardware no longer requires
|
||
|
this, restrict escalation to the chips that actually need it.
|
||
|
- pflash: Fix makefile dependency issue
|
||
|
- DT: Add "version" property under ibm, firmware-versions node
|
||
|
|
||
|
First line of VERSION section in PNOR contains firmware version.
|
||
|
Use that to add "version" property under firmware versions dt node.
|
||
|
|
||
|
Sample output:
|
||
|
|
||
|
.. code-block:: console
|
||
|
|
||
|
root@xxx2:/proc/device-tree/ibm,firmware-versions# lsprop
|
||
|
version "witherspoon-ibm-OP9_v1.19_1.94"
|
||
|
|
||
|
- npu2: Disable TVT range check when in bypass mode
|
||
|
|
||
|
On POWER9 the GPUs need to be able to access the MMIO memory space. Therefore
|
||
|
the TVT range check needs to include the MMIO address space. As any possible
|
||
|
range check would cover all of memory anyway this patch just disables the TVT
|
||
|
range check all together when bypassing the TCE tables.
|
||
|
- hw/npu2: support creset of npu2 devices
|
||
|
|
||
|
creset calls in the hw procedure that resets the PHY, we don't
|
||
|
take them out of reset, just put them in reset.
|
||
|
|
||
|
this fixes a kexec issue.
|
||
|
- ATTN: Enable flush instruction cache bit in HID register
|
||
|
|
||
|
In P9, we have to enable "flush the instruction cache" bit along with
|
||
|
"attn instruction support" bit to trigger attention.
|
||
|
- capi: Enable channel tag streaming for PHB in CAPP mode
|
||
|
|
||
|
We re-enable channel tag streaming for PHB in CAPP mode as without it
|
||
|
PEC was waiting for cresp for each DMA write command before sending a
|
||
|
new DMA write command on the Powerbus. This resulted in much lower DMA
|
||
|
write performance than expected.
|
||
|
|
||
|
The patch updates enable_capi_mode() to remove the masking of
|
||
|
channel_streaming_en bit in PBCQ Hardware Configuration Register. Also
|
||
|
does some re-factoring of the code that updates this register to use
|
||
|
xscom_write_mask instead of xscom_read followed by a xscom_write.
|
||
|
- core/device.c: Fix dt_find_compatible_node
|
||
|
|
||
|
dt_find_compatible_node() and dt_find_compatible_node_on_chip() are used to
|
||
|
find device nodes under a parent/root node with a given compatible
|
||
|
property.
|
||
|
|
||
|
dt_next(root, prev) is used to walk the child nodes of the given parent and
|
||
|
takes two arguments - root contains the parent node to walk whilst prev
|
||
|
contains the previous child to search from so that it can be used as an
|
||
|
iterator over all children nodes.
|
||
|
|
||
|
The first iteration of dt_find_compatible_node(root, prev) calls
|
||
|
dt_next(root, root) which is not a well defined operation as prev is
|
||
|
assumed to be child of the root node. The result is that when a node
|
||
|
contains no children it will start returning the parent nodes siblings
|
||
|
until it hits the top of the tree at which point a NULL derefence is
|
||
|
attempted when looking for the root nodes parent.
|
||
|
|
||
|
Dereferencing NULL can result in undesirable data exceptions during system
|
||
|
boot and untimely non-hilarious system crashes. dt_next() should not be
|
||
|
called with prev == root. Instead we add a check to dt_next() such that
|
||
|
passing prev = NULL will cause it to start iterating from the first child
|
||
|
node (if any).
|
||
|
- stb: Put correct label (for skiboot) into container
|
||
|
|
||
|
Hostboot will expect the label field of the stb header to contain
|
||
|
"PAYLOAD" for skiboot or it will fail to load and run skiboot.
|
||
|
|
||
|
The failure looks something like this: ::
|
||
|
|
||
|
53.40896|ISTEP 20. 1 - host_load_payload
|
||
|
53.65840|secure|Secureboot Failure plid = 0x90000755, rc = 0x1E07
|
||
|
|
||
|
53.65881|System shutting down with error status 0x1E07
|
||
|
53.67547|================================================
|
||
|
53.67954|Error reported by secure (0x1E00) PLID 0x90000755
|
||
|
53.67560| Container's component ID does not match expected component ID
|
||
|
53.67561| ModuleId 0x09 SECUREBOOT::MOD_SECURE_VERIFY_COMPONENT
|
||
|
53.67845| ReasonCode 0x1e07 SECUREBOOT::RC_ROM_VERIFY
|
||
|
53.67998| UserData1 : 0x0000000000000000
|
||
|
53.67999| UserData2 : 0x0000000000000000
|
||
|
53.67999|------------------------------------------------
|
||
|
53.68000| Callout type : Procedure Callout
|
||
|
53.68000| Procedure : EPUB_PRC_HB_CODE
|
||
|
53.68001| Priority : SRCI_PRIORITY_HIGH
|
||
|
53.68001|------------------------------------------------
|
||
|
53.68002| Callout type : Procedure Callout
|
||
|
53.68003| Procedure : EPUB_PRC_FW_VERIFICATION_ERR
|
||
|
53.68003| Priority : SRCI_PRIORITY_HIGH
|
||
|
53.68004|------------------------------------------------
|
||
|
- hw/occ: Fix fast-reboot crash in P8 platforms.
|
||
|
|
||
|
commit 85a1de35cbe4 ("fast-boot: occ: Re-parse the pstate table during fast-boot" )
|
||
|
breaks the fast-reboot on P8 platforms while reiniting the OCC pstates. On P8
|
||
|
platforms OPAL adds additional two properties #address-cells and #size-cells
|
||
|
under ibm,opal/power-mgmt/ DT node. While in fast-reboot same properties adding
|
||
|
back to the same node results in Duplicate properties and hence fast-reboot fails
|
||
|
with below traces. ::
|
||
|
|
||
|
[ 541.410373292,5] OCC: All Chip Rdy after 0 ms
|
||
|
[ 541.410488745,3] Duplicate property "#address-cells" in node /ibm,opal/power-mgt
|
||
|
[ 541.410694290,0] Aborting!
|
||
|
CPU 0058 Backtrace:
|
||
|
S: 0000000031d639d0 R: 000000003001367c .backtrace+0x48
|
||
|
S: 0000000031d63a60 R: 000000003001a03c ._abort+0x4c
|
||
|
S: 0000000031d63ae0 R: 00000000300267d8 .new_property+0xd8
|
||
|
S: 0000000031d63b70 R: 0000000030026a28 .__dt_add_property_cells+0x30
|
||
|
S: 0000000031d63c10 R: 000000003003ea3c .occ_pstates_init+0x984
|
||
|
S: 0000000031d63d90 R: 00000000300142d8 .load_and_boot_kernel+0x86c
|
||
|
S: 0000000031d63e70 R: 000000003002586c .fast_reboot_entry+0x358
|
||
|
S: 0000000031d63f00 R: 00000000300029f4 fast_reset_entry+0x2c
|
||
|
|
||
|
This patch fixes this issue by removing these two properties on P8 while doing
|
||
|
OCC pstates re-init in fast-reboot code path.
|