# SPDX-License-Identifier: GPL-2.0+ # Copyright 2018 Google, Inc # Written by Simon Glass # # Holds and modifies the state information held by binman # import re from sets import Set import os import tools # Records the device-tree files known to binman, keyed by filename (e.g. # 'u-boot-spl.dtb') fdt_files = {} # Arguments passed to binman to provide arguments to entries entry_args = {} def GetFdt(fname): """Get the Fdt object for a particular device-tree filename Binman keeps track of at least one device-tree file called u-boot.dtb but can also have others (e.g. for SPL). This function looks up the given filename and returns the associated Fdt object. Args: fname: Filename to look up (e.g. 'u-boot.dtb'). Returns: Fdt object associated with the filename """ return fdt_files[fname] def GetFdtPath(fname): """Get the full pathname of a particular Fdt object Similar to GetFdt() but returns the pathname associated with the Fdt. Args: fname: Filename to look up (e.g. 'u-boot.dtb'). Returns: Full path name to the associated Fdt """ return fdt_files[fname]._fname def SetEntryArgs(args): """Set the value of the entry args This sets up the entry_args dict which is used to supply entry arguments to entries. Args: args: List of entry arguments, each in the format "name=value" """ global entry_args entry_args = {} if args: for arg in args: m = re.match('([^=]*)=(.*)', arg) if not m: raise ValueError("Invalid entry arguemnt '%s'" % arg) entry_args[m.group(1)] = m.group(2) def GetEntryArg(name): """Get the value of an entry argument Args: name: Name of argument to retrieve Returns: String value of argument """ return entry_args.get(name)