diff --git a/functions.cpp b/functions.cpp
index 33b5611..d345489 100644
--- a/functions.cpp
+++ b/functions.cpp
@@ -104,7 +104,7 @@
  * extensions.
  * @param[in] ibmCompatibleSystem The names property of an instance of
  * xyz.openbmc_project.Inventory.Decorator.Compatible
- * @param[out] extentions the host firmware blob file extensions
+ * @param[out] extensions the host firmware blob file extensions
  * @return true if an entry was found, otherwise false
  */
 bool getExtensionsForIbmCompatibleSystem(
@@ -165,14 +165,14 @@
  * @brief Find host firmware blob files that need well-known names
  *
  * The IBM host firmware runtime looks for data and/or additional code while
- * bootstraping in files with well-known names. findLinks uses the provided
+ * bootstrapping in files with well-known names. findLinks uses the provided
  * extensions argument to find host firmware blob files that require a
  * well-known name. When a blob is found, issue the provided callback
  * (typically a function that will write a symlink).
  *
  * @param[in] hostFirmwareDirectory The directory in which findLinks should
  * look for host firmware blob files that need well-known names.
- * @param[in] extentions The extensions of the firmware blob files denote a
+ * @param[in] extensions The extensions of the firmware blob files denote a
  * host firmware blob file requires a well-known name.
  * @param[in] errorCallback A callback made in the event of filesystem errors.
  * @param[in] linkCallback A callback made when host firmware blob files
@@ -313,7 +313,7 @@
                 auto runtimeKeyName = keyName.string() + runtimeSuffix;
                 attr.insert({runtimeKeyName, attrIt->second});
             }
-            // Overwrite the exsiting element with the ipl entry
+            // Overwrite the existing element with the ipl entry
             attr[keyName] = lid;
             continue;
         }
@@ -378,7 +378,7 @@
  * for this system.
  *
  * @param[in] elementsJsonFilePath - The path to the host firmware json file.
- * @param[in] extentions - The extensions of the firmware blob files.
+ * @param[in] extensions - The extensions of the firmware blob files.
  */
 void setBiosAttr(const std::filesystem::path& elementsJsonFilePath,
                  const std::vector<std::string>& extensions)
@@ -520,7 +520,7 @@
  *
  * Using the provided extensionMap and
  * xyz.openbmc_project.Inventory.Decorator.Compatible, determine if well-known
- * names for host firmare blob files are necessary and if so, create them.
+ * names for host firmware blob files are necessary and if so, create them.
  *
  * @param[in] extensionMap a map of
  * xyz.openbmc_project.Inventory.Decorator.Compatible to host firmware blob file
@@ -615,7 +615,7 @@
     ErrorCallbackType errorCallback, sdeventplus::Event& loop)
 {
     // ownership of extensionMap, hostFirmwareDirectory and errorCallback can't
-    // be transfered to the match callback because they are needed in the non
+    // be transferred to the match callback because they are needed in the non
     // async part of this function below, so they need to be moved to the heap.
     auto pExtensionMap =
         std::make_shared<decltype(extensionMap)>(std::move(extensionMap));
diff --git a/image_verify.cpp b/image_verify.cpp
index a599287..09d5cec 100644
--- a/image_verify.cpp
+++ b/image_verify.cpp
@@ -122,7 +122,7 @@
             return false;
         }
 
-        log<level::DEBUG>("Successfully completed Signature vaildation.");
+        log<level::DEBUG>("Successfully completed Signature validation.");
 
         return true;
     }
diff --git a/image_verify.hpp b/image_verify.hpp
index efd3873..34a81c8 100644
--- a/image_verify.hpp
+++ b/image_verify.hpp
@@ -208,10 +208,10 @@
     /** @brief Path of public key and hash function files */
     std::filesystem::path signedConfPath;
 
-    /** @brief key type defined in mainfest file */
+    /** @brief key type defined in manifest file */
     Key_t keyType;
 
-    /** @brief Hash type defined in mainfest file */
+    /** @brief Hash type defined in manifest file */
     Hash_t hashType;
 };
 
diff --git a/item_updater.hpp b/item_updater.hpp
index 0aa3a5d..40cdcd2 100644
--- a/item_updater.hpp
+++ b/item_updater.hpp
@@ -35,7 +35,7 @@
 constexpr static auto volatilePath = "/org/open_power/control/volatile";
 
 /** @class GardReset
- *  @brief OpenBMC GARD factory reset implementation.
+ *  @brief OpenBMC GUARD factory reset implementation.
  *  @details An implementation of xyz.openbmc_project.Common.FactoryReset under
  *  /org/openpower/control/gard.
  */
