payloads: add support lz4 compression

Add the option to use the lz4 compression method
to compress payloads.
Also sets LZ4 as the default compression method.

Change-Id: Ic712f984f791d268440c8463eaea0d246aa31d99
Signed-off-by: Antonello Dettori <dev@dettori.io>
Reviewed-on: https://review.coreboot.org/15817
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
diff --git a/Makefile.inc b/Makefile.inc
index 413f7ad..ca157a2 100644
--- a/Makefile.inc
+++ b/Makefile.inc
@@ -345,6 +345,9 @@
 ifeq ($(CONFIG_COMPRESSED_PAYLOAD_LZMA),y)
 CBFS_PAYLOAD_COMPRESS_FLAG:=LZMA
 endif
+ifeq ($(CONFIG_COMPRESSED_PAYLOAD_LZ4),y)
+CBFS_PAYLOAD_COMPRESS_FLAG:=LZ4
+endif
 
 CBFS_PRERAM_COMPRESS_FLAG:=none
 ifeq ($(CONFIG_COMPRESS_PRERAM_STAGES),y)
diff --git a/payloads/Kconfig b/payloads/Kconfig
index bb9348b..394dbb6 100644
--- a/payloads/Kconfig
+++ b/payloads/Kconfig
@@ -49,15 +49,27 @@
 	help
 	  The path and filename of the ELF executable file to use as payload.
 
-# TODO: Defined if no payload? Breaks build?
+choice
+	prompt "Payload compression algorithm"
+	default COMPRESSED_PAYLOAD_LZ4
+	depends on !PAYLOAD_NONE && !PAYLOAD_LINUX
+	help
+	  Choose the compression algorithm for the chosen payloads.
+	  You can choose between LZMA and LZ4.
+
 config COMPRESSED_PAYLOAD_LZMA
 	bool "Use LZMA compression for payloads"
-	default y
-	depends on !PAYLOAD_NONE && !PAYLOAD_LINUX
 	help
 	  In order to reduce the size payloads take up in the ROM chip
 	  coreboot can compress them using the LZMA algorithm.
 
+config COMPRESSED_PAYLOAD_LZ4
+	bool "Use LZ4 compression for payloads"
+	help
+	  In order to reduce the size payloads take up in the ROM chip
+	  coreboot can compress them using the LZ4 algorithm.
+endchoice
+
 config PAYLOAD_OPTIONS
 	string
 	default ""