mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-24 21:54:01 +00:00
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>
This commit is contained in:
parent
53e22bf38c
commit
f514d8f23d
6 changed files with 26 additions and 14 deletions
|
@ -75,18 +75,29 @@ def BuildElfTestFiles(target_dir):
|
|||
|
||||
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 @@ class TestElf(unittest.TestCase):
|
|||
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__':
|
||||
|
|
|
@ -152,8 +152,8 @@ class TestFunctional(unittest.TestCase):
|
|||
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 @@ class TestFunctional(unittest.TestCase):
|
|||
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 @@ class TestFunctional(unittest.TestCase):
|
|||
|
||||
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 @@ class TestFunctional(unittest.TestCase):
|
|||
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 +
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Binary file not shown.
|
@ -9,9 +9,10 @@ ENTRY(_start)
|
|||
|
||||
SECTIONS
|
||||
{
|
||||
. = 0xfffffdf0;
|
||||
. = 0xfffffe14;
|
||||
_start = .;
|
||||
.ucode : {
|
||||
*(.ucode)
|
||||
}
|
||||
.interp : { *(.interp*) }
|
||||
}
|
||||
|
|
|
@ -125,7 +125,7 @@ def GetInputFilename(fname):
|
|||
Returns:
|
||||
The full path of the filename, within the input directory
|
||||
"""
|
||||
if not indir:
|
||||
if not indir or fname[:1] == '/':
|
||||
return fname
|
||||
for dirname in indir:
|
||||
pathname = os.path.join(dirname, fname)
|
||||
|
|
Loading…
Reference in a new issue