At present the control module has state information in it, since it is the primary user of this. But it is a bit odd to have entries and other modules importing control to obtain this information. It seems better to have a dedicated state module, which control can use as well. Create a new module using code from control and update other modules to use it. Signed-off-by: Simon Glass <sjg@chromium.org>lime2-spi
parent
6c234bfbf7
commit
c55a50f558
@ -0,0 +1,77 @@ |
||||
# SPDX-License-Identifier: GPL-2.0+ |
||||
# Copyright 2018 Google, Inc |
||||
# Written by Simon Glass <sjg@chromium.org> |
||||
# |
||||
# 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) |
Loading…
Reference in new issue