[U-Boot] [PATCH v2 03/12] dtoc: Add a way for tests to request the fallback library

Simon Glass sjg at chromium.org
Sun Sep 25 23:52:19 CEST 2016


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 at chromium.org>
---

Changes in v2:
- Add a new patch to allow testing of the fallback Fdt library

 tools/dtoc/fdt_select.py | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)

diff --git a/tools/dtoc/fdt_select.py b/tools/dtoc/fdt_select.py
index 18a36d8..ea78c52 100644
--- a/tools/dtoc/fdt_select.py
+++ b/tools/dtoc/fdt_select.py
@@ -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
-- 
2.8.0.rc3.226.g39d4020



More information about the U-Boot mailing list