binman: Add support for building x86 images with FSP/CMC
Add support for two more from the inexhaustible supply of x86 binary blob types. Signed-off-by: Simon Glass <sjg@chromium.org> Tested-by: Bin Meng <bmeng.cn@gmail.com>
This commit is contained in:
parent
75db0860b1
commit
da22909073
17
tools/binman/etype/intel_cmc.py
Normal file
17
tools/binman/etype/intel_cmc.py
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
# Copyright (c) 2016 Google, Inc
|
||||||
|
# Written by Simon Glass <sjg@chromium.org>
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: GPL-2.0+
|
||||||
|
#
|
||||||
|
# Entry-type module for Intel Chip Microcode binary blob
|
||||||
|
#
|
||||||
|
|
||||||
|
from entry import Entry
|
||||||
|
from blob import Entry_blob
|
||||||
|
|
||||||
|
class Entry_intel_cmc(Entry_blob):
|
||||||
|
def __init__(self, image, etype, node):
|
||||||
|
Entry_blob.__init__(self, image, etype, node)
|
||||||
|
|
||||||
|
def GetDefaultFilename(self):
|
||||||
|
return 'cmc.bin'
|
17
tools/binman/etype/intel_fsp.py
Normal file
17
tools/binman/etype/intel_fsp.py
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
# Copyright (c) 2016 Google, Inc
|
||||||
|
# Written by Simon Glass <sjg@chromium.org>
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: GPL-2.0+
|
||||||
|
#
|
||||||
|
# Entry-type module for Intel Firmware Support Package binary blob
|
||||||
|
#
|
||||||
|
|
||||||
|
from entry import Entry
|
||||||
|
from blob import Entry_blob
|
||||||
|
|
||||||
|
class Entry_intel_fsp(Entry_blob):
|
||||||
|
def __init__(self, image, etype, node):
|
||||||
|
Entry_blob.__init__(self, image, etype, node)
|
||||||
|
|
||||||
|
def GetDefaultFilename(self):
|
||||||
|
return 'fsp.bin'
|
@ -36,6 +36,8 @@ VGA_DATA = 'vga'
|
|||||||
U_BOOT_DTB_DATA = 'udtb'
|
U_BOOT_DTB_DATA = 'udtb'
|
||||||
X86_START16_DATA = 'start16'
|
X86_START16_DATA = 'start16'
|
||||||
U_BOOT_NODTB_DATA = 'nodtb with microcode pointer somewhere in here'
|
U_BOOT_NODTB_DATA = 'nodtb with microcode pointer somewhere in here'
|
||||||
|
FSP_DATA = 'fsp'
|
||||||
|
CMC_DATA = 'cmc'
|
||||||
|
|
||||||
class TestFunctional(unittest.TestCase):
|
class TestFunctional(unittest.TestCase):
|
||||||
"""Functional tests for binman
|
"""Functional tests for binman
|
||||||
@ -70,6 +72,8 @@ class TestFunctional(unittest.TestCase):
|
|||||||
TestFunctional._MakeInputFile('u-boot.dtb', U_BOOT_DTB_DATA)
|
TestFunctional._MakeInputFile('u-boot.dtb', U_BOOT_DTB_DATA)
|
||||||
TestFunctional._MakeInputFile('u-boot-x86-16bit.bin', X86_START16_DATA)
|
TestFunctional._MakeInputFile('u-boot-x86-16bit.bin', X86_START16_DATA)
|
||||||
TestFunctional._MakeInputFile('u-boot-nodtb.bin', U_BOOT_NODTB_DATA)
|
TestFunctional._MakeInputFile('u-boot-nodtb.bin', U_BOOT_NODTB_DATA)
|
||||||
|
TestFunctional._MakeInputFile('fsp.bin', FSP_DATA)
|
||||||
|
TestFunctional._MakeInputFile('cmc.bin', CMC_DATA)
|
||||||
self._output_setup = False
|
self._output_setup = False
|
||||||
|
|
||||||
# ELF file with a '_dt_ucode_base_size' symbol
|
# ELF file with a '_dt_ucode_base_size' symbol
|
||||||
@ -806,3 +810,13 @@ class TestFunctional(unittest.TestCase):
|
|||||||
self._DoReadFile('41_unknown_pos_size.dts', True)
|
self._DoReadFile('41_unknown_pos_size.dts', True)
|
||||||
self.assertIn("Image '/binman': Unable to set pos/size for unknown "
|
self.assertIn("Image '/binman': Unable to set pos/size for unknown "
|
||||||
"entry 'invalid-entry'", str(e.exception))
|
"entry 'invalid-entry'", str(e.exception))
|
||||||
|
|
||||||
|
def testPackFsp(self):
|
||||||
|
"""Test that an image with a FSP binary can be created"""
|
||||||
|
data = self._DoReadFile('42_intel-fsp.dts')
|
||||||
|
self.assertEqual(FSP_DATA, data[:len(FSP_DATA)])
|
||||||
|
|
||||||
|
def testPackCmc(self):
|
||||||
|
"""Test that an image with a FSP binary can be created"""
|
||||||
|
data = self._DoReadFile('43_intel-cmc.dts')
|
||||||
|
self.assertEqual(CMC_DATA, data[:len(CMC_DATA)])
|
||||||
|
13
tools/binman/test/42_intel-fsp.dts
Normal file
13
tools/binman/test/42_intel-fsp.dts
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
/dts-v1/;
|
||||||
|
|
||||||
|
/ {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
|
||||||
|
binman {
|
||||||
|
size = <16>;
|
||||||
|
|
||||||
|
intel-fsp {
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
13
tools/binman/test/43_intel-cmc.dts
Normal file
13
tools/binman/test/43_intel-cmc.dts
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
/dts-v1/;
|
||||||
|
|
||||||
|
/ {
|
||||||
|
#address-cells = <1>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
|
||||||
|
binman {
|
||||||
|
size = <16>;
|
||||||
|
|
||||||
|
intel-cmc {
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
Loading…
Reference in New Issue
Block a user