@@ -56,7 +56,7 @@
     virtual ~GardReset() {}
 
     /**
-     * @brief GARD factory reset - clears the PNOR GARD partition.
+     * @brief GUARD factory reset - clears the PNOR GUARD partition.
      */
     virtual void reset() = 0;
 
diff --git a/mmc/item_updater_mmc.hpp b/mmc/item_updater_mmc.hpp
index 47ebd5d..2ef77e4 100644
--- a/mmc/item_updater_mmc.hpp
+++ b/mmc/item_updater_mmc.hpp
@@ -16,7 +16,7 @@
     virtual ~GardResetMMC() = default;
 
     /**
-     * @brief GARD factory reset - clears the PNOR GARD partition.
+     * @brief GUARD factory reset - clears the PNOR GUARD partition.
      */
     void reset() override;
 
diff --git a/msl_verify.cpp b/msl_verify.cpp
index 316c482..e5f82a9 100644
--- a/msl_verify.cpp
+++ b/msl_verify.cpp
@@ -195,7 +195,7 @@
     if (rc < 0)
     {
         log<level::ERR>(
-            "PNOR Mininum Ship Level NOT met",
+            "PNOR Minimum Ship Level NOT met",
             entry("MIN_VERSION=%s", tmpMin.c_str()),
             entry("ACTUAL_VERSION=%s", actual.c_str()),
             entry("VERSION_PURPOSE=%s",
diff --git a/static/activation_static.cpp b/static/activation_static.cpp
index d4f8329..a4cc6d1 100644
--- a/static/activation_static.cpp
+++ b/static/activation_static.cpp
@@ -156,7 +156,7 @@
     // Create updateable association as this
     // can be re-programmed.
     parent.createUpdateableAssociation(path);
-    // Create functional assocaition
+    // Create functional association
     parent.updateFunctionalAssociation(versionId);
 
     Activation::activation(Activation::Activations::Active);
diff --git a/static/item_updater_static.cpp b/static/item_updater_static.cpp
index 630e8ae..24873fd 100644
--- a/static/item_updater_static.cpp
+++ b/static/item_updater_static.cpp
@@ -162,7 +162,7 @@
             {
                 continue;
             }
-            line = line.substr(pos);           // Skiping "ID=xx"
+            line = line.substr(pos);           // Skipping "ID=xx"
 
             pos = line.find_first_not_of(' '); // After spaces
             if (pos == std::string::npos)
@@ -359,7 +359,7 @@
 
 void GardResetStatic::reset()
 {
-    // Clear gard partition
+    // Clear guard partition
     utils::hiomapdSuspend(bus);
 
     utils::pnorClear("GUARD");
diff --git a/static/item_updater_static.hpp b/static/item_updater_static.hpp
index 6fc39a0..f992994 100644
--- a/static/item_updater_static.hpp
+++ b/static/item_updater_static.hpp
@@ -19,7 +19,7 @@
 
   protected:
     /**
-     * @brief GARD factory reset - clears the PNOR GARD partition.
+     * @brief GUARD factory reset - clears the PNOR GUARD partition.
      */
     void reset() override;
 };
diff --git a/ubi/item_updater_ubi.cpp b/ubi/item_updater_ubi.cpp
index 3fc64ae..13623d6 100644
--- a/ubi/item_updater_ubi.cpp
+++ b/ubi/item_updater_ubi.cpp
@@ -419,7 +419,7 @@
 
 void GardResetUbi::reset()
 {
-    // The GARD partition is currently misspelled "GUARD." This file path will
+    // The GUARD partition is currently misspelled "GUARD." This file path will
     // need to be updated in the future.
     auto path = std::filesystem::path(PNOR_PRSV_ACTIVE_PATH);
     path /= "GUARD";
diff --git a/ubi/item_updater_ubi.hpp b/ubi/item_updater_ubi.hpp
index f462bdf..ba80a83 100644
--- a/ubi/item_updater_ubi.hpp
+++ b/ubi/item_updater_ubi.hpp
@@ -19,7 +19,7 @@
 
   protected:
     /**
-     * @brief GARD factory reset - clears the PNOR GARD partition.
+     * @brief GUARD factory reset - clears the PNOR GUARD partition.
      */
     void reset() override;
 };
diff --git a/utils.hpp b/utils.hpp
index 313db32..410b42a 100644
--- a/utils.hpp
+++ b/utils.hpp
@@ -1,7 +1,7 @@
 #pragma once
 
 // With OpenSSL 1.1.0, some functions were deprecated. Need to abstract them
-// to make the code backward compatible with older OpenSSL veresions.
+// to make the code backward compatible with older OpenSSL versions.
 // Reference: https://wiki.openssl.org/index.php/OpenSSL_1.1.0_Changes
 #if OPENSSL_VERSION_NUMBER < 0x10100000L
 
