mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2025-08-12 02:06:59 +02:00
dtoc: Add a way for tests to request the fallback library
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>
This commit is contained in:
parent
8828254cae
commit
3cb44ba80c
@ -6,6 +6,8 @@
|
|||||||
# SPDX-License-Identifier: GPL-2.0+
|
# SPDX-License-Identifier: GPL-2.0+
|
||||||
#
|
#
|
||||||
|
|
||||||
|
import fdt_fallback
|
||||||
|
|
||||||
# Bring in either the normal fdt library (which relies on libfdt) or the
|
# 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
|
# fallback one (which uses fdtget and is slower). Both provide the same
|
||||||
# interface for this file to use.
|
# interface for this file to use.
|
||||||
@ -14,13 +16,21 @@ try:
|
|||||||
have_libfdt = True
|
have_libfdt = True
|
||||||
except ImportError:
|
except ImportError:
|
||||||
have_libfdt = False
|
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"""
|
"""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)
|
dtb = fdt_normal.FdtNormal(fname)
|
||||||
else:
|
else:
|
||||||
dtb = fdt_fallback.FdtFallback(fname)
|
dtb = fdt_fallback.FdtFallback(fname)
|
||||||
dtb.Scan()
|
dtb.Scan()
|
||||||
return dtb
|
return dtb
|
||||||
|
|
||||||
|
def UseFallback(fallback):
|
||||||
|
global force_fallback
|
||||||
|
|
||||||
|
old_val = force_fallback
|
||||||
|
force_fallback = fallback
|
||||||
|
return old_val
|
||||||
|
Loading…
Reference in New Issue
Block a user