1# SPDX-License-Identifier: GPL-2.0+
2# Copyright (c) 2018 Google, Inc
3# Written by Simon Glass <sjg@chromium.org>
4#
5# Entry-type module for the 16-bit x86 start-up code for U-Boot TPL
6#
7
8from binman.entry import Entry
9from binman.etype.blob import Entry_blob
10
11class Entry_x86_start16_tpl(Entry_blob):
12    """x86 16-bit start-up code for TPL
13
14    Properties / Entry arguments:
15        - filename: Filename of tpl/u-boot-x86-start16-tpl.bin (default
16            'tpl/u-boot-x86-start16-tpl.bin')
17
18    x86 CPUs start up in 16-bit mode, even if they are 32-bit CPUs. This code
19    must be placed in the top 64KB of the ROM. The reset code jumps to it. This
20    entry holds that code. It is typically placed at offset
21    CONFIG_SYS_X86_START16. The code is responsible for changing to 32-bit mode
22    and jumping to U-Boot's entry point, which requires 32-bit mode (for 32-bit
23    U-Boot).
24
25    If TPL is not being used, the 'x86-start16-spl or 'x86-start16' entry types
26    may be used instead.
27    """
28    def __init__(self, section, etype, node):
29        super().__init__(section, etype, node)
30
31    def GetDefaultFilename(self):
32        return 'tpl/u-boot-x86-start16-tpl.bin'
33