Payloads: Add U-Boot as a coreboot-payload

- Add Kconfig and Makefile options to use U-Boot as a payload.
- Add Kconfig option for extra cbfstool command line arguments.
- Add Kconfig & Makefile option to load the payload as a flat binary.
- Add u-boot directory to .gitignore.

This is currently working for X-86 only.

Graphics worked in U-Boot correctly by initializing the VBIOS and
setting up a console mode.

Tested in QEMU and on Minnowboard Max.  Got into U-Boot, have not
booted an OS yet.

Change-Id: Ia122a4ad7cd7d96107c1552b0376c8106ca8fb92
Signed-off-by: Martin Roth <martinroth@google.com>
Signed-off-by: Lee Leahy <leroy.p.leahy@intel.com>
Reviewed-on: https://review.coreboot.org/12714
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
diff --git a/payloads/external/U-Boot/Kconfig b/payloads/external/U-Boot/Kconfig
new file mode 100644
index 0000000..2afe1cd
--- /dev/null
+++ b/payloads/external/U-Boot/Kconfig
@@ -0,0 +1,40 @@
+if PAYLOAD_UBOOT
+
+config PAYLOAD_SPECIFIC_OPTIONS # dummy
+	def_bool y
+	select PAYLOAD_IS_FLAT_BINARY
+
+choice
+	prompt "U-Boot version"
+	default UBOOT_STABLE
+
+config UBOOT_STABLE
+	bool "v2016.1"
+	help
+	  Stable U-Boot version
+
+config UBOOT_MASTER
+	bool "master"
+	help
+	  Newest U-Boot version
+
+endchoice
+
+config PAYLOAD_CONFIGFILE
+	string "U-Boot config file"
+	default ""
+	help
+	  This option allows a platform to set Kconfig options for a basic
+	  U-Boot payload.  In general, if the option is used, the default
+	  would be "$(top)/src/mainboard/$(MAINBOARDDIR)/config_uboot"
+	  for a config stored in the coreboot mainboard directory, or
+	  "$(project_dir)/configs/coreboot-x86_defconfig" to use a config
+	  from the U-Boot config directory
+
+config PAYLOAD_FILE
+	default "payloads/external/U-Boot/u-boot/u-boot-dtb.bin"
+
+config PAYLOAD_OPTIONS
+	default "-l 0x1110000 -e 0x1110015"
+
+endif