summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVishwanatha Subbanna <vishwa@linux.vnet.ibm.com>2017-04-13 20:17:13 +0530
committerVishwanatha Subbanna <vishwa@linux.vnet.ibm.com>2017-04-17 23:27:39 +0530
commitafd21a650715bf7a0ecc9b71a93d60639706d980 (patch)
tree20e746af17956379a465d901af72761a7c4dbc2f
parentf9fbadd6095781c774dd165d55bce4c5f5bada90 (diff)
downloadopenpower-occ-control-afd21a650715bf7a0ecc9b71a93d60639706d980.tar.gz
openpower-occ-control-afd21a650715bf7a0ecc9b71a93d60639706d980.zip
Populate device entry based on position
Communicating to OCC from BMC in PassThrough mode involves 2 drivers, namely; 1) SBE FIFO driver --> Used to communicate with SBE 2) OCC driver --> Which uses FIFO driver to write data to OCC at a predefined address and reads it back from a predefined OCC address. Device entry that is of interest here belongs to #2 above. This will map occ0 to fifo1, occ2 to fifo2 and so on. Until the udev rules are in place to make sure that a particular entry always maps to correct device not caring the probing order, this change here is a best guess that cpu0 and cpu1 would mostly in all cases be probed in that order. Change-Id: I485e0ea4eab1b4c6f59ee4b68c0725f9633cd933 Signed-off-by: Vishwanatha Subbanna <vishwa@linux.vnet.ibm.com>
-rw-r--r--occ_pass_through.cpp3
-rw-r--r--occ_pass_through.hpp9
2 files changed, 10 insertions, 2 deletions
diff --git a/occ_pass_through.cpp b/occ_pass_through.cpp
index 25f3edf..05864c1 100644
--- a/occ_pass_through.cpp
+++ b/occ_pass_through.cpp
@@ -3,7 +3,6 @@
#include <phosphor-logging/log.hpp>
#include "occ_pass_through.hpp"
#include "occ_finder.hpp"
-
namespace open_power
{
namespace occ
@@ -41,7 +40,7 @@ PassThrough::PassThrough(
Iface(bus, path),
path(path)
{
- // Nothing
+ devicePath.append(std::to_string((this->path.back() - '0') + 1));
}
std::vector<int32_t> PassThrough::send(std::vector<int32_t> command)
diff --git a/occ_pass_through.hpp b/occ_pass_through.hpp
index 835241f..da8c617 100644
--- a/occ_pass_through.hpp
+++ b/occ_pass_through.hpp
@@ -62,6 +62,15 @@ class PassThrough : public Iface
private:
/** @brief Pass-through occ path on the bus */
std::string path;
+
+ /** @brief OCC device path
+ * For now, here is the hard-coded mapping until
+ * the udev rule is in
+ * occ0 --> /dev/occfifo1
+ * occ1 --> /dev/occfifo2
+ * ...
+ */
+ std::string devicePath = "/dev/occfifo";
};
} // namespace pass_through
OpenPOWER on IntegriCloud