diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/arch/armv7/Makefile.inc | 9 | ||||
-rw-r--r-- | src/arch/armv7/bootblock_simple.c | 2 | ||||
-rw-r--r-- | src/arch/armv7/include/arch/cbfs.h | 60 | ||||
-rw-r--r-- | src/arch/armv7/lib/Makefile.inc | 1 | ||||
-rw-r--r-- | src/cpu/samsung/exynos5-common/Makefile.inc | 1 | ||||
-rw-r--r-- | src/lib/Makefile.inc | 10 | ||||
-rw-r--r-- | src/lib/cbfs.c | 2 | ||||
-rw-r--r-- | src/mainboard/google/snow/bootblock.c | 3 |
8 files changed, 21 insertions, 67 deletions
diff --git a/src/arch/armv7/Makefile.inc b/src/arch/armv7/Makefile.inc index e55f4771f7..715ce1ecbd 100644 --- a/src/arch/armv7/Makefile.inc +++ b/src/arch/armv7/Makefile.inc @@ -207,6 +207,9 @@ bootblock_inc += $(src)/arch/armv7/lib/id.inc bootblock_inc += $(chipset_bootblock_inc) bootblock_inc += $(objgenerated)/bootblock.inc +bootblock_custom = $(src)/$(call strip_quotes,$(CONFIG_BOOTBLOCK_CPU_INIT)) +bootblock_custom += $(src)/$(call strip_quotes,$(CONFIG_BOOTBLOCK_MAINBOARD_INIT)) + $(objgenerated)/bootblock.ld: $$(bootblock_lds) $(obj)/ldoptions @printf " GEN $(subst $(obj)/,,$(@))\n" printf '$(foreach ldscript,ldoptions $(bootblock_lds),INCLUDE "$(ldscript)"\n)' > $@ @@ -223,18 +226,18 @@ $(objgenerated)/bootblock.s: $(objgenerated)/bootblock_inc.S $(obj)/config.h $(o @printf " CC $(subst $(obj)/,,$(@))\n" $(CC) -MMD -x assembler-with-cpp -E -I$(src)/include -I$(src)/arch/armv7/include -I$(obj) -include $(obj)/build.h -include $(obj)/config.h -I. -I$(src) $< -o $@ -$(objgenerated)/bootblock.inc: $(src)/arch/armv7/$(subst ",,$(CONFIG_BOOTBLOCK_SOURCE)) $(OPTION_TABLE_H) +$(objgenerated)/bootblock.inc: $(src)/arch/armv7/$(subst ",,$(CONFIG_BOOTBLOCK_SOURCE)) $(bootblock_custom) $(OPTION_TABLE_H) @printf " CC $(subst $(obj)/,,$(@))\n" $(CC) $(INCLUDES) -MM -MT$(objgenerated)/bootblock.inc \ $< > $(objgenerated)/bootblock.inc.d $(CC) -c -S $(CFLAGS) -I. $(INCLUDES) $< -o $@ -$(objcbfs)/bootblock.debug: $(objgenerated)/bootblock.o $(objgenerated)/bootblock.ld +$(objcbfs)/bootblock.debug: $(objgenerated)/bootblock.o $(objgenerated)/bootblock.ld $$(bootblock-objs) $(stages) @printf " LINK $(subst $(obj)/,,$(@))\n" ifeq ($(CONFIG_COMPILER_LLVM_CLANG),y) $(LD) -m armelf_linux_eabi -static -o $@.tmp -L$(obj) $< -T $(objgenerated)/bootblock.ld else - $(CC) -nostdlib -nostartfiles -static -o $@ -L$(obj) -T $(objgenerated)/bootblock.ld -Wl,--start-group $(objgenerated)/bootblock.o $(stages) $(LIBGCC_FILE_NAME) -Wl,--end-group + $(CC) -nostdlib -nostartfiles -static -o $@ -L$(obj) -T $(objgenerated)/bootblock.ld -Wl,--start-group $(objgenerated)/bootblock.o $(bootblock-objs) $(stages) $(LIBGCC_FILE_NAME) -Wl,--end-group endif ################################################################################ diff --git a/src/arch/armv7/bootblock_simple.c b/src/arch/armv7/bootblock_simple.c index 8df7e6a70d..e808edcd35 100644 --- a/src/arch/armv7/bootblock_simple.c +++ b/src/arch/armv7/bootblock_simple.c @@ -20,9 +20,9 @@ */ #include <bootblock_common.h> -#include <arch/cbfs.h> #include <arch/hlt.h> #include <arch/stages.h> +#include <cbfs.h> #include "stages.c" diff --git a/src/arch/armv7/include/arch/cbfs.h b/src/arch/armv7/include/arch/cbfs.h deleted file mode 100644 index e34a0d2b27..0000000000 --- a/src/arch/armv7/include/arch/cbfs.h +++ /dev/null @@ -1,60 +0,0 @@ -/* - * This file is part of the coreboot project. - * - * Copyright (C) 2012 The ChromiumOS Authors. All rights reserved. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; version 2 of the License. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#ifndef __INCLUDE_ARCH_CBFS__ -#define __INCLUDE_ARCH_CBFS__ - -#include <cbfs_core.h> -#include <arch/byteorder.h> - -// TODO FIXME This file is only for providing CBFS function in bootblock. -// Should be removed once bootblock can link lib/* files. -#include "lib/cbfs.c" - -// mem* and ulzma are now workarounds for bootblock compilation. -void *memcpy(void *dest, const void *src, size_t n) { - char *d = (char *)dest; - const char *s = (const char*)src; - while (n-- > 0) - *d++ = *s++; - return dest; -} - -void *memset(void *dest, int c, size_t n) { - char *d = (char*)dest; - while (n-- > 0) - *d++ = c; - return dest; -} - -int memcmp(const void *ptr1, const void *ptr2, size_t n) { - const char *s1 = (const char*)ptr1, *s2 = (const char*)ptr2; - int c; - while (n-- > 0) - if ((c = *s1++ - *s2++)) - return c; - return 0; -} - -unsigned long ulzma(unsigned char *src, unsigned char *dest) { - // TODO remove this. - return -1; -} - -#endif // __INCLUDE_ARCH_CBFS__ diff --git a/src/arch/armv7/lib/Makefile.inc b/src/arch/armv7/lib/Makefile.inc index e52bc5412d..2470db2e80 100644 --- a/src/arch/armv7/lib/Makefile.inc +++ b/src/arch/armv7/lib/Makefile.inc @@ -21,3 +21,4 @@ ramstage-y += syslib.c #FIXME(dhendrix): should this be a config option? romstage-y += eabi_compat.c ramstage-y += eabi_compat.c +bootblock-y += eabi_compat.c diff --git a/src/cpu/samsung/exynos5-common/Makefile.inc b/src/cpu/samsung/exynos5-common/Makefile.inc index d919347836..ff86fbdb4e 100644 --- a/src/cpu/samsung/exynos5-common/Makefile.inc +++ b/src/cpu/samsung/exynos5-common/Makefile.inc @@ -1,2 +1,3 @@ romstage-y += spi.c ramstage-y += spi.c +bootblock-y += spi.c diff --git a/src/lib/Makefile.inc b/src/lib/Makefile.inc index 67964482b1..8ff0a4446e 100644 --- a/src/lib/Makefile.inc +++ b/src/lib/Makefile.inc @@ -17,6 +17,16 @@ # Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # +bootblock-y += cbfs.c +ifneq ($(CONFIG_HAVE_ARCH_MEMSET),y) +bootblock-y += memset.c +endif +bootblock-y += memchr.c +ifneq ($(CONFIG_HAVE_ARCH_MEMCPY),y) +bootblock-y += memcpy.c +endif +bootblock-y += memcmp.c + ifneq ($(CONFIG_HAVE_ARCH_MEMSET),y) romstage-y += memset.c endif diff --git a/src/lib/cbfs.c b/src/lib/cbfs.c index 3e44582f4d..4702f1e0bc 100644 --- a/src/lib/cbfs.c +++ b/src/lib/cbfs.c @@ -27,6 +27,8 @@ # define CBFS_MINI_BUILD #elif defined(__SMM__) # define CBFS_MINI_BUILD +#elif defined(__BOOT_BLOCK__) + /* No LZMA in boot block. */ #else # define CBFS_CORE_WITH_LZMA # include <lib.h> diff --git a/src/mainboard/google/snow/bootblock.c b/src/mainboard/google/snow/bootblock.c index 3887e7e06d..7609410c3a 100644 --- a/src/mainboard/google/snow/bootblock.c +++ b/src/mainboard/google/snow/bootblock.c @@ -42,9 +42,6 @@ #define EXYNOS5_CLOCK_BASE 0x10010000 -/* TODO Move to Makefile.inc once we support adding bootblock stage files. */ -#include "cpu/samsung/exynos5-common/spi.c" - void clock_ll_set_pre_ratio(enum periph_id periph_id, unsigned divisor) { struct exynos5_clock *clk = |