coreboot/payloads/libpayload/arch/arm
Julius Werner d8e5a9fdf5 libpayload: Introduce new Kconfig to explicitly allow GPL code
There have been leaks of GPL code into libpayload for a while now, for
new features or improvements that require third party code with no
adequate alternative among BSD-licensed software. It seems silly and
counter-productive to keep holding back features and performance
improvements from libpayload for a use-case (proprietary payloads) that
doesn't even seem to be implemented anywhere to date. Open-source
payloads should not need to suffer to appease commercial ones.

Instead, this patch introduces a new Kconfig option to explicitly allow
inclusion of GPL code. It will use Kconfig dependencies and/or Makefile
rules to ensure that no GPL code can end up in the final payload if that
option is unset, allowing proprietary payloads to keep working with the
existing BSD-licensed feature set. New features and patches (that are
sufficiently separate and self-contained to allow guarding through this
config option) can choose whether to import GPL code, and need to depend
on this option if they do.

Also clean up all (known) existing uses of GPL code to depend on the new
option, add some recent third-party imports to the LICENSES file, and
relicense the selfboot.c files to BSD with permission of the author.

BUG=chrome-os-partner:24957
TEST=Compiled Falco and Nyan_Big both with and without the new option,
disassembled output binaries to ensure that memcpy() looks as expected.

Change-Id: I6e3a75b1a8e46291c75a876844c7a01f7d3f2a0e
Signed-off-by: Julius Werner <jwerner@chromium.org>
Signed-off-by: Hung-Te Lin <hungte@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/203513
Reviewed-by: Stefan Reinauer <reinauer@chromium.org>
2014-06-13 20:37:29 +00:00
..
asmlib.h arm: Update mem* functions to newer versions 2014-01-14 03:29:44 +00:00
cache.c arm: Redesign, clarify and clean up cache related code 2014-01-29 21:33:35 +00:00
Config.in libpayload: arm: Pass the coreboot table location to the payload. 2014-02-11 05:30:59 +00:00
coreboot.c libpayload: arm: Pass the coreboot table location to the payload. 2014-02-11 05:30:59 +00:00
cpu.S arm: Fix minor mistake in cache maintenance assembly 2014-04-05 01:42:16 +00:00
dummy_media.c ARM: Generalize armv7 as arm. 2013-10-02 09:18:44 +00:00
eabi_compat.c libpayload: arm: Add EABI compatible utility functions. 2014-05-15 05:23:17 +00:00
exception.c libpayload: Rework exception hook interface 2014-06-11 03:30:54 +00:00
exception_asm.S libpayload: Rework exception hook interface 2014-06-11 03:30:54 +00:00
gdb.c libpayload: Add remote GDB support 2014-06-11 03:33:56 +00:00
head.S libpayload: arm: add code to clear bss 2014-06-05 04:16:04 +00:00
libpayload.ldscript ARM: Generalize armv7 as arm. 2013-10-02 09:18:44 +00:00
main.c libpayload: Make it possible to install callbacks for particular exceptions. 2014-02-13 04:15:59 +00:00
Makefile.inc libpayload: Introduce new Kconfig to explicitly allow GPL code 2014-06-13 20:37:29 +00:00
memcpy.S arm: Put assembly functions into separate sections 2014-01-29 21:33:41 +00:00
memmove.S arm: Put assembly functions into separate sections 2014-01-29 21:33:41 +00:00
memset.S arm: Put assembly functions into separate sections 2014-01-29 21:33:41 +00:00
selfboot.c libpayload: Introduce new Kconfig to explicitly allow GPL code 2014-06-13 20:37:29 +00:00
sysinfo.c ARM: Generalize armv7 as arm. 2013-10-02 09:18:44 +00:00
timer.c ARM: Generalize armv7 as arm. 2013-10-02 09:18:44 +00:00
util.S arm: Move libgcc assembly macros to arch/asm.h 2014-01-14 03:29:41 +00:00
virtual.c ARM: API to Map Physical Address to Wipe Memory above 4GB 2014-03-07 04:54:49 +00:00