diff options
author | Asami Doi <doiasami1219@gmail.com> | 2019-06-07 16:22:03 +0900 |
---|---|---|
committer | Patrick Georgi <pgeorgi@google.com> | 2019-06-21 09:16:36 +0000 |
commit | d97591c34571b66157c540355457c4fea794a611 (patch) | |
tree | 9ac1808fe89fe9554147c72f651e12af93f7e3dc | |
parent | 7d881b5189efea7e9ee3f64e36964c951001e1a1 (diff) | |
download | coreboot-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>
-rw-r--r-- | payloads/libpayload/README | 12 | ||||
-rw-r--r-- | payloads/libpayload/configs/config.emulation-qemu-arm | 6 | ||||
-rw-r--r-- | payloads/libpayload/sample/Makefile | 11 |
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 |