public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH v2 00/50] x86: Add support for booting from TPL
@ 2019-04-26  3:58 Simon Glass
  2019-04-26  3:58 ` [U-Boot] [PATCH v2 01/50] binman: Don't generate an error in 'text' entry constructor Simon Glass
                   ` (50 more replies)
  0 siblings, 51 replies; 113+ messages in thread
From: Simon Glass @ 2019-04-26  3:58 UTC (permalink / raw)
  To: u-boot

At present SPL is used on 64-bit platforms, to allow SPL to be built as
a 32-bit program and U-Boot proper to be built as 64-bit.

However it is useful to be able to use SPL on any x86 platform, where
U-Boot needs to be updated in the field. Then SPL can select which U-Boot
to run (A or B) and most of the code can be updated. Similarly, using TPL
allows both SPL and U-Boot to be updated. This is the best approach, since
it means that all of U-Boot proper as well as SPL (in particular SDRAM
init) can be updated in the field. This provides for the smallest possible
amount of read-only (non-updateable) code: just the TPL code.

This series contains a number of changes to allow x86 boards to use TPL,
SPL and U-Boot proper. As a test, it is enabled for samus with a new
chromebook_samus_tpl board.

Changes in v2:
- Update commit message to mention dropping the \n
- Update testSelectImage() to test in normal and verbose modes
- Update the commit message to explain the implications on aliases
- Add a better explanation of the logic change, in the commit message
- Fix map output when section offset is not set (make it 0)
- Add a test for sections with offsets
- Update the comment in fsp_cap.S too
- Update commit message to make it clear this patch is just for broadwell
- Bring in sdram_console_tx_byte() to allow debugging
- Add xorl to TPL code also
- Update comments in start_from_tpl to correctly explain SPL state
- Add new patch to separate out the EFI code in sysreset
- Add new patch to add an ioctl to read power-management info
- Add new patch to implement PCH_REQ_PMBASE_INFO on ivybridge
- Add new patch to implement PCH_REQ_PMBASE_INFO on broadwell
- Add new patch to implement power-off if available
- Add new patch to enable the RTC in Kconfig
- Add a new patch to update PCH to work in TPL
- Add a new patch allowing jumping from TPL to SPL
- Sort defconfig and adjust it to build after rebase on maste

