aboutsummaryrefslogtreecommitdiff
path: root/tools/binman/fmap_util.py
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2019-07-11 18:10:11 -0400
committerTom Rini <trini@konsulko.com>2019-07-11 18:10:11 -0400
commita9758ece08bceb60634145c2126582e5d282bd09 (patch)
treeb391039a3bc2aa8222a14b3e960541296d585878 /tools/binman/fmap_util.py
parent68deea2308141c26707da44654b273d7b072ab0d (diff)
parent7ea33579576d2bcd19df76bd8769e7ab3b4a169b (diff)
downloadu-boot-a9758ece08bceb60634145c2126582e5d282bd09.zip
u-boot-a9758ece08bceb60634145c2126582e5d282bd09.tar.gz
u-boot-a9758ece08bceb60634145c2126582e5d282bd09.tar.bz2
Merge tag 'dm-pull-9jul19-take2' of https://gitlab.denx.de/u-boot/custodians/u-boot-dm
- Sandbox improvements including .dts refactor - Minor tracing and PCI improvements - Various other minor fixes - Conversion of patman, dtoc and binman to support Python 3
Diffstat (limited to 'tools/binman/fmap_util.py')
-rw-r--r--tools/binman/fmap_util.py12
1 files changed, 9 insertions, 3 deletions
diff --git a/tools/binman/fmap_util.py b/tools/binman/fmap_util.py
index be3cbee..d0f956b 100644
--- a/tools/binman/fmap_util.py
+++ b/tools/binman/fmap_util.py
@@ -8,9 +8,12 @@
import collections
import struct
+import sys
+
+import tools
# constants imported from lib/fmap.h
-FMAP_SIGNATURE = '__FMAP__'
+FMAP_SIGNATURE = b'__FMAP__'
FMAP_VER_MAJOR = 1
FMAP_VER_MINOR = 0
FMAP_STRLEN = 32
@@ -50,6 +53,8 @@ FmapArea = collections.namedtuple('FmapArea', FMAP_AREA_NAMES)
def NameToFmap(name):
+ if type(name) == bytes and sys.version_info[0] >= 3:
+ name = name.decode('utf-8') # pragma: no cover (for Python 2)
return name.replace('\0', '').replace('-', '_').upper()
def ConvertName(field_names, fields):
@@ -65,7 +70,7 @@ def ConvertName(field_names, fields):
value: value of that field (string for the ones we support)
"""
name_index = field_names.index('name')
- fields[name_index] = NameToFmap(fields[name_index])
+ fields[name_index] = tools.ToBytes(NameToFmap(fields[name_index]))
def DecodeFmap(data):
"""Decode a flashmap into a header and list of areas
@@ -106,7 +111,8 @@ def EncodeFmap(image_size, name, areas):
ConvertName(names, params)
return struct.pack(fmt, *params)
- values = FmapHeader(FMAP_SIGNATURE, 1, 0, 0, image_size, name, len(areas))
+ values = FmapHeader(FMAP_SIGNATURE, 1, 0, 0, image_size,
+ tools.FromUnicode(name), len(areas))
blob = _FormatBlob(FMAP_HEADER_FORMAT, FMAP_HEADER_NAMES, values)
for area in areas:
blob += _FormatBlob(FMAP_AREA_FORMAT, FMAP_AREA_NAMES, area)