diff --git a/data/variables.py b/data/variables.py
index 5da776e..95a5056 100755
--- a/data/variables.py
+++ b/data/variables.py
@@ -157,9 +157,10 @@
 REDFISH_LDAP_CERTIFICATE_URI = REDFISH_BASE_URI + REDFISH_LDAP_CERTIFICATE
 REDFISH_CA_CERTIFICATE = 'Managers/bmc/Truststore/Certificates'
 REDFISH_CA_CERTIFICATE_URI = REDFISH_BASE_URI + REDFISH_CA_CERTIFICATE
-REDFISH_CHASSIS_THERMAL = 'Chassis/chassis/Thermal/'
+REDFISH_CHASSIS_URI = REDFISH_BASE_URI + 'Chassis/'
+REDFISH_CHASSIS_THERMAL = REDFISH_CHASSIS_URI + 'chassis/Thermal/'
 REDFISH_CHASSIS_THERMAL_URI = REDFISH_BASE_URI + REDFISH_CHASSIS_THERMAL
-REDFISH_CHASSIS_POWER = 'Chassis/chassis/Power/'
+REDFISH_CHASSIS_POWER = REDFISH_CHASSIS_URI + 'chassis/Power/'
 REDFISH_CHASSIS_POWER_URI = REDFISH_BASE_URI + REDFISH_CHASSIS_POWER
 
 # Boot options and URI variables.
diff --git a/redfish/systems/test_systems_inventory.robot b/redfish/systems/test_systems_inventory.robot
index cce5699..8988d34 100755
--- a/redfish/systems/test_systems_inventory.robot
+++ b/redfish/systems/test_systems_inventory.robot
@@ -15,6 +15,8 @@
 # The passing criteria.  Must have at least this many.
 ${min_num_dimms}   2
 ${min_num_cpus}    1
+${min_num_cores}   18
+${min_num_powersupplies}  1
 
 
 *** Test Cases ***
@@ -26,6 +28,37 @@
     Verify FRU Inventory Minimums  Processors  ${min_num_cpus}
 
 
+Get Available CPU Cores And Verify
+    [Documentation]  Get the total number of cores in the system and
+    ...              verify that it is at or above the minimum.
+    [Tags]  Get_Available_CPU_Cores_And_Verify
+
+    ${total_num_cores}=  Set Variable  ${0}
+
+    ${processor_uris}=
+    ...  Redfish_Utils.Get Member List  ${SYSTEM_BASE_URI}Processors
+    # Example of processor_uris:
+    # /redfish/v1/Systems/system/Processors/cpu0
+    # /redfish/v1/Systems/system/Processors/cpu1
+
+    :FOR  ${processor}  IN  @{processor_uris}
+        # If the status of the processor is "OK" and "Enabled", get its number
+        # of cores.
+        ${status}=  Redfish.Get Attribute  ${processor}  Status
+        ${processor_cores}=  Run Keyword If
+        ...  "${status['Health']}" == "OK" and "${status['State']}" == "Enabled"
+        ...     Redfish.Get Attribute  ${processor}  TotalCores
+        ...  ELSE
+        ...     Set Variable  ${0}
+        # Add the number of processor_cores to the total.
+        ${total_num_cores}=  Evaluate  $total_num_cores + $processor_cores
+    END
+
+    Rprint Vars  total_num_cores
+    Run Keyword If  ${total_num_cores} < ${min_num_cores}
+    ...  Fail  Too few CPU cores found.
+
+
 Get Memory Inventory Via Redfish And Verify
     [Documentation]  Get the number of DIMMs that are functional and enabled.
     [Tags]  Get_Memory_Inventory_Via_Redfish_And_Verify
@@ -33,9 +66,9 @@
     Verify FRU Inventory Minimums  Memory  ${min_num_dimms}
 
 
-Get Serial And Verify Populated
-    [Documentation]  Check that the SerialNumber is non-blank.
-    [Tags]  Get_Serial_And_Verify_Populated
+Get System Serial And Verify Populated
+    [Documentation]  Check that the System SerialNumber is non-blank.
+    [Tags]  Get_System_Serial_And_Verify_Populated
 
     ${serial_number}=  Redfish.Get Attribute  ${SYSTEM_BASE_URI}  SerialNumber
     Rvalid Value  serial_number
@@ -51,6 +84,44 @@
     Rprint Vars  model
 
 
+Get Available Power Supplies And Verify
+    [Documentation]  Get the number of functional power supplies and
+    ...              verify that it is at or above the minimum.
+    [Tags]  Get_Available_Power_Supplies_And_Verify
+
+    ${total_num_supplies}=  Set Variable  ${0}
+
+    ${chassis_uris}=  Redfish_Utils.Get Member List  ${REDFISH_CHASSIS_URI}
+    # Example of chassis_uris:
+    # /redfish/v1/Chassis/chasis
+    # /redfish/v1/Chassis/motherboard
+    # /redfish/v1/Chassis/powersupply0
+
+    :FOR  ${chassis_uri}  IN  @{chassis_uris}
+        ${is_supply}=  Evaluate  "powersupply" in $chassis_uri
+        ${is_functional}=  Run Keyword If  ${is_supply}
+        ...    Check If Power Supply Is Functional  ${chassis_uri}
+        ...  ELSE
+        ...    Set Variable  ${0}
+        ${total_num_supplies}=  Evaluate  $total_num_supplies + $is_functional
+    END
+
+    Rprint Vars  total_num_supplies
+
+    Run Keyword If  ${total_num_supplies} < ${min_num_powersupplies}
+    ...  Fail  Too few power supplies found.
+
+
+Get Motherboard Serial And Verify Populated
+    [Documentation]  Check that the Motherboard SerialNumber is non-blank.
+    [Tags]  Get_Motherboard_Serial_And_Verify_Populated
+
+    ${serial_number}=  Redfish.Get Attribute
+    ...  ${REDFISH_CHASSIS_URI}motherboard  SerialNumber
+    Rvalid Value  serial_number
+    Rprint Vars  serial_number
+
+
 *** Keywords ***
 
 
@@ -71,6 +142,29 @@
     Fail  Too few "${fru_type}" FRUs found, found only ${num_valid_frus}.
 
 
+Check If Power Supply Is Functional
+    [Documentation]  Return 1 if a power supply is OK and either
+    ...   Enabled or StandbyOffline.  Return 0 otherwise.
+    [Arguments]  ${chassis_uri}
+
+    # Description of Argument(s):
+    # chassis_uri    The Redfish uri of a power supply
+    #                (e.g. "/redfish/v1/Chassis/powersupply0").
+
+    ${status}=  Redfish.Get Attribute  ${chassis_uri}  Status
+
+    ${state_check}=  Set Variable  "${status['Health']}" == "OK" and
+    ${state_check}=  Catenate  ${state_check}  ("${status['State']}" == "StandbyOffline" or
+    ${state_check}=  Catenate  ${state_check}  "${status['State']}" == "Enabled")
+
+    ${is_functional}=  Run Keyword If  ${state_check}
+    ...     Set Variable  ${1}
+    ...  ELSE
+    ...     Set Variable  ${0}
+
+    [Return]  ${is_functional}
+
+
 Suite Teardown Execution
     [Documentation]  Do the post suite teardown.
 