Simon Glass (50):
  binman: Don't generate an error in 'text' entry constructor
  binman: Don't show image-skip message by default
  binman: Add a missing comment in Entry_vblock
  dm: core: Fix translate condition in ofnode_get_addr_size()
  cros_ec: Use a hyphen in the uclass name
  spl: Allow sandbox to build a device-tree file
  binman: Allow sections to have an offset
  x86: start64: Fix copyright message
  x86: mp_init: Use proper error numbers
  x86: Add a way to reinit the cpu
  x86: dts: Add device-tree labels for rtc and reset
  x86: Update a stale comment about ifdtool
  x86: Support SPL and TPL
  x86: Support booting with TPL
  x86: Add a handoff header file
  x86: broadwell: Improve SDRAM debugging output
  x86: broadwell: Allow SDRAM init from SPL
  x86: Move init of debug UART to cpu.c
  x86: broadwell: Split CPU init
  x86: Add support for starting from SPL/TPL
  x86: Allow 16-bit init to be in TPL
  x86: broadwell: Allow booting from SPL
  x86: broadwell: Select refcode and CPU code for SPL
  x86: Add common Intel code for SPL
  x86: Support saving MRC data from SPL
  x86: Add a simple TPL implementation
  x86: mrccache: Add more debugging
  x86: sysreset: Separate out the EFI code
  x86: pch: Add an ioctl to read power-management info
  x86: ivybridge: Implement PCH_REQ_PMBASE_INFO
  x86: broadwell: Implement PCH_REQ_PMBASE_INFO
  x86: sysreset: Implement power-off if available
  x86: Support TPL in Intel common code
  x86: Don't set up MTRRs in SPL
  x86: Don't generate a bootstage report in SPL
  x86: Support PCI VGA ROM when TPL is used
  x86: sysreset: Implement the get_last() method
  x86: Add documention on the samus flashmap
  x86: samus: Update device tree for SPL
  x86: samus: Update device tree for verified boot
  x86: Update device tree for TPL
  x86: Update device tree for Chromium OS verified boot
  x86: Fix device-tree indentation
  x86: samus: Increase the pre-reloc memory again
  Revert "pci: Scale MAX_PCI_REGIONS based on CONFIG_NR_DRAM_BANKS"
  x86: Enable the RTC on all boards
  x86: Update the memory map a little
  x86: broadwell: Update PCH to work in TPL
  x86: Add a way to jump from TPL to SPL
  x86: samus: Add a target to boot through TPL

 Makefile                                  |   1 +
 arch/Kconfig                              |  32 +
 arch/x86/Kconfig                          |  10 +-
 arch/x86/Makefile                         |  16 +-
 arch/x86/cpu/Makefile                     |  15 +-
 arch/x86/cpu/broadwell/Makefile           |  23 +-
 arch/x86/cpu/broadwell/cpu.c              | 676 +--------------------
 arch/x86/cpu/broadwell/cpu_from_spl.c     |  63 ++
 arch/x86/cpu/broadwell/cpu_full.c         | 694 ++++++++++++++++++++++
 arch/x86/cpu/broadwell/northbridge.c      | 100 ++++
 arch/x86/cpu/broadwell/pch.c              |  37 +-
 arch/x86/cpu/broadwell/sdram.c            | 136 +----
 arch/x86/cpu/i386/cpu.c                   | 113 ++--
 arch/x86/cpu/intel_common/Makefile        |  17 +-
 arch/x86/cpu/intel_common/car.S           |   2 +-
 arch/x86/cpu/intel_common/cpu_from_spl.c  |  27 +
 arch/x86/cpu/ivybridge/bd82x6x.c          |  15 +
 arch/x86/cpu/mp_init.c                    |  10 +-
 arch/x86/cpu/start.S                      |  13 +
 arch/x86/cpu/start64.S                    |   2 +-
 arch/x86/cpu/start_from_spl.S             |  71 +++
 arch/x86/cpu/start_from_tpl.S             |  49 ++
 arch/x86/cpu/u-boot-spl.lds               |   2 +-
 arch/x86/cpu/x86_64/cpu.c                 |   5 +
 arch/x86/dts/chromebook_samus.dts         |  60 +-
 arch/x86/dts/reset.dtsi                   |   2 +-
 arch/x86/dts/rtc.dtsi                     |   2 +-
 arch/x86/dts/u-boot.dtsi                  | 154 +++--
 arch/x86/include/asm/handoff.h            |  15 +
 arch/x86/include/asm/mrccache.h           |  11 +
 arch/x86/include/asm/spl.h                |  17 +-
 arch/x86/include/asm/u-boot-x86.h         |  20 +
 arch/x86/lib/Makefile                     |   9 +-
 arch/x86/lib/bootm.c                      |   2 +-
 arch/x86/lib/fsp/fsp_car.S                |   2 +-
 arch/x86/lib/init_helpers.c               |   5 +-
 arch/x86/lib/mrccache.c                   |  52 +-
 arch/x86/lib/spl.c                        |  44 +-
 arch/x86/lib/tpl.c                        | 118 ++++
 board/google/Kconfig                      |   8 +
 board/google/chromebook_samus/Kconfig     |  14 +-
 board/google/chromebook_samus/MAINTAINERS |   7 +
 configs/chromebook_link_defconfig         |   1 +
 configs/chromebook_samus_defconfig        |   2 +-
 configs/chromebook_samus_tpl_defconfig    |  81 +++
 doc/README.x86                            |  16 +
 drivers/core/ofnode.c                     |   2 +-
 drivers/misc/cros_ec.c                    |   2 +-
 drivers/pci/pci_rom.c                     |   2 +-
 drivers/sysreset/sysreset_x86.c           | 104 +++-
 include/configs/chromebook_link.h         |   3 -
 include/configs/chromebook_samus.h        |   3 +
 include/configs/qemu-x86.h                |   3 -
 include/configs/x86-common.h              |   1 -
 include/pch.h                             |  18 +
 include/pci.h                             |   6 +-
 scripts/Makefile.spl                      |  24 +-
 tools/binman/README                       |   7 +
 tools/binman/bsection.py                  |   9 +-
 tools/binman/control.py                   |   4 +-
 tools/binman/etype/section.py             |   3 +-
 tools/binman/etype/text.py                |   4 +-
 tools/binman/etype/vblock.py              |   1 +
 tools/binman/ftest.py                     |  44 +-
 tools/binman/test/101_sections_offset.dts |  35 ++
 65 files changed, 2066 insertions(+), 980 deletions(-)
 create mode 100644 arch/x86/cpu/broadwell/cpu_from_spl.c
 create mode 100644 arch/x86/cpu/broadwell/cpu_full.c
 create mode 100644 arch/x86/cpu/intel_common/cpu_from_spl.c
 create mode 100644 arch/x86/cpu/start_from_spl.S
 create mode 100644 arch/x86/cpu/start_from_tpl.S
 create mode 100644 arch/x86/include/asm/handoff.h
 create mode 100644 arch/x86/lib/tpl.c
 create mode 100644 configs/chromebook_samus_tpl_defconfig
 create mode 100644 tools/binman/test/101_sections_offset.dts

