diff --git a/packages/linux/patches/linux-3.1.10-902_ARM_Wire_up_support_for_the_XZ_decompressor.patch b/packages/linux/patches/linux-3.1.10-902_ARM_Wire_up_support_for_the_XZ_decompressor.patch new file mode 100644 index 0000000000..252b1dbedd --- /dev/null +++ b/packages/linux/patches/linux-3.1.10-902_ARM_Wire_up_support_for_the_XZ_decompressor.patch @@ -0,0 +1,90 @@ +diff -Naur linux-3.1.10/arch/arm/boot/compressed/decompress.c linux-3.1.10.patch/arch/arm/boot/compressed/decompress.c +--- linux-3.1.10/arch/arm/boot/compressed/decompress.c 2012-01-18 16:33:18.000000000 +0100 ++++ linux-3.1.10.patch/arch/arm/boot/compressed/decompress.c 2012-05-16 14:56:14.573384665 +0200 +@@ -44,6 +44,10 @@ + #include "../../../../lib/decompress_unlzma.c" + #endif + ++#ifdef CONFIG_KERNEL_XZ ++#include "../../../../lib/decompress_unxz.c" ++#endif ++ + int do_decompress(u8 *input, int len, u8 *output, void (*error)(char *x)) + { + return decompress(input, len, NULL, NULL, output, NULL, error); +diff -Naur linux-3.1.10/arch/arm/boot/compressed/.gitignore linux-3.1.10.patch/arch/arm/boot/compressed/.gitignore +--- linux-3.1.10/arch/arm/boot/compressed/.gitignore 2012-01-18 16:33:18.000000000 +0100 ++++ linux-3.1.10.patch/arch/arm/boot/compressed/.gitignore 2012-05-16 14:56:14.061375297 +0200 +@@ -1,7 +1,9 @@ ++ashldi3.S + font.c + lib1funcs.S + piggy.gzip + piggy.lzo + piggy.lzma ++piggy.xzkern + vmlinux + vmlinux.lds +diff -Naur linux-3.1.10/arch/arm/boot/compressed/Makefile linux-3.1.10.patch/arch/arm/boot/compressed/Makefile +--- linux-3.1.10/arch/arm/boot/compressed/Makefile 2012-01-18 16:33:18.000000000 +0100 ++++ linux-3.1.10.patch/arch/arm/boot/compressed/Makefile 2012-05-16 15:03:10.707001557 +0200 +@@ -88,13 +88,14 @@ + suffix_$(CONFIG_KERNEL_GZIP) = gzip + suffix_$(CONFIG_KERNEL_LZO) = lzo + suffix_$(CONFIG_KERNEL_LZMA) = lzma ++suffix_$(CONFIG_KERNEL_XZ) = xzkern + + targets := vmlinux vmlinux.lds \ + piggy.$(suffix_y) piggy.$(suffix_y).o \ +- font.o font.c head.o misc.o $(OBJS) ++ ashldi3.o ashldi3.S font.o font.c head.o misc.o $(OBJS) + + # Make sure files are removed during clean +-extra-y += piggy.gzip piggy.lzo piggy.lzma lib1funcs.S ++extra-y += piggy.gzip piggy.lzo piggy.lzma piggy.xzkern lib1funcs.S ashldi3.S + + ifeq ($(CONFIG_FUNCTION_TRACER),y) + ORIG_CFLAGS := $(KBUILD_CFLAGS) +@@ -126,6 +127,12 @@ + $(obj)/lib1funcs.S: $(srctree)/arch/$(SRCARCH)/lib/lib1funcs.S FORCE + $(call cmd,shipped) + ++# For __aeabi_llsl ++ashldi3 = $(obj)/ashldi3.o ++ ++$(obj)/ashldi3.S: $(srctree)/arch/$(SRCARCH)/lib/ashldi3.S ++ $(call cmd,shipped) ++ + # We need to prevent any GOTOFF relocs being used with references + # to symbols in the .bss section since we cannot relocate them + # independently from the rest at run time. This can be achieved by +@@ -140,7 +147,7 @@ + echo "$$bad_syms" >&2; rm -f $@; false ) + + $(obj)/vmlinux: $(obj)/vmlinux.lds $(obj)/$(HEAD) $(obj)/piggy.$(suffix_y).o \ +- $(addprefix $(obj)/, $(OBJS)) $(lib1funcs) FORCE ++ $(addprefix $(obj)/, $(OBJS)) $(lib1funcs) $(ashldi3) FORCE + $(call if_changed,ld) + @$(check_for_bad_syms) + +diff -Naur linux-3.1.10/arch/arm/boot/compressed/piggy.xzkern.S linux-3.1.10.patch/arch/arm/boot/compressed/piggy.xzkern.S +--- linux-3.1.10/arch/arm/boot/compressed/piggy.xzkern.S 1970-01-01 01:00:00.000000000 +0100 ++++ linux-3.1.10.patch/arch/arm/boot/compressed/piggy.xzkern.S 2012-05-16 14:56:14.886390394 +0200 +@@ -0,0 +1,6 @@ ++ .section .piggydata,#alloc ++ .globl input_data ++input_data: ++ .incbin "arch/arm/boot/compressed/piggy.xzkern" ++ .globl input_data_end ++input_data_end: +diff -Naur linux-3.1.10/arch/arm/Kconfig linux-3.1.10.patch/arch/arm/Kconfig +--- linux-3.1.10/arch/arm/Kconfig 2012-01-18 16:33:18.000000000 +0100 ++++ linux-3.1.10.patch/arch/arm/Kconfig 2012-05-16 14:56:13.918372675 +0200 +@@ -20,6 +20,7 @@ + select HAVE_KERNEL_GZIP + select HAVE_KERNEL_LZO + select HAVE_KERNEL_LZMA ++ select HAVE_KERNEL_XZ + select HAVE_IRQ_WORK + select HAVE_PERF_EVENTS + select PERF_USE_VMALLOC