mirror of
https://github.com/brain-hackers/u-boot-brain
synced 2024-09-19 19:23:21 +09:00
2250ee6ee6
At present binman has a single entry type for the 16-bit code code needed to start up an x86 processor. This entry is intended to include both the reset vector itself as well as the code to move to 32-bit mode. However this is not very flexible since in some cases other data needs to be included at the top of the SPI flash, in between these two pieces. For example Intel requires that a FIT (Firmware Image Table) pointer be placed 0x40 bytes before the end of the ROM. To deal with this, add a new reset entry for just the reset vector. A subsequent change will adjust the existing 'start16' entry. Signed-off-by: Simon Glass <sjg@chromium.org>
30 lines
1007 B
Python
30 lines
1007 B
Python
# SPDX-License-Identifier: GPL-2.0+
|
|
# Copyright (c) 2016 Google, Inc
|
|
# Written by Simon Glass <sjg@chromium.org>
|
|
#
|
|
# Entry-type module for the 16-bit x86 reset code for U-Boot
|
|
#
|
|
|
|
from entry import Entry
|
|
from blob import Entry_blob
|
|
|
|
class Entry_x86_reset16(Entry_blob):
|
|
"""x86 16-bit reset code for U-Boot
|
|
|
|
Properties / Entry arguments:
|
|
- filename: Filename of u-boot-x86-reset16.bin (default
|
|
'u-boot-x86-reset16.bin')
|
|
|
|
x86 CPUs start up in 16-bit mode, even if they are 32-bit CPUs. This code
|
|
must be placed at a particular address. This entry holds that code. It is
|
|
typically placed at offset CONFIG_RESET_VEC_LOC. The code is responsible
|
|
for jumping to the x86-start16 code, which continues execution.
|
|
|
|
For 64-bit U-Boot, the 'x86_reset16_spl' entry type is used instead.
|
|
"""
|
|
def __init__(self, section, etype, node):
|
|
Entry_blob.__init__(self, section, etype, node)
|
|
|
|
def GetDefaultFilename(self):
|
|
return 'u-boot-x86-reset16.bin'
|