-- 
2.21.0.593.g511ec345e18-goog

^ permalink raw reply	[flat|nested] 113+ messages in thread

end of thread, other threads:[~2019-05-09 15:34 UTC | newest]

Thread overview: 113+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-04-26  3:58 [U-Boot] [PATCH v2 00/50] x86: Add support for booting from TPL Simon Glass
2019-04-26  3:58 ` [U-Boot] [PATCH v2 01/50] binman: Don't generate an error in 'text' entry constructor Simon Glass
2019-05-01 15:16   ` Bin Meng
2019-04-26  3:58 ` [U-Boot] [PATCH v2 02/50] binman: Don't show image-skip message by default Simon Glass
2019-05-01 11:59   ` Bin Meng
2019-05-01 15:16     ` Bin Meng
2019-04-26  3:58 ` [U-Boot] [PATCH v2 03/50] binman: Add a missing comment in Entry_vblock Simon Glass
2019-05-01 15:16   ` Bin Meng
2019-04-26  3:58 ` [U-Boot] [PATCH v2 04/50] dm: core: Fix translate condition in ofnode_get_addr_size() Simon Glass
2019-05-01 15:16   ` Bin Meng
2019-04-26  3:58 ` [U-Boot] [PATCH v2 05/50] cros_ec: Use a hyphen in the uclass name Simon Glass
2019-05-01 12:00   ` Bin Meng
2019-05-02 16:53     ` Simon Glass
2019-04-26  3:58 ` [U-Boot] [PATCH v2 06/50] spl: Allow sandbox to build a device-tree file Simon Glass
2019-05-01 12:13   ` Bin Meng
2019-05-01 15:16     ` Bin Meng
2019-04-26  3:58 ` [U-Boot] [PATCH v2 07/50] binman: Allow sections to have an offset Simon Glass
2019-05-01 12:13   ` Bin Meng
2019-05-01 15:16     ` Bin Meng
2019-04-26  3:58 ` [U-Boot] [PATCH v2 08/50] x86: start64: Fix copyright message Simon Glass
2019-05-01 15:16   ` Bin Meng
2019-04-26  3:58 ` [U-Boot] [PATCH v2 09/50] x86: mp_init: Use proper error numbers Simon Glass
2019-05-01 15:16   ` Bin Meng
2019-04-26  3:58 ` [U-Boot] [PATCH v2 10/50] x86: Add a way to reinit the cpu Simon Glass
2019-05-01 15:16   ` Bin Meng
2019-04-26  3:58 ` [U-Boot] [PATCH v2 11/50] x86: dts: Add device-tree labels for rtc and reset Simon Glass
2019-05-01 15:25   ` Bin Meng
2019-04-26  3:58 ` [U-Boot] [PATCH v2 12/50] x86: Update a stale comment about ifdtool Simon Glass
2019-05-01 15:25   ` Bin Meng
2019-04-26  3:58 ` [U-Boot] [PATCH v2 13/50] x86: Support SPL and TPL Simon Glass
2019-05-01 15:25   ` Bin Meng
2019-04-26  3:58 ` [U-Boot] [PATCH v2 14/50] x86: Support booting with TPL Simon Glass
2019-05-01 15:25   ` Bin Meng
2019-04-26  3:58 ` [U-Boot] [PATCH v2 15/50] x86: Add a handoff header file Simon Glass
2019-05-01 15:25   ` Bin Meng
2019-04-26  3:58 ` [U-Boot] [PATCH v2 16/50] x86: broadwell: Improve SDRAM debugging output Simon Glass
2019-05-01 15:25   ` Bin Meng
2019-04-26  3:58 ` [U-Boot] [PATCH v2 17/50] x86: broadwell: Allow SDRAM init from SPL Simon Glass
2019-05-01 13:03   ` Bin Meng
2019-05-01 15:25     ` Bin Meng
2019-04-26  3:58 ` [U-Boot] [PATCH v2 18/50] x86: Move init of debug UART to cpu.c Simon Glass
2019-05-01 15:25   ` Bin Meng
2019-04-26  3:58 ` [U-Boot] [PATCH v2 19/50] x86: broadwell: Split CPU init Simon Glass
2019-05-01 15:25   ` Bin Meng
2019-04-26  3:58 ` [U-Boot] [PATCH v2 20/50] x86: Add support for starting from SPL/TPL Simon Glass
2019-05-01 13:03   ` Bin Meng
2019-05-01 15:25     ` Bin Meng
2019-04-26  3:58 ` [U-Boot] [PATCH v2 21/50] x86: Allow 16-bit init to be in TPL Simon Glass
2019-05-01 15:34   ` Bin Meng
2019-04-26  3:58 ` [U-Boot] [PATCH v2 22/50] x86: broadwell: Allow booting from SPL Simon Glass
2019-05-01 15:34   ` Bin Meng
2019-04-26  3:58 ` [U-Boot] [PATCH v2 23/50] x86: broadwell: Select refcode and CPU code for SPL Simon Glass
2019-05-01 15:35   ` Bin Meng
2019-04-26  3:58 ` [U-Boot] [PATCH v2 24/50] x86: Add common Intel " Simon Glass
2019-05-01 15:35   ` Bin Meng
2019-04-26  3:58 ` [U-Boot] [PATCH v2 25/50] x86: Support saving MRC data from SPL Simon Glass
2019-05-01 15:35   ` Bin Meng
2019-04-26  3:58 ` [U-Boot] [PATCH v2 26/50] x86: Add a simple TPL implementation Simon Glass
2019-05-01 15:35   ` Bin Meng
2019-04-26  3:58 ` [U-Boot] [PATCH v2 27/50] x86: mrccache: Add more debugging Simon Glass
2019-05-01 15:35   ` Bin Meng
2019-04-26  3:59 ` [U-Boot] [PATCH v2 28/50] x86: sysreset: Separate out the EFI code Simon Glass
2019-05-01 13:42   ` Bin Meng
2019-05-01 18:56     ` Heinrich Schuchardt
2019-04-26  3:59 ` [U-Boot] [PATCH v2 29/50] x86: pch: Add an ioctl to read power-management info Simon Glass
2019-05-01 13:42   ` Bin Meng
2019-05-01 15:43     ` Bin Meng
2019-04-26  3:59 ` [U-Boot] [PATCH v2 30/50] x86: ivybridge: Implement PCH_REQ_PMBASE_INFO Simon Glass
2019-05-01 13:42   ` Bin Meng
2019-05-01 15:43     ` Bin Meng
2019-04-26  3:59 ` [U-Boot] [PATCH v2 31/50] x86: broadwell: " Simon Glass
2019-05-01 14:50   ` Bin Meng
2019-05-01 15:43     ` Bin Meng
2019-04-26  3:59 ` [U-Boot] [PATCH v2 32/50] x86: sysreset: Implement power-off if available Simon Glass
2019-05-01 14:50   ` Bin Meng
2019-04-26  3:59 ` [U-Boot] [PATCH v2 33/50] x86: Support TPL in Intel common code Simon Glass
2019-05-01 15:44   ` Bin Meng
2019-04-26  3:59 ` [U-Boot] [PATCH v2 34/50] x86: Don't set up MTRRs in SPL Simon Glass
2019-05-01 15:44   ` Bin Meng
2019-04-26  3:59 ` [U-Boot] [PATCH v2 35/50] x86: Don't generate a bootstage report " Simon Glass
2019-05-01 15:44   ` Bin Meng
2019-04-26  3:59 ` [U-Boot] [PATCH v2 36/50] x86: Support PCI VGA ROM when TPL is used Simon Glass
2019-05-01 15:44   ` Bin Meng
2019-04-26  3:59 ` [U-Boot] [PATCH v2 37/50] x86: sysreset: Implement the get_last() method Simon Glass
2019-05-01 15:48   ` Bin Meng
2019-04-26  3:59 ` [U-Boot] [PATCH v2 38/50] x86: Add documention on the samus flashmap Simon Glass
2019-04-26  3:59 ` [U-Boot] [PATCH v2 39/50] x86: samus: Update device tree for SPL Simon Glass
2019-05-01 15:52   ` Bin Meng
2019-04-26  3:59 ` [U-Boot] [PATCH v2 40/50] x86: samus: Update device tree for verified boot Simon Glass
2019-04-26  3:59 ` [U-Boot] [PATCH v2 41/50] x86: Update device tree for TPL Simon Glass
2019-05-01 16:00   ` Bin Meng
2019-04-26  3:59 ` [U-Boot] [PATCH v2 42/50] x86: Update device tree for Chromium OS verified boot Simon Glass
2019-04-26  3:59 ` [U-Boot] [PATCH v2 43/50] x86: Fix device-tree indentation Simon Glass
2019-04-26  3:59 ` [U-Boot] [PATCH v2 44/50] x86: samus: Increase the pre-reloc memory again Simon Glass
2019-04-26  3:59 ` [U-Boot] [PATCH v2 45/50] Revert "pci: Scale MAX_PCI_REGIONS based on CONFIG_NR_DRAM_BANKS" Simon Glass
2019-05-01 16:09   ` Bin Meng
2019-05-02  9:24     ` Thierry Reding
2019-05-02 16:22       ` Simon Glass
2019-05-07  9:28         ` Bin Meng
2019-05-08  3:04           ` Simon Glass
2019-05-08  3:25             ` Bin Meng
2019-05-09 15:34             ` Thierry Reding
2019-04-26  3:59 ` [U-Boot] [PATCH v2 46/50] x86: Enable the RTC on all boards Simon Glass
2019-05-01 16:17   ` Bin Meng
2019-04-26  3:59 ` [U-Boot] [PATCH v2 47/50] x86: Update the memory map a little Simon Glass
2019-05-01 16:17   ` Bin Meng
2019-04-26  3:59 ` [U-Boot] [PATCH v2 48/50] x86: broadwell: Update PCH to work in TPL Simon Glass
2019-05-01 16:17   ` Bin Meng
2019-04-26  3:59 ` [U-Boot] [PATCH v2 49/50] x86: Add a way to jump from TPL to SPL Simon Glass
2019-05-01 16:17   ` Bin Meng
2019-05-02 16:53     ` Simon Glass
2019-04-26  3:59 ` [U-Boot] [PATCH v2 50/50] x86: samus: Add a target to boot through TPL Simon Glass
2019-05-01 16:20 ` [U-Boot] [PATCH v2 00/50] x86: Add support for booting from TPL Bin Meng

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox