Move procedures into separate files.

Procedures will now be in procedures/<chip>/.

The next commit will have the procedures register
themselves so they won't be in a hardcoded list.

Change-Id: I0ff90afe2b51aaff25b5c25bf87070c820323e30
Signed-off-by: Matt Spinler <spinler@us.ibm.com>
diff --git a/Makefile.am b/Makefile.am
index 73ea204..57c0e2c 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -6,9 +6,10 @@
 openpower_proc_control_SOURCES = \
 	proc_control.cpp \
 	cfam_access.cpp \
-	p9_procedures.cpp \
 	filedescriptor.cpp \
-	targeting.cpp
+	targeting.cpp \
+	procedures/p9/start_host.cpp \
+	procedures/p9/vcs_workaround.cpp
 
 openpower_proc_control_LDFLAGS = $(PHOSPHOR_LOGGING_LIBS) -lstdc++fs
 openpower_proc_control_CXXFLAGS = $(PHOSPHOR_LOGGING_CFLAGS)
diff --git a/p9_procedures.cpp b/procedures/p9/start_host.cpp
similarity index 71%
rename from p9_procedures.cpp
rename to procedures/p9/start_host.cpp
index 188fec0..f781e68 100644
--- a/p9_procedures.cpp
+++ b/procedures/p9/start_host.cpp
@@ -28,6 +28,11 @@
 using namespace openpower::cfam::p9;
 using namespace openpower::targeting;
 
+
+/**
+ * @brief Starts the self boot engine on P9 position 0 to kick off a boot.
+ * @return void
+ */
 void startHost()
 {
     Targeting targets;
@@ -36,7 +41,6 @@
     log<level::INFO>("Running P9 procedure startHost",
                      entry("NUM_PROCS=%d", targets.size()));
 
-
     //Ensure asynchronous clock mode is set
     writeReg(master, P9_LL_MODE_REG, 0x00000001);
 
@@ -68,32 +72,6 @@
 }
 
 
-void vcsWorkaround()
-{
-    Targeting targets;
-    const auto& master = *(targets.begin());
-
-    log<level::INFO>("Running P9 procedure vcsWorkaround",
-                     entry("NUM_PROCS=%d", targets.size()));
-
-    //Set asynchronous clock mode
-    writeReg(master, P9_LL_MODE_REG, 0x00000001);
-
-    for (const auto& t : targets)
-    {
-        //Unfence PLL controls
-        writeRegWithMask(t, P9_ROOT_CTRL0,
-                         0x00000000, 0x00010000);
-
-        //Assert Perv chiplet endpoint reset
-        writeRegWithMask(t, P9_PERV_CTRL0,
-                         0x40000000, 0x40000000);
-
-        //Enable Nest PLL
-        writeRegWithMask(t, P9_PERV_CTRL0,
-                         0x00000001, 0x00000001);
-    }
-}
-
 }
 }
+
diff --git a/p9_procedures.cpp b/procedures/p9/vcs_workaround.cpp
similarity index 61%
copy from p9_procedures.cpp
copy to procedures/p9/vcs_workaround.cpp
index 188fec0..64b41c1 100644
--- a/p9_procedures.cpp
+++ b/procedures/p9/vcs_workaround.cpp
@@ -28,46 +28,11 @@
 using namespace openpower::cfam::p9;
 using namespace openpower::targeting;
 
-void startHost()
-{
-    Targeting targets;
-    const auto& master = *(targets.begin());
 
-    log<level::INFO>("Running P9 procedure startHost",
-                     entry("NUM_PROCS=%d", targets.size()));
-
-
-    //Ensure asynchronous clock mode is set
-    writeReg(master, P9_LL_MODE_REG, 0x00000001);
-
-    //Clock mux select override
-    for (const auto& t : targets)
-    {
-        writeRegWithMask(t, P9_ROOT_CTRL8,
-                         0x0000000C, 0x0000000C);
-    }
-
-    //Enable P9 checkstop to be reported to the BMC
-
-    //Setup FSI2PIB to report checkstop
-    writeReg(master, P9_FSI_A_SI1S, 0x20000000);
-
-    //Enable Xstop/ATTN interrupt
-    writeReg(master, P9_FSI2PIB_TRUE_MASK, 0x60000000);
-
-    //Arm it
-    writeReg(master, P9_FSI2PIB_INTERRUPT, 0xFFFFFFFF);
-
-    //Kick off the SBE to start the boot
-
-    //First ensure ISTEP stepping isn't enabled
-    writeReg(master, P9_SCRATCH_REGISTER_8, 0x20000000);
-
-    //Start the SBE
-    writeRegWithMask(master, P9_CBS_CS, 0x80000000, 0x80000000);
-}
-
-
+/**
+ * @brief Performs the 'VCS Workaround' on all P9s in the system.
+ * @return void
+ */
 void vcsWorkaround()
 {
     Targeting targets;