summaryrefslogtreecommitdiffstats
path: root/src/include/usr/targeting/runtime
diff options
context:
space:
mode:
authorChristian Geddes <crgeddes@us.ibm.com>2019-07-15 11:02:27 -0500
committerDaniel M Crowell <dcrowell@us.ibm.com>2020-01-22 09:45:00 -0600
commitf32aff51f83dcbcaa3857100c6e4e36ee7a8b84a (patch)
tree8ae056af16db181e933eaedc2fd74adedd049a40 /src/include/usr/targeting/runtime
parent5820710976565a6b3d241bce91d97d3fdacd0396 (diff)
downloadtalos-hostboot-f32aff51f83dcbcaa3857100c6e4e36ee7a8b84a.tar.gz
talos-hostboot-f32aff51f83dcbcaa3857100c6e4e36ee7a8b84a.zip
Make RT_TARG id generation code common between IPL time and runtime
For axone we are writing the OMI mmio bars into hdat so the hypervisor know how to talk to the devices. IPL code needs to be able to lookup the hbrt-style ids so we can use them to make hdat entries that the hypervisor will be able to associate targets with. This commit also move rt_targeting.H to the correct include directory and updates everywhere that it is included. Change-Id: I31deaa1a9c5a7523622a8b3b12ad459e2b2feed3 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/80419 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Daniel M Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/include/usr/targeting/runtime')
-rw-r--r--src/include/usr/targeting/runtime/rt_targeting.H89
1 files changed, 89 insertions, 0 deletions
diff --git a/src/include/usr/targeting/runtime/rt_targeting.H b/src/include/usr/targeting/runtime/rt_targeting.H
new file mode 100644
index 000000000..c94b871a9
--- /dev/null
+++ b/src/include/usr/targeting/runtime/rt_targeting.H
@@ -0,0 +1,89 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/include/usr/targeting/runtime/rt_targeting.H $ */
+/* */
+/* OpenPOWER HostBoot Project */
+/* */
+/* Contributors Listed Below - COPYRIGHT 2014,2020 */
+/* [+] International Business Machines Corp. */
+/* */
+/* */
+/* Licensed under the Apache License, Version 2.0 (the "License"); */
+/* you may not use this file except in compliance with the License. */
+/* You may obtain a copy of the License at */
+/* */
+/* http://www.apache.org/licenses/LICENSE-2.0 */
+/* */
+/* Unless required by applicable law or agreed to in writing, software */
+/* distributed under the License is distributed on an "AS IS" BASIS, */
+/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or */
+/* implied. See the License for the specific language governing */
+/* permissions and limitations under the License. */
+/* */
+/* IBM_PROLOG_END_TAG */
+#ifndef __RT_TARGETING_H
+#define __RT_TARGETING_H
+
+#include <errl/errlentry.H>
+#include <targeting/common/hbrt_target.H>
+
+namespace TARGETING
+{
+ class Target;
+}
+
+namespace RT_TARG
+{
+
+ enum
+ {
+ MEMBUF_ID_SHIFT = 4, //!< CHIPID for MEMBUF is '<procid>MMMM'b
+ MEMBUF_ID_MASK = 0x0000000F, //!< valid position bits for MEMBUF
+ };
+
+
+
+ /**
+ * @brief Convert a runtime chip_id (target) into a TARGETING::Target
+ * @param[in] The rt chipId
+ * @param[out] The TARGETING::Target pointer
+ * @return error log handle on error else NULL
+ */
+ errlHndl_t getHbTarget(TARGETING::rtChipId_t i_rt_chip_id,
+ TARGETING::Target *& o_target);
+
+ /**
+ * @brief Save/Restore attribute values from current Reserved Memory data
+ * into new LID Structure data
+ * @param[in] Pointer to current Reserved Memory targeting binary data
+ * @param[in/out] Pointer to new LID Structure targeting binary data
+ * @param[in] Instance, ie, Node ID
+ * @return nullptr on success, else error log
+ */
+ errlHndl_t saveRestoreAttrs(void *i_rsvdMemPtr,
+ void *io_lidStructPtr,
+ uint8_t i_instance);
+
+ /**
+ * @brief Validate LID Structure against Reserved Memory. Check that the
+ * TargetingHeader eyecatchers are valid, that the TargetingHeader number of
+ * sections match, and that the types and sizes of each TargetingSection
+ * match.
+ * @param[in] Pointer to new LID Structure targeting binary data
+ * @param[in] Pointer to current Reserved Memory targeting binary data
+ * @param[out] Total size of all sections in the new lid
+ * @return nullptr on success, else error log
+ */
+ errlHndl_t validateData(void *i_lidStructPtr,
+ void *i_rsvdMemPtr,
+ size_t& o_lidTotalSize);
+
+ /**
+ * @brief Apply ATTR_TMP overrides to be available for run time
+ */
+ void applyTempOverrides( );
+
+};
+
+#endif
OpenPOWER on IntegriCloud