]> git.ipfire.org Git - people/ms/u-boot.git/blob - tools/dtoc/fdt_select.py
Merge branch 'master' of git://git.denx.de/u-boot-net
[people/ms/u-boot.git] / tools / dtoc / fdt_select.py
1 #!/usr/bin/python
2 #
3 # Copyright (C) 2016 Google, Inc
4 # Written by Simon Glass <sjg@chromium.org>
5 #
6 # SPDX-License-Identifier: GPL-2.0+
7 #
8
9 import fdt_fallback
10
11 # Bring in either the normal fdt library (which relies on libfdt) or the
12 # fallback one (which uses fdtget and is slower). Both provide the same
13 # interface for this file to use.
14 try:
15 import fdt_normal
16 have_libfdt = True
17 except ImportError:
18 have_libfdt = False
19
20 force_fallback = False
21
22 def FdtScan(fname, _force_fallback=False):
23 """Returns a new Fdt object from the implementation we are using"""
24 if have_libfdt and not force_fallback and not _force_fallback:
25 dtb = fdt_normal.FdtNormal(fname)
26 else:
27 dtb = fdt_fallback.FdtFallback(fname)
28 dtb.Scan()
29 return dtb
30
31 def UseFallback(fallback):
32 global force_fallback
33
34 old_val = force_fallback
35 force_fallback = fallback
36 return old_val