diff --git a/lib/code_update_utils.robot b/lib/code_update_utils.robot
new file mode 100644
index 0000000..44eaa1f
--- /dev/null
+++ b/lib/code_update_utils.robot
@@ -0,0 +1,60 @@
+*** Settings ***
+Documentation  BMC and PNOR update utilities keywords.
+
+Resource    ../lib/rest_client.robot
+
+*** Keywords ***
+
+Get Software Objects
+    [Documentation]  Get the host software objects and return as a list.
+    [Arguments]  ${version_type}=${VERSION_PURPOSE_HOST}
+
+    # Description of argument(s):
+    # version_type  Either BMC or host version purpose.
+    #               By default host version purpose string.
+    #  (e.g. "xyz.openbmc_project.Software.Version.VersionPurpose.BMC"
+    #        "xyz.openbmc_project.Software.Version.VersionPurpose.Host").
+
+    # Example:
+    # "data": [
+    #      "/xyz/openbmc_project/software/f3b29aa8",
+    #      "/xyz/openbmc_project/software/e49bc78e",
+    # ],
+    # Iterate the list and return the host object name path list.
+
+    ${host_list}=  Create List
+    ${sw_list}=  Read Properties  ${SOFTWARE_VERSION_URI}
+
+    :FOR  ${index}  IN  @{sw_list}
+    \  ${attr_purpose}=  Read Attribute  ${index}  Purpose  quiet=${1}
+    \  Continue For Loop If  '${attr_purpose}' != '${version_type}'
+    \  Append To List  ${host_list}  ${index}
+
+    [return]  ${host_list}
+
+
+Get Host Software Property
+    [Documentation]  Return a dictionary of host software properties.
+    [Arguments]  ${host_object}
+
+    # Description of argument(s):
+    # host_object  Host software object path.
+    #             (e.g. "/xyz/openbmc_project/software/f3b29aa8").
+
+    ${sw_attributes}=  Read Properties  ${host_object}
+    [return]  ${sw_attributes}
+
+
+Set Host Software Property
+    [Documentation]  Set the host software properties of a given object.
+    [Arguments]  ${host_object}  ${sw_attribute}  ${data}
+
+    # Description of argument(s):
+    # host_object   Host software object name.
+    # sw_attribute  Host software attribute name.
+    #               (e.g. "Activation", "Priority", "RequestedActivation" etc).
+    # data          Value to be written.
+
+    ${args}=  Create Dictionary  data=${data}
+    Write Attribute  ${host_object}  ${sw_attribute}  data=${args}
+
