]> git.sur5r.net Git - u-boot/commitdiff
dtoc: Add a way for tests to request the fallback library
authorSimon Glass <sjg@chromium.org>
Sun, 25 Sep 2016 21:52:19 +0000 (15:52 -0600)
committersjg <sjg@chromium.org>
Sun, 9 Oct 2016 15:30:32 +0000 (09:30 -0600)
We need to test both the normal (Python libfdt module) and fallback (fdtget)
implementations of the Fdt class. Add a way to select which implementation
to use.

Signed-off-by: Simon Glass <sjg@chromium.org>
tools/dtoc/fdt_select.py

index 18a36d88a0250cc79efc3b9a36e700b77b58b6bb..ea78c527fc1e0faa02d28420a7bb1dbe1175199c 100644 (file)
@@ -6,6 +6,8 @@
 # SPDX-License-Identifier:      GPL-2.0+
 #
 
+import fdt_fallback
+
 # Bring in either the normal fdt library (which relies on libfdt) or the
 # fallback one (which uses fdtget and is slower). Both provide the same
 # interface for this file to use.
@@ -14,13 +16,21 @@ try:
     have_libfdt = True
 except ImportError:
     have_libfdt = False
-    import fdt_fallback
 
-def FdtScan(fname):
+force_fallback = False
+
+def FdtScan(fname, _force_fallback=False):
     """Returns a new Fdt object from the implementation we are using"""
-    if have_libfdt:
+    if have_libfdt and not force_fallback and not _force_fallback:
         dtb = fdt_normal.FdtNormal(fname)
     else:
         dtb = fdt_fallback.FdtFallback(fname)
     dtb.Scan()
     return dtb
+
+def UseFallback(fallback):
+    global force_fallback
+
+    old_val = force_fallback
+    force_fallback = fallback
+    return old_val