mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-05 02:21:52 +09:00
amfc: compress kernel by zstd [1/1]
PD#SWPL-181954 Change-Id: Iaec2a486f4dfb7788238775c4a92d2727b00d45b Signed-off-by: Tao Zeng <tao.zeng@amlogic.com>
This commit is contained in:
@@ -181,8 +181,66 @@ $(obj)/vmlinux: $(obj)/vmlinux.lds $(obj)/$(HEAD) $(obj)/piggy.o \
|
||||
$(call if_changed,ld)
|
||||
@$(check_for_bad_syms)
|
||||
|
||||
ifneq ($(CONFIG_AMLOGIC_AMFC), )
|
||||
|
||||
ifeq ($(srctree),)
|
||||
srctree := $(patsubst %/,%,$(dir $(CURDIR)))
|
||||
srctree := $(patsubst %/,%,$(dir $(srctree)))
|
||||
endif
|
||||
|
||||
zstd_src := $(srctree)/common_drivers/drivers/amfc/zstd_tool/common/debug.c
|
||||
zstd_src += $(srctree)/common_drivers/drivers/amfc/zstd_tool/common/entropy_common.c
|
||||
zstd_src += $(srctree)/common_drivers/drivers/amfc/zstd_tool/common/error_private.c
|
||||
zstd_src += $(srctree)/common_drivers/drivers/amfc/zstd_tool/common/fse_decompress.c
|
||||
zstd_src += $(srctree)/common_drivers/drivers/amfc/zstd_tool/common/pool.c
|
||||
zstd_src += $(srctree)/common_drivers/drivers/amfc/zstd_tool/common/threading.c
|
||||
zstd_src += $(srctree)/common_drivers/drivers/amfc/zstd_tool/common/xxhash.c
|
||||
zstd_src += $(srctree)/common_drivers/drivers/amfc/zstd_tool/common/zstd_common.c
|
||||
zstd_src += $(srctree)/common_drivers/drivers/amfc/zstd_tool/compress/fse_compress.c
|
||||
zstd_src += $(srctree)/common_drivers/drivers/amfc/zstd_tool/compress/hist.c
|
||||
zstd_src += $(srctree)/common_drivers/drivers/amfc/zstd_tool/compress/huf_compress.c
|
||||
zstd_src += $(srctree)/common_drivers/drivers/amfc/zstd_tool/compress/zstd_compress.c
|
||||
zstd_src += $(srctree)/common_drivers/drivers/amfc/zstd_tool/compress/zstd_compress_literals.c
|
||||
zstd_src += $(srctree)/common_drivers/drivers/amfc/zstd_tool/compress/zstd_compress_sequences.c
|
||||
zstd_src += $(srctree)/common_drivers/drivers/amfc/zstd_tool/compress/zstd_compress_superblock.c
|
||||
zstd_src += $(srctree)/common_drivers/drivers/amfc/zstd_tool/compress/zstd_double_fast.c
|
||||
zstd_src += $(srctree)/common_drivers/drivers/amfc/zstd_tool/compress/zstd_fast.c
|
||||
zstd_src += $(srctree)/common_drivers/drivers/amfc/zstd_tool/compress/zstd_lazy.c
|
||||
zstd_src += $(srctree)/common_drivers/drivers/amfc/zstd_tool/compress/zstd_ldm.c
|
||||
zstd_src += $(srctree)/common_drivers/drivers/amfc/zstd_tool/compress/zstd_opt.c
|
||||
zstd_src += $(srctree)/common_drivers/drivers/amfc/zstd_tool/compress/zstdmt_compress.c
|
||||
zstd_src += $(srctree)/common_drivers/drivers/amfc/zstd_tool/decompress/huf_decompress.c
|
||||
zstd_src += $(srctree)/common_drivers/drivers/amfc/zstd_tool/decompress/huf_decompress_amd64.S
|
||||
zstd_src += $(srctree)/common_drivers/drivers/amfc/zstd_tool/decompress/zstd_ddict.c
|
||||
zstd_src += $(srctree)/common_drivers/drivers/amfc/zstd_tool/decompress/zstd_decompress.c
|
||||
zstd_src += $(srctree)/common_drivers/drivers/amfc/zstd_tool/decompress/zstd_decompress_block.c
|
||||
zstd_src += $(srctree)/common_drivers/drivers/amfc/zstd_tool/dictBuilder/cover.c
|
||||
zstd_src += $(srctree)/common_drivers/drivers/amfc/zstd_tool/dictBuilder/divsufsort.c
|
||||
zstd_src += $(srctree)/common_drivers/drivers/amfc/zstd_tool/dictBuilder/fastcover.c
|
||||
zstd_src += $(srctree)/common_drivers/drivers/amfc/zstd_tool/dictBuilder/zdict.c
|
||||
zstd_src += $(srctree)/common_drivers/drivers/amfc/zstd_tool/legacy/zstd_v05.c
|
||||
zstd_src += $(srctree)/common_drivers/drivers/amfc/zstd_tool/legacy/zstd_v06.c
|
||||
zstd_src += $(srctree)/common_drivers/drivers/amfc/zstd_tool/legacy/zstd_v07.c
|
||||
zstd_src += $(srctree)/common_drivers/drivers/amfc/zstd_tool/benchfn.c
|
||||
zstd_src += $(srctree)/common_drivers/drivers/amfc/zstd_tool/benchzstd.c
|
||||
zstd_src += $(srctree)/common_drivers/drivers/amfc/zstd_tool/datagen.c
|
||||
zstd_src += $(srctree)/common_drivers/drivers/amfc/zstd_tool/dibio.c
|
||||
zstd_src += $(srctree)/common_drivers/drivers/amfc/zstd_tool/fileio.c
|
||||
zstd_src += $(srctree)/common_drivers/drivers/amfc/zstd_tool/timefn.c
|
||||
zstd_src += $(srctree)/common_drivers/drivers/amfc/zstd_tool/util.c
|
||||
zstd_src += $(srctree)/common_drivers/drivers/amfc/zstd_tool/zstdcli.c
|
||||
zstd_src += $(srctree)/common_drivers/drivers/amfc/zstd_tool/zstdcli_trace.c
|
||||
|
||||
$(obj)/zstd:
|
||||
$(HOSTCC) $(zstd_src) $(LDFLAGS) -o $@
|
||||
cp -n $@ $(srctree)/
|
||||
|
||||
$(obj)/piggy_data: $(obj)/../Image $(obj)/zstd FORCE
|
||||
$(srctree)/zstd -a -19 $< -o $@
|
||||
else # CONFIG_AMLOGIC_AMFC
|
||||
$(obj)/piggy_data: $(obj)/../Image FORCE
|
||||
$(call if_changed,$(compress-y))
|
||||
endif # CONFIG_AMLOGIC_AMFC
|
||||
|
||||
$(obj)/piggy.o: $(obj)/piggy_data
|
||||
|
||||
|
||||
@@ -34,6 +34,10 @@ extern size_t strlen(const char *s);
|
||||
extern int memcmp(const void *cs, const void *ct, size_t count);
|
||||
extern char * strchrnul(const char *, int);
|
||||
|
||||
#if IS_ENABLED(CONFIG_AMLOGIC_AMFC)
|
||||
#define __UNCOMPRESS_IMAGE__
|
||||
#include "../../../../common_drivers/drivers/amfc/decompress_amfc.c"
|
||||
#else /* CONFIG_AMLOGIC_AMFC */
|
||||
#ifdef CONFIG_KERNEL_GZIP
|
||||
#include "../../../../lib/decompress_inflate.c"
|
||||
#endif
|
||||
@@ -58,6 +62,7 @@ extern char * strchrnul(const char *, int);
|
||||
#ifdef CONFIG_KERNEL_LZ4
|
||||
#include "../../../../lib/decompress_unlz4.c"
|
||||
#endif
|
||||
#endif /* CONFIG_AMLOGIC_AMFC */
|
||||
|
||||
int do_decompress(u8 *input, int len, u8 *output, void (*error)(char *x))
|
||||
{
|
||||
|
||||
@@ -1211,6 +1211,18 @@ __armv7_mmu_cache_off:
|
||||
mcr p15, 0, r0, c7, c5, 4 @ ISB
|
||||
mov pc, lr
|
||||
|
||||
#if IS_ENABLED(CONFIG_AMLOGIC_AMFC)
|
||||
.global serial_putc
|
||||
serial_putc:
|
||||
ldr r2, =0xfe07840c @T6D
|
||||
1111:
|
||||
ldr r3, [r2, #0]
|
||||
lsls r3, r3, #10
|
||||
bmi 1111b
|
||||
ldr r3, =0xfe078400 @T6D
|
||||
str r0, [r3, #0]
|
||||
bx lr
|
||||
#endif
|
||||
/*
|
||||
* Clean and flush the cache to maintain consistency.
|
||||
*
|
||||
@@ -1223,6 +1235,9 @@ __armv7_mmu_cache_off:
|
||||
* r4, r6, r7, r8
|
||||
*/
|
||||
.align 5
|
||||
#if IS_ENABLED(CONFIG_AMLOGIC_AMFC)
|
||||
.global cache_clean_flush
|
||||
#endif
|
||||
cache_clean_flush:
|
||||
mov r3, #16
|
||||
mov r11, r1
|
||||
|
||||
Reference in New Issue
Block a user