x86_start16_spl.py 1.1 KB

12345678910111213141516171819202122232425262728293031
  1. # SPDX-License-Identifier: GPL-2.0+
  2. # Copyright (c) 2016 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 SPL
  6. #
  7. from binman.entry import Entry
  8. from binman.etype.blob import Entry_blob
  9. class Entry_x86_start16_spl(Entry_blob):
  10. """x86 16-bit start-up code for SPL
  11. Properties / Entry arguments:
  12. - filename: Filename of spl/u-boot-x86-start16-spl.bin (default
  13. 'spl/u-boot-x86-start16-spl.bin')
  14. x86 CPUs start up in 16-bit mode, even if they are 32-bit CPUs. This code
  15. must be placed in the top 64KB of the ROM. The reset code jumps to it. This
  16. entry holds that code. It is typically placed at offset
  17. CONFIG_SYS_X86_START16. The code is responsible for changing to 32-bit mode
  18. and jumping to U-Boot's entry point, which requires 32-bit mode (for 32-bit
  19. U-Boot).
  20. For 32-bit U-Boot, the 'x86-start16' entry type is used instead.
  21. """
  22. def __init__(self, section, etype, node):
  23. super().__init__(section, etype, node)
  24. def GetDefaultFilename(self):
  25. return 'spl/u-boot-x86-start16-spl.bin'