diff --git a/lib/pel_utils.py b/lib/pel_utils.py
index cf7b39b..07e6d96 100644
--- a/lib/pel_utils.py
+++ b/lib/pel_utils.py
@@ -65,12 +65,24 @@
     return out_buf
 
 
-def get_pel_data_from_bmc():
+def get_pel_data_from_bmc(include_hidden_pels=False,
+                          include_informational_pels=False):
     r"""
     Returns PEL data from BMC else throws exception.
+
+    Description of arguments:
+    include_hidden_pels           True/False (default: False).
+                                  Set True to get hidden PELs else False.
+    include_informational_pels    True/False (default: False).
+                                  Set True to get informational PELs else False.
     """
     try:
-        pel_data = peltool(" -l")
+        pel_cmd = " -l"
+        if include_hidden_pels:
+            pel_cmd = pel_cmd + " -h"
+        if include_informational_pels:
+            pel_cmd = pel_cmd + " -f"
+        pel_data = peltool(pel_cmd)
         if not pel_data:
             print("No PEL data present in BMC ...")
     except Exception as e:
@@ -78,20 +90,22 @@
     return pel_data
 
 
-def fetch_all_pel_ids_for_src(src_id, severity):
+def fetch_all_pel_ids_for_src(src_id, severity, include_hidden_pels=False):
     r"""
     Fetch all PEL IDs for the input SRC ID based on the severity type
     in the list format.
 
     Description of arguments:
-    src_id      SRC ID (e.g. BC20E504).
-    severity    PEL severity (e.g. "Predictive Error"
-                                   "Recovered Error").
+    src_id                SRC ID (e.g. BCXXYYYY).
+    severity              PEL severity (e.g. "Predictive Error"
+                                             "Recovered Error").
+    include_hidden_pels   True/False (default: False).
+                          Set True to get hidden PELs else False.
     """
 
     try:
         src_pel_ids = []
-        pel_data = get_pel_data_from_bmc()
+        pel_data = get_pel_data_from_bmc(include_hidden_pels)
         pel_id_list = pel_data.keys()
         for pel_id in pel_id_list:
             # Check if required SRC ID with severity is present
@@ -167,13 +181,16 @@
     return True
 
 
-def fetch_all_src():
+def fetch_all_src(include_hidden_pels=False):
     r"""
     Fetch all SRC IDs from peltool in the list format.
+
+    include_hidden_pels       True/False (default: False).
+                              Set True to get hidden PELs else False.
     """
     try:
         src_id = []
-        pel_data = get_pel_data_from_bmc()
+        pel_data = get_pel_data_from_bmc(include_hidden_pels)
         if pel_data:
             pel_id_list = pel_data.keys()
             for pel_id in pel_id_list:
@@ -184,7 +201,7 @@
     return src_id
 
 
-def check_for_unexpected_src(unexpected_src_list=[]):
+def check_for_unexpected_src(unexpected_src_list=[], include_hidden_pels=False):
     r"""
     From the given unexpected SRC list, check if any unexpected SRC created
     on the BMC. Returns 0 if no SRC found else throws exception.
@@ -192,12 +209,15 @@
     Description of arguments:
     unexpected_src_list       Give unexpected SRCs in the list format.
                               e.g.: ["BBXXYYYY", "AAXXYYYY"].
+
+    include_hidden_pels       True/False (default: False).
+                              Set True to get hidden PELs else False.
     """
     try:
         unexpected_src_count = 0
         if not unexpected_src_list:
             print("Unexpected SRC list is empty.")
-        src_data = fetch_all_src()
+        src_data = fetch_all_src(include_hidden_pels)
         for src in unexpected_src_list:
             if src in src_data:
                 print("Found an unexpected SRC : " + src)
