diff options
-rw-r--r-- | common/cmd_bootm.c | 34 | ||||
-rw-r--r-- | include/asm-m68k/config.h | 2 | ||||
-rw-r--r-- | include/asm-ppc/config.h | 2 | ||||
-rw-r--r-- | include/asm-sparc/config.h | 2 | ||||
-rw-r--r-- | include/image.h | 3 | ||||
-rw-r--r-- | include/lmb.h | 4 | ||||
-rw-r--r-- | lib_generic/Makefile | 4 | ||||
-rw-r--r-- | lib_generic/lmb.c | 12 |
8 files changed, 42 insertions, 21 deletions
diff --git a/common/cmd_bootm.c b/common/cmd_bootm.c index 05feb39..f28e88f 100644 --- a/common/cmd_bootm.c +++ b/common/cmd_bootm.c @@ -153,18 +153,6 @@ static boot_os_fn *boot_os[] = { ulong load_addr = CONFIG_SYS_LOAD_ADDR; /* Default Load Address */ static bootm_headers_t images; /* pointers to os/initrd/fdt images */ -void __board_lmb_reserve(struct lmb *lmb) -{ - /* please define platform specific board_lmb_reserve() */ -} -void board_lmb_reserve(struct lmb *lmb) __attribute__((weak, alias("__board_lmb_reserve"))); - -void __arch_lmb_reserve(struct lmb *lmb) -{ - /* please define platform specific arch_lmb_reserve() */ -} -void arch_lmb_reserve(struct lmb *lmb) __attribute__((weak, alias("__arch_lmb_reserve"))); - /* Allow for arch specific config before we boot */ void __arch_preboot_os(void) { @@ -200,15 +188,11 @@ void arch_preboot_os(void) __attribute__((weak, alias("__arch_preboot_os"))); # error Unknown CPU type #endif -static int bootm_start(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) +static void bootm_start_lmb(void) { +#ifdef CONFIG_LMB ulong mem_start; phys_size_t mem_size; - void *os_hdr; - int ret; - - memset ((void *)&images, 0, sizeof (images)); - images.verify = getenv_yesno ("verify"); lmb_init(&images.lmb); @@ -219,6 +203,20 @@ static int bootm_start(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) arch_lmb_reserve(&images.lmb); board_lmb_reserve(&images.lmb); +#else +# define lmb_reserve(lmb, base, size) +#endif +} + +static int bootm_start(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]) +{ + void *os_hdr; + int ret; + + memset ((void *)&images, 0, sizeof (images)); + images.verify = getenv_yesno ("verify"); + + bootm_start_lmb(); /* get kernel image header, start address and length */ os_hdr = boot_get_kernel (cmdtp, flag, argc, argv, diff --git a/include/asm-m68k/config.h b/include/asm-m68k/config.h index 049c44e..36438be 100644 --- a/include/asm-m68k/config.h +++ b/include/asm-m68k/config.h @@ -21,4 +21,6 @@ #ifndef _ASM_CONFIG_H_ #define _ASM_CONFIG_H_ +#define CONFIG_LMB + #endif diff --git a/include/asm-ppc/config.h b/include/asm-ppc/config.h index 796707e..0d78aa4 100644 --- a/include/asm-ppc/config.h +++ b/include/asm-ppc/config.h @@ -21,6 +21,8 @@ #ifndef _ASM_CONFIG_H_ #define _ASM_CONFIG_H_ +#define CONFIG_LMB + #ifndef CONFIG_MAX_MEM_MAPPED #if defined(CONFIG_4xx) || defined(CONFIG_E500) || defined(CONFIG_MPC86xx) #define CONFIG_MAX_MEM_MAPPED ((phys_size_t)2 << 30) diff --git a/include/asm-sparc/config.h b/include/asm-sparc/config.h index 049c44e..36438be 100644 --- a/include/asm-sparc/config.h +++ b/include/asm-sparc/config.h @@ -21,4 +21,6 @@ #ifndef _ASM_CONFIG_H_ #define _ASM_CONFIG_H_ +#define CONFIG_LMB + #endif diff --git a/include/image.h b/include/image.h index d2e78fe..4ed0379 100644 --- a/include/image.h +++ b/include/image.h @@ -56,6 +56,7 @@ #include <libfdt.h> #include <fdt_support.h> #define CONFIG_MD5 /* FIT images need MD5 support */ +#define CONFIG_SHA1 /* and SHA1 */ #endif /* @@ -255,7 +256,7 @@ typedef struct bootm_headers { #define BOOTM_STATE_OS_GO (0x00000080) int state; -#ifndef USE_HOSTCC +#ifdef CONFIG_LMB struct lmb lmb; /* for memory mgmt */ #endif } bootm_headers_t; diff --git a/include/lmb.h b/include/lmb.h index 14e8727..43082a3 100644 --- a/include/lmb.h +++ b/include/lmb.h @@ -52,6 +52,10 @@ lmb_size_bytes(struct lmb_region *type, unsigned long region_nr) { return type->region[region_nr].size; } + +void board_lmb_reserve(struct lmb *lmb); +void arch_lmb_reserve(struct lmb *lmb); + #endif /* __KERNEL__ */ #endif /* _LINUX_LMB_H */ diff --git a/lib_generic/Makefile b/lib_generic/Makefile index c17179c..4e4496a 100644 --- a/lib_generic/Makefile +++ b/lib_generic/Makefile @@ -38,11 +38,11 @@ COBJS-y += ctype.o COBJS-y += display_options.o COBJS-y += div64.o COBJS-y += gunzip.o -COBJS-y += lmb.o +COBJS-$(CONFIG_LMB) += lmb.o COBJS-y += ldiv.o COBJS-$(CONFIG_MD5) += md5.o COBJS-y += net_utils.o -COBJS-y += sha1.o +COBJS-$(CONFIG_SHA1) += sha1.o COBJS-$(CONFIG_SHA256) += sha256.o COBJS-y += string.o COBJS-y += strmhz.o diff --git a/lib_generic/lmb.c b/lib_generic/lmb.c index 1c6cf7c..c5e75fb 100644 --- a/lib_generic/lmb.c +++ b/lib_generic/lmb.c @@ -334,3 +334,15 @@ int lmb_is_reserved(struct lmb *lmb, phys_addr_t addr) } return 0; } + +void __board_lmb_reserve(struct lmb *lmb) +{ + /* please define platform specific board_lmb_reserve() */ +} +void board_lmb_reserve(struct lmb *lmb) __attribute__((weak, alias("__board_lmb_reserve"))); + +void __arch_lmb_reserve(struct lmb *lmb) +{ + /* please define platform specific arch_lmb_reserve() */ +} +void arch_lmb_reserve(struct lmb *lmb) __attribute__((weak, alias("__arch_lmb_reserve"))); |