diff --git a/leiyu/obmc-utils/sensor_yaml_config.py b/leiyu/obmc-utils/sensor_yaml_config.py
index 38f45bd..f68e132 100755
--- a/leiyu/obmc-utils/sensor_yaml_config.py
+++ b/leiyu/obmc-utils/sensor_yaml_config.py
@@ -109,10 +109,14 @@
     return yaml.load(open(f))
 
 
-def saveYaml(y, f):
-    noaliasDumper = yaml.dumper.SafeDumper
-    noaliasDumper.ignore_aliases = lambda self, data: True
-    yaml.dump(y, open(f, "w"), default_flow_style=False, Dumper=noaliasDumper)
+def saveYaml(y, f, safe=True):
+    if safe:
+        noaliasDumper = yaml.dumper.SafeDumper
+        noaliasDumper.ignore_aliases = lambda self, data: True
+        yaml.dump(y, open(f, "w"), default_flow_style=False,
+                  Dumper=noaliasDumper)
+    else:
+        yaml.dump(y, open(f, "w"))
 
 
 def getEntityId(p, i):
@@ -206,6 +210,8 @@
                         help='The .rpt file generated by op-build')
     parser.add_argument('-e', '--entity', action='store_true',
                         help='Fix entities')
+    parser.add_argument('-g', '--generate', action='store_true',
+                        help='Generate maps for entityID and sensorNamePattern')
 
     args = parser.parse_args()
     args = vars(args)
@@ -244,7 +250,20 @@
                         print('Added sensor id:', s.sensorId,
                               ', path:', y[s.sensorId]['path'])
 
-    saveYaml(y, args['output'])
+    if args['generate']:
+        m = {}
+        for i in y:
+            path = y[i]['path']
+            intfs = tuple(sorted(list(y[i]['interfaces'].keys())))
+            entityId = y[i]['entityID']
+            sensorNamePattern = y[i]['sensorNamePattern']
+            m[(path, intfs)] = {'entityID': entityId,
+                                'sensorNamePattern': sensorNamePattern}
+        y = m
+
+    safe = False if args['generate'] else True
+
+    saveYaml(y, args['output'], safe)
 
 
 if __name__ == "__main__":
