sandbox: Add a build for VPL

Add an initial VPL build for sandbox. This includes the flow:

   TPL (with of-platdata) -> VPL -> SPL -> U-Boot

To run it:

   ./tpl/u-boot-tpl -D

The -D is needed to get the default device tree, which includes the serial
console info.

Add a Makefile check for OF_HOSTFILE which is the option that enables
devicetree control on sandbox.

Series-changes: 4
- Add a sandbox_vpl build
- Update cover letter

Series-changes: 6
- Add docs for sandbox_vpl build
- Drop TPL_HASH_SUPPORT patch since we only have SPL_HASH now

Series-to: u-boot
Series-cc: trini
Series-version: 6
Series-links: 256138 4:253010
Cover-letter:
vpl: Introduce a verifying program loader
U-Boot provides a verified-boot feature based around FIT, but there is
no standard way of implementing it for a board. At present the various
required pieces must be built up separately, to produce a working
implementation. In particular, there is no built-in support for selecting
A/B boot or recovery mode.

This series introduces VPL, a verified program loader phase for U-Boot.
Its purpose is to run the verified-boot process and decide which SPL
binary should be run. It is critical that this decision happens before
SPL runs, since SPL sets up SDRAM and we need to be able to update the
SDRAM-init code in the field.

Adding VPL into the boot flow provides a standard way of implementing
verified boot. This series includes the phase itself, some useful Kconfig
options and a sandbox_vpl build for sandbox.
END

Change-Id: If1e267f286be9b2be553157103cd0146503ea50e
Signed-off-by: Simon Glass <sjg@chromium.org>
40 jobs for vpl-working in 72 minutes (queued for 7 seconds)
latest
Status Name Job ID Coverage
  Testsuites
passed Build envtools #324301

00:00:12

passed Build tools-only #324300

00:00:27

passed Check for configs without MAINTAINERS entry #324299

00:00:10

passed cppcheck #324295

00:00:49

passed grep TODO/FIXME/HACK #324296

00:00:13

passed htmldocs #324297

00:00:51

passed Run binman, buildman, dtoc, Kconfig and patman testsuites #324302

00:01:23

passed Run tests for Nokia RX-51 (aka N900) #324303

00:02:44

passed sloccount #324298

00:00:24

 
  Test.Py
passed evb-ast2500 test.py #324308

00:00:51

passed integratorcp_cm926ejs test.py #324310

00:00:32

passed qemu_arm64 test.py #324312

00:01:32

passed qemu_arm test.py #324311

00:01:11

passed qemu_malta64el test.py #324316

00:00:37

passed qemu_malta64 test.py #324315

00:00:32

passed qemu_maltael test.py #324314

00:00:51

passed qemu_malta test.py #324313

00:00:34

passed qemu-ppce500 test.py #324317

00:00:52

passed qemu-riscv32_spl test.py #324320

00:01:16

passed qemu-riscv32 test.py #324318

00:00:52

passed qemu-riscv64_spl test.py #324321

00:00:41

passed qemu-riscv64 test.py #324319

00:01:14

passed qemu-x86_64 test.py #324323

00:01:36

passed qemu-x86 test.py #324322

00:01:07

passed r2dplus_i82557c test.py #324324

00:01:04

passed r2dplus_pcnet test.py #324325

00:00:33

passed r2dplus_rtl8139 test.py #324326

00:01:03

passed r2dplus_tulip test.py #324327

00:00:33

passed sandbox_flattree test.py #324309

00:01:11

passed sandbox_noinst_test.py #324307

00:01:11

passed sandbox_spl test.py #324306

00:01:11

passed sandbox test.py #324304

00:03:47

passed sandbox with clang test.py #324305

00:07:50

passed xilinx_versal_virt test.py #324329

00:00:33

passed xilinx_zynq_virt test.py #324328

00:01:01

passed xtfpga test.py #324330

00:01:03

 
  World Build
passed build all 32bit ARM platforms #324331

00:55:45

passed build all 64bit ARM platforms #324332

00:16:18

passed build all other platforms #324334

00:02:51

passed build all PowerPC platforms #324333

00:02:25