binman: Use the Makefile for u_boot_ucode_ptr
Remove this file from git and instead build it using the Makefile.
Update tools.GetInputFilename() to support reading files from an absolute
path, so that we can read the Elf test files easily. Also make sure that
the temp directory is report in ELF tests as this was commented out.
Signed-off-by: Simon Glass <sjg@chromium.org>
diff --git a/tools/binman/elf_test.py b/tools/binman/elf_test.py
index 736b931..403ca2b 100644
--- a/tools/binman/elf_test.py
+++ b/tools/binman/elf_test.py
@@ -75,18 +75,29 @@
class TestElf(unittest.TestCase):
@classmethod
- def setUpClass(self):
+ def setUpClass(cls):
+ cls._indir = tempfile.mkdtemp(prefix='elf.')
tools.SetInputDirs(['.'])
+ BuildElfTestFiles(cls._indir)
+
+ @classmethod
+ def tearDownClass(cls):
+ if cls._indir:
+ shutil.rmtree(cls._indir)
+
+ @classmethod
+ def ElfTestFile(cls, fname):
+ return os.path.join(cls._indir, fname)
def testAllSymbols(self):
"""Test that we can obtain a symbol from the ELF file"""
- fname = os.path.join(binman_dir, 'test', 'u_boot_ucode_ptr')
+ fname = self.ElfTestFile('u_boot_ucode_ptr')
syms = elf.GetSymbols(fname, [])
self.assertIn('.ucode', syms)
def testRegexSymbols(self):
"""Test that we can obtain from the ELF file by regular expression"""
- fname = os.path.join(binman_dir, 'test', 'u_boot_ucode_ptr')
+ fname = self.ElfTestFile('u_boot_ucode_ptr')
syms = elf.GetSymbols(fname, ['ucode'])
self.assertIn('.ucode', syms)
syms = elf.GetSymbols(fname, ['missing'])
@@ -201,7 +212,7 @@
self.assertEqual(elf.ElfInfo(b'\0\0' + expected[2:],
load, entry, len(expected)),
elf.DecodeElf(data, load + 2))
- #shutil.rmtree(outdir)
+ shutil.rmtree(outdir)
if __name__ == '__main__':
diff --git a/tools/binman/ftest.py b/tools/binman/ftest.py
index fad62bb..e7ade0f 100644
--- a/tools/binman/ftest.py
+++ b/tools/binman/ftest.py
@@ -152,8 +152,8 @@
elf_test.BuildElfTestFiles(cls._elf_testdir)
# ELF file with a '_dt_ucode_base_size' symbol
- with open(cls.TestFile('u_boot_ucode_ptr'), 'rb') as fd:
- TestFunctional._MakeInputFile('u-boot', fd.read())
+ TestFunctional._MakeInputFile('u-boot',
+ tools.ReadFile(cls.ElfTestFile('u_boot_ucode_ptr')))
# Intel flash descriptor file
with open(cls.TestFile('descriptor.bin'), 'rb') as fd:
@@ -489,7 +489,7 @@
Filename of ELF file to use as SPL
"""
# TODO(sjg@chromium.org): Drop this when all Elf files use ElfTestFile()
- if src_fname in ['bss_data']:
+ if src_fname in ['bss_data', 'u_boot_ucode_ptr']:
fname = cls.ElfTestFile(src_fname)
else:
fname = cls.TestFile(src_fname)
@@ -1101,8 +1101,8 @@
finally:
# Put the original file back
- with open(self.TestFile('u_boot_ucode_ptr'), 'rb') as fd:
- TestFunctional._MakeInputFile('u-boot', fd.read())
+ TestFunctional._MakeInputFile('u-boot',
+ tools.ReadFile(self.ElfTestFile('u_boot_ucode_ptr')))
def testMicrocodeNotInImage(self):
"""Test that microcode must be placed within the image"""
@@ -1818,8 +1818,8 @@
u-boot-tpl.dtb with the microcode removed
the microcode
"""
- with open(self.TestFile('u_boot_ucode_ptr'), 'rb') as fd:
- TestFunctional._MakeInputFile('tpl/u-boot-tpl', fd.read())
+ TestFunctional._MakeInputFile('tpl/u-boot-tpl',
+ tools.ReadFile(self.ElfTestFile('u_boot_ucode_ptr')))
first, pos_and_size = self._RunMicrocodeTest('093_x86_tpl_ucode.dts',
U_BOOT_TPL_NODTB_DATA)
self.assertEqual(b'tplnodtb with microc' + pos_and_size +
diff --git a/tools/binman/test/Makefile b/tools/binman/test/Makefile
index ce1c2f9..fd660ea 100644
--- a/tools/binman/test/Makefile
+++ b/tools/binman/test/Makefile
@@ -10,7 +10,7 @@
VPATH := $(SRC)
CFLAGS := -march=i386 -m32 -nostdlib -I ../../../include
-LDS_UCODE := -T u_boot_ucode_ptr.lds
+LDS_UCODE := -T $(SRC)u_boot_ucode_ptr.lds
LDS_BINMAN := -T u_boot_binman_syms.lds
LDS_BINMAN_BAD := -T u_boot_binman_syms_bad.lds
diff --git a/tools/binman/test/u_boot_ucode_ptr b/tools/binman/test/u_boot_ucode_ptr
deleted file mode 100755
index dbfb184..0000000
--- a/tools/binman/test/u_boot_ucode_ptr
+++ /dev/null
Binary files differ
diff --git a/tools/binman/test/u_boot_ucode_ptr.lds b/tools/binman/test/u_boot_ucode_ptr.lds
index 0cf9b76..cf4d1b8 100644
--- a/tools/binman/test/u_boot_ucode_ptr.lds
+++ b/tools/binman/test/u_boot_ucode_ptr.lds
@@ -9,9 +9,10 @@
SECTIONS
{
- . = 0xfffffdf0;
+ . = 0xfffffe14;
_start = .;
.ucode : {
*(.ucode)
}
+ .interp : { *(.interp*) }
}