Simon Glass | ba48258 | 2016-07-25 18:59:02 -0600 | [diff] [blame] | 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 | # Bring in either the normal fdt library (which relies on libfdt) or the |
| 10 | # fallback one (which uses fdtget and is slower). Both provide the same |
| 11 | # interface for this file to use. |
| 12 | try: |
Simon Glass | a06a34b | 2016-07-25 18:59:04 -0600 | [diff] [blame] | 13 | import fdt_normal |
Simon Glass | ba48258 | 2016-07-25 18:59:02 -0600 | [diff] [blame] | 14 | have_libfdt = True |
| 15 | except ImportError: |
| 16 | have_libfdt = False |
Simon Glass | a06a34b | 2016-07-25 18:59:04 -0600 | [diff] [blame] | 17 | import fdt_fallback |
Simon Glass | ba48258 | 2016-07-25 18:59:02 -0600 | [diff] [blame] | 18 | |
| 19 | def FdtScan(fname): |
| 20 | """Returns a new Fdt object from the implementation we are using""" |
Simon Glass | a06a34b | 2016-07-25 18:59:04 -0600 | [diff] [blame] | 21 | if have_libfdt: |
| 22 | dtb = fdt_normal.FdtNormal(fname) |
| 23 | else: |
| 24 | dtb = fdt_fallback.FdtFallback(fname) |
Simon Glass | ba48258 | 2016-07-25 18:59:02 -0600 | [diff] [blame] | 25 | dtb.Scan() |
| 26 | return dtb |