summaryrefslogtreecommitdiff
path: root/payloads/libpayload
diff options
context:
space:
mode:
authorAsami Doi <doiasami1219@gmail.com>2019-06-07 16:22:03 +0900
committerPatrick Georgi <pgeorgi@google.com>2019-06-21 09:16:36 +0000
commitd97591c34571b66157c540355457c4fea794a611 (patch)
tree9ac1808fe89fe9554147c72f651e12af93f7e3dc /payloads/libpayload
parent7d881b5189efea7e9ee3f64e36964c951001e1a1 (diff)
downloadcoreboot-d97591c34571b66157c540355457c4fea794a611.tar.xz
payloads/libpayload: Update a Makefile for sample libpayload
and make a configuraton for QEMU/ARM. This CL allows building a sample libpayload for QEMU/ARM. Change-Id: Ia32872c43a99357aa966de3582f6fdb2e2652517 Signed-off-by: Asami Doi <doiasami1219@gmail.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/33287 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Raul Rangel <rrangel@chromium.org> Reviewed-by: Julius Werner <jwerner@chromium.org>
Diffstat (limited to 'payloads/libpayload')
-rw-r--r--payloads/libpayload/README12
-rw-r--r--payloads/libpayload/configs/config.emulation-qemu-arm6
-rw-r--r--payloads/libpayload/sample/Makefile11
3 files changed, 21 insertions, 8 deletions
diff --git a/payloads/libpayload/README b/payloads/libpayload/README
index fdf9b1840d..d35f685fd5 100644
--- a/payloads/libpayload/README
+++ b/payloads/libpayload/README
@@ -22,12 +22,18 @@ Installation
$ make
- $ sudo make install (optional, will install into /opt per default)
+ $ make install (optional, will install into ./install per default)
-As libpayload is for 32bit x86 systems only, you might have to install the
-32bit libgcc version, otherwise your payloads will fail to compile.
+On x86 systems, libpayload will always be 32-bit even if your host OS runs
+in 64-bit, so you might have to install the 32-bit libgcc version.
On Debian systems you'd do 'apt-get install gcc-multilib' for example.
+Run 'make distclean' before switching boards. This command will remove
+your current .config file, so you need 'make menuconfig' again or
+'make defconfig' in order to set up configuration. Default configuration
+is based on 'configs/defconfig'. See the configs/ directory for examples
+of configuration.
+
Usage
-----
diff --git a/payloads/libpayload/configs/config.emulation-qemu-arm b/payloads/libpayload/configs/config.emulation-qemu-arm
new file mode 100644
index 0000000000..4b69caf737
--- /dev/null
+++ b/payloads/libpayload/configs/config.emulation-qemu-arm
@@ -0,0 +1,6 @@
+CONFIG_LP_ARCH_ARM=y
+CONFIG_LP_STACK_SIZE=64000
+CONFIG_LP_BASE_ADDRESS=0x62030000
+CONFIG_LP_TINYCURSES=y
+CONFIG_LP_8250_SERIAL_CONSOLE=y
+CONFIG_LP_TIMER_GENERIC_HZ=1000000
diff --git a/payloads/libpayload/sample/Makefile b/payloads/libpayload/sample/Makefile
index 5931d5eb11..18121dfe80 100644
--- a/payloads/libpayload/sample/Makefile
+++ b/payloads/libpayload/sample/Makefile
@@ -28,19 +28,20 @@
##
# Sample libpayload Makefile.
-include ../.xcompile
include ../.config
+include ../.xcompile
-ARCH-$(CONFIG_LP_ARCH_ARMV) := arm
-ARCH-$(CONFIG_LP_ARCH_POWERPC) := powerpc
-ARCH-$(CONFIG_LP_ARCH_X86) := i386
+ARCH-$(CONFIG_LP_ARCH_ARM) := arm
+ARCH-$(CONFIG_LP_ARCH_X86) := x86_32
+ARCH-$(CONFIG_LP_ARCH_ARM64) := arm64
+ARCH-$(CONFIG_LP_ARCH_MIPS) := mips
CC := $(CC_$(ARCH-y))
AS := $(AS_$(ARCH-y))
LIBPAYLOAD_DIR := ../install/libpayload
XCC := CC="$(CC)" $(LIBPAYLOAD_DIR)/bin/lpgcc
XAS := AS="$(AS)" $(LIBPAYLOAD_DIR)/bin/lpas
-CFLAGS := -Wall -Werror -Os
+CFLAGS := -fno-builtin -Wall -Werror -Os
TARGET := hello
OBJS := $(TARGET).o