diff --git a/tools/sst-compare-redfish-os.py b/tools/sst-compare-redfish-os.py
index 6318550..96d0ea0 100755
--- a/tools/sst-compare-redfish-os.py
+++ b/tools/sst-compare-redfish-os.py
@@ -25,6 +25,16 @@
 success = True
 
 
+def filter_powerdomains(sst_data):
+    # For TPMI-based CPUs, we only care about powerdomain-0
+    cpus = list(sst_data.keys())
+    for proc in cpus:
+        match = re.search("powerdomain-(\\d+)", proc)
+        if not match or match.group(1) == "0":
+            continue
+        del sst_data[proc]
+
+
 def get_linux_output():
     cmd = [
         "/usr/bin/env",
@@ -37,6 +47,7 @@
     process = subprocess.run(cmd, capture_output=True, text=True)
     process.check_returncode()
     result = json.loads(process.stderr)
+    filter_powerdomains(result)
 
     global linux_cpu_map
     linux_cpu_map = dict()
@@ -57,6 +68,7 @@
     ]
     process = subprocess.run(cmd, capture_output=True, text=True)
     current_level = json.loads(process.stderr)
+    filter_powerdomains(current_level)
 
     for proc, data in current_level.items():
         result[proc].update(data)
@@ -149,7 +161,10 @@
         (x["ActiveCoreCount"], x["MaxSpeedMHz"])
         for x in redfish_config["TurboProfile"]
     ]
-    linux_turbo = linux_config["turbo-ratio-limits-sse"]
+    linux_turbo = (
+        linux_config.get("turbo-ratio-limits-sse")
+        or linux_config["turbo-ratio-limits-level-0"]
+    )
     exp_turbo = []
     for bucket_key in sorted(linux_turbo.keys()):
         bucket = linux_turbo[bucket_key]
