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>
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 @@
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 @@
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