mirror of
https://github.com/u-boot/u-boot.git
synced 2025-04-22 12:54:37 +00:00
image: Update image_decomp() to avoid ifdefs
Adjust this function so that preprocessor macros are not needed. With this, the host build uses more of the same header files as the target build. Rather than definining CONFIG_SYS_MALLOC_LEN, add a CONSERVE_MEMORY define, since that is the purpose of the value. This appears to have no impact on code size from a spot check of a few boards (snow, firefly-rk3288, boston32r2el, m53menlo). Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
5a4f10d71b
commit
458b30af66
2 changed files with 76 additions and 84 deletions
|
@ -22,12 +22,9 @@
|
||||||
#include <status_led.h>
|
#include <status_led.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <abuf.h>
|
|
||||||
#include <rtc.h>
|
#include <rtc.h>
|
||||||
|
|
||||||
#include <gzip.h>
|
|
||||||
#include <image.h>
|
#include <image.h>
|
||||||
#include <lz4.h>
|
|
||||||
#include <mapmem.h>
|
#include <mapmem.h>
|
||||||
|
|
||||||
#if IMAGE_ENABLE_FIT || IMAGE_ENABLE_OF_LIBFDT
|
#if IMAGE_ENABLE_FIT || IMAGE_ENABLE_OF_LIBFDT
|
||||||
|
@ -43,13 +40,6 @@
|
||||||
#include <linux/errno.h>
|
#include <linux/errno.h>
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
|
|
||||||
#include <bzlib.h>
|
|
||||||
#include <linux/lzo.h>
|
|
||||||
#include <lzma/LzmaTypes.h>
|
|
||||||
#include <lzma/LzmaDec.h>
|
|
||||||
#include <lzma/LzmaTools.h>
|
|
||||||
#include <linux/zstd.h>
|
|
||||||
|
|
||||||
#ifdef CONFIG_CMD_BDI
|
#ifdef CONFIG_CMD_BDI
|
||||||
extern int do_bdinfo(struct cmd_tbl *cmdtp, int flag, int argc,
|
extern int do_bdinfo(struct cmd_tbl *cmdtp, int flag, int argc,
|
||||||
char *const argv[]);
|
char *const argv[]);
|
||||||
|
@ -61,7 +51,15 @@ DECLARE_GLOBAL_DATA_PTR;
|
||||||
static const image_header_t *image_get_ramdisk(ulong rd_addr, uint8_t arch,
|
static const image_header_t *image_get_ramdisk(ulong rd_addr, uint8_t arch,
|
||||||
int verify);
|
int verify);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* Set this if we have less than 4 MB of malloc() space */
|
||||||
|
#if CONFIG_SYS_MALLOC_LEN < (4096 * 1024)
|
||||||
|
#define CONSERVE_MEMORY true
|
||||||
#else
|
#else
|
||||||
|
#define CONSERVE_MEMORY false
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#else /* USE_HOSTCC */
|
||||||
#include "mkimage.h"
|
#include "mkimage.h"
|
||||||
#include <u-boot/md5.h>
|
#include <u-boot/md5.h>
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
|
@ -70,10 +68,23 @@ static const image_header_t *image_get_ramdisk(ulong rd_addr, uint8_t arch,
|
||||||
#ifndef __maybe_unused
|
#ifndef __maybe_unused
|
||||||
# define __maybe_unused /* unimplemented */
|
# define __maybe_unused /* unimplemented */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define CONSERVE_MEMORY false
|
||||||
|
|
||||||
#endif /* !USE_HOSTCC*/
|
#endif /* !USE_HOSTCC*/
|
||||||
|
|
||||||
#include <u-boot/crc.h>
|
#include <abuf.h>
|
||||||
|
#include <bzlib.h>
|
||||||
|
#include <gzip.h>
|
||||||
|
#include <lz4.h>
|
||||||
#include <imximage.h>
|
#include <imximage.h>
|
||||||
|
#include <linux/lzo.h>
|
||||||
|
#include <linux/zstd.h>
|
||||||
|
#include <linux/kconfig.h>
|
||||||
|
#include <lzma/LzmaTypes.h>
|
||||||
|
#include <lzma/LzmaDec.h>
|
||||||
|
#include <lzma/LzmaTools.h>
|
||||||
|
#include <u-boot/crc.h>
|
||||||
|
|
||||||
#ifndef CONFIG_SYS_BARGSIZE
|
#ifndef CONFIG_SYS_BARGSIZE
|
||||||
#define CONFIG_SYS_BARGSIZE 512
|
#define CONFIG_SYS_BARGSIZE 512
|
||||||
|
@ -466,17 +477,12 @@ int image_decomp(int comp, ulong load, ulong image_start, int type,
|
||||||
else
|
else
|
||||||
ret = -ENOSPC;
|
ret = -ENOSPC;
|
||||||
break;
|
break;
|
||||||
#ifndef USE_HOSTCC
|
case IH_COMP_GZIP:
|
||||||
#if CONFIG_IS_ENABLED(GZIP)
|
if (!host_build() && CONFIG_IS_ENABLED(GZIP))
|
||||||
case IH_COMP_GZIP: {
|
|
||||||
ret = gunzip(load_buf, unc_len, image_buf, &image_len);
|
ret = gunzip(load_buf, unc_len, image_buf, &image_len);
|
||||||
break;
|
break;
|
||||||
}
|
case IH_COMP_BZIP2:
|
||||||
#endif /* CONFIG_GZIP */
|
if (!host_build() && CONFIG_IS_ENABLED(BZIP2)) {
|
||||||
#endif
|
|
||||||
#ifndef USE_HOSTCC
|
|
||||||
#if CONFIG_IS_ENABLED(BZIP2)
|
|
||||||
case IH_COMP_BZIP2: {
|
|
||||||
uint size = unc_len;
|
uint size = unc_len;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -485,50 +491,37 @@ int image_decomp(int comp, ulong load, ulong image_start, int type,
|
||||||
* at most 2300 KB of memory.
|
* at most 2300 KB of memory.
|
||||||
*/
|
*/
|
||||||
ret = BZ2_bzBuffToBuffDecompress(load_buf, &size,
|
ret = BZ2_bzBuffToBuffDecompress(load_buf, &size,
|
||||||
image_buf, image_len,
|
image_buf, image_len, CONSERVE_MEMORY, 0);
|
||||||
CONFIG_SYS_MALLOC_LEN < (4096 * 1024), 0);
|
|
||||||
image_len = size;
|
image_len = size;
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_BZIP2 */
|
break;
|
||||||
#endif
|
case IH_COMP_LZMA:
|
||||||
#ifndef USE_HOSTCC
|
if (!host_build() && CONFIG_IS_ENABLED(LZMA)) {
|
||||||
#if CONFIG_IS_ENABLED(LZMA)
|
|
||||||
case IH_COMP_LZMA: {
|
|
||||||
SizeT lzma_len = unc_len;
|
SizeT lzma_len = unc_len;
|
||||||
|
|
||||||
ret = lzmaBuffToBuffDecompress(load_buf, &lzma_len,
|
ret = lzmaBuffToBuffDecompress(load_buf, &lzma_len,
|
||||||
image_buf, image_len);
|
image_buf, image_len);
|
||||||
image_len = lzma_len;
|
image_len = lzma_len;
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_LZMA */
|
break;
|
||||||
#endif
|
case IH_COMP_LZO:
|
||||||
#ifndef USE_HOSTCC
|
if (!host_build() && CONFIG_IS_ENABLED(LZO)) {
|
||||||
#if CONFIG_IS_ENABLED(LZO)
|
|
||||||
case IH_COMP_LZO: {
|
|
||||||
size_t size = unc_len;
|
size_t size = unc_len;
|
||||||
|
|
||||||
ret = lzop_decompress(image_buf, image_len, load_buf, &size);
|
ret = lzop_decompress(image_buf, image_len, load_buf, &size);
|
||||||
image_len = size;
|
image_len = size;
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_LZO */
|
break;
|
||||||
#endif
|
case IH_COMP_LZ4:
|
||||||
#ifndef USE_HOSTCC
|
if (!host_build() && CONFIG_IS_ENABLED(LZ4)) {
|
||||||
#if CONFIG_IS_ENABLED(LZ4)
|
|
||||||
case IH_COMP_LZ4: {
|
|
||||||
size_t size = unc_len;
|
size_t size = unc_len;
|
||||||
|
|
||||||
ret = ulz4fn(image_buf, image_len, load_buf, &size);
|
ret = ulz4fn(image_buf, image_len, load_buf, &size);
|
||||||
image_len = size;
|
image_len = size;
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_LZ4 */
|
break;
|
||||||
#endif
|
case IH_COMP_ZSTD:
|
||||||
#ifndef USE_HOSTCC
|
if (!host_build() && CONFIG_IS_ENABLED(ZSTD)) {
|
||||||
#if CONFIG_IS_ENABLED(ZSTD)
|
|
||||||
case IH_COMP_ZSTD: {
|
|
||||||
struct abuf in, out;
|
struct abuf in, out;
|
||||||
|
|
||||||
abuf_init_set(&in, image_buf, image_len);
|
abuf_init_set(&in, image_buf, image_len);
|
||||||
|
@ -538,10 +531,8 @@ int image_decomp(int comp, ulong load, ulong image_start, int type,
|
||||||
image_len = ret;
|
image_len = ret;
|
||||||
ret = 0;
|
ret = 0;
|
||||||
}
|
}
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
#endif /* CONFIG_ZSTD */
|
break;
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
if (ret == -ENOSYS) {
|
if (ret == -ENOSYS) {
|
||||||
printf("Unimplemented compression type %d\n", comp);
|
printf("Unimplemented compression type %d\n", comp);
|
||||||
|
@ -960,7 +951,7 @@ int get_table_entry_id(const table_entry_t *table,
|
||||||
const table_entry_t *t;
|
const table_entry_t *t;
|
||||||
|
|
||||||
for (t = table; t->id >= 0; ++t) {
|
for (t = table; t->id >= 0; ++t) {
|
||||||
#ifdef CONFIG_NEEDS_MANUAL_RELOC
|
#if !defined(USE_HOSTCC) && defined(CONFIG_NEEDS_MANUAL_RELOC)
|
||||||
if (t->sname && strcasecmp(t->sname + gd->reloc_off, name) == 0)
|
if (t->sname && strcasecmp(t->sname + gd->reloc_off, name) == 0)
|
||||||
#else
|
#else
|
||||||
if (t->sname && strcasecmp(t->sname, name) == 0)
|
if (t->sname && strcasecmp(t->sname, name) == 0)
|
||||||
|
|
|
@ -56,6 +56,7 @@ CONFIG_CMD_MEMINFO=y
|
||||||
CONFIG_CMD_MEM_SEARCH=y
|
CONFIG_CMD_MEM_SEARCH=y
|
||||||
CONFIG_CMD_MX_CYCLIC=y
|
CONFIG_CMD_MX_CYCLIC=y
|
||||||
CONFIG_CMD_MEMTEST=y
|
CONFIG_CMD_MEMTEST=y
|
||||||
|
CONFIG_CMD_UNZIP=y
|
||||||
CONFIG_CMD_BIND=y
|
CONFIG_CMD_BIND=y
|
||||||
CONFIG_CMD_DEMO=y
|
CONFIG_CMD_DEMO=y
|
||||||
CONFIG_CMD_GPIO=y
|
CONFIG_CMD_GPIO=y
|
||||||
|
|
Loading…
Add table
Reference in a new issue