diff --git a/tools/binman/control.py b/tools/binman/control.py
index de9f29e..8700f48 100644
--- a/tools/binman/control.py
+++ b/tools/binman/control.py
@@ -231,7 +231,7 @@
             image.AddMissingProperties()
         image.ProcessFdt(dtb)
 
-    for dtb_item in state.GetFdts():
+    for dtb_item in state.GetAllFdts():
         dtb_item.Sync(auto_resize=True)
         dtb_item.Pack()
         dtb_item.Flush()
@@ -278,7 +278,7 @@
         image.SetImagePos()
         if update_fdt:
             image.SetCalculatedProperties()
-            for dtb_item in state.GetFdts():
+            for dtb_item in state.GetAllFdts():
                 dtb_item.Sync()
         sizes_ok = image.ProcessEntryContents()
         if sizes_ok:
@@ -355,7 +355,7 @@
                 ProcessImage(image, args.update_fdt, args.map)
 
             # Write the updated FDTs to our output files
-            for dtb_item in state.GetFdts():
+            for dtb_item in state.GetAllFdts():
                 tools.WriteFile(dtb_item._fname, dtb_item.GetContents())
 
         finally:
