aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sh
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2010-01-12 23:29:19 -0500
committerPaul Mundt <lethal@linux-sh.org>2010-01-12 23:29:19 -0500
commitc7b16efb7d0c7fce218b2cdafa2432c5fbf57314 (patch)
treeb82e0aa1c50b9d0bf358b0c2050695e2c8094748 /arch/sh
parent644755e7867710a23e6243dcc69cfc071985f560 (diff)
sh: Add support for LZO-compressed kernels.
Plugs in LZO along with the others. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh')
-rw-r--r--arch/sh/Kconfig1
-rw-r--r--arch/sh/Makefile5
-rw-r--r--arch/sh/boot/Makefile21
-rw-r--r--arch/sh/boot/compressed/Makefile3
-rw-r--r--arch/sh/boot/compressed/misc.c4
5 files changed, 26 insertions, 8 deletions
diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig
index 4eaf3401a15e..5ac0115c9e20 100644
--- a/arch/sh/Kconfig
+++ b/arch/sh/Kconfig
@@ -22,6 +22,7 @@ config SUPERH
22 select HAVE_KERNEL_GZIP 22 select HAVE_KERNEL_GZIP
23 select HAVE_KERNEL_BZIP2 23 select HAVE_KERNEL_BZIP2
24 select HAVE_KERNEL_LZMA 24 select HAVE_KERNEL_LZMA
25 select HAVE_KERNEL_LZO
25 select HAVE_SYSCALL_TRACEPOINTS 26 select HAVE_SYSCALL_TRACEPOINTS
26 select RTC_LIB 27 select RTC_LIB
27 select GENERIC_ATOMIC64 28 select GENERIC_ATOMIC64
diff --git a/arch/sh/Makefile b/arch/sh/Makefile
index db91925c79d1..fd57676115e6 100644
--- a/arch/sh/Makefile
+++ b/arch/sh/Makefile
@@ -203,8 +203,8 @@ endif
203libs-$(CONFIG_SUPERH32) := arch/sh/lib/ $(libs-y) 203libs-$(CONFIG_SUPERH32) := arch/sh/lib/ $(libs-y)
204libs-$(CONFIG_SUPERH64) := arch/sh/lib64/ $(libs-y) 204libs-$(CONFIG_SUPERH64) := arch/sh/lib64/ $(libs-y)
205 205
206BOOT_TARGETS = uImage uImage.bz2 uImage.gz uImage.lzma uImage.srec uImage.bin \ 206BOOT_TARGETS = uImage uImage.bz2 uImage.gz uImage.lzma uImage.lzo \
207 zImage vmlinux.srec romImage 207 uImage.srec uImage.bin zImage vmlinux.srec romImage
208PHONY += $(BOOT_TARGETS) 208PHONY += $(BOOT_TARGETS)
209 209
210all: $(KBUILD_IMAGE) 210all: $(KBUILD_IMAGE)
@@ -231,4 +231,5 @@ define archhelp
231 @echo '* uImage.gz - Kernel-only image for U-Boot (gzip)' 231 @echo '* uImage.gz - Kernel-only image for U-Boot (gzip)'
232 @echo ' uImage.bz2 - Kernel-only image for U-Boot (bzip2)' 232 @echo ' uImage.bz2 - Kernel-only image for U-Boot (bzip2)'
233 @echo ' uImage.lzma - Kernel-only image for U-Boot (lzma)' 233 @echo ' uImage.lzma - Kernel-only image for U-Boot (lzma)'
234 @echo ' uImage.lzo - Kernel-only image for U-Boot (lzo)'
234endef 235endef
diff --git a/arch/sh/boot/Makefile b/arch/sh/boot/Makefile
index cb8cf5572e79..743ce0c8d98d 100644
--- a/arch/sh/boot/Makefile
+++ b/arch/sh/boot/Makefile
@@ -21,12 +21,15 @@ CONFIG_ZERO_PAGE_OFFSET ?= 0x00001000
21CONFIG_ENTRY_OFFSET ?= 0x00001000 21CONFIG_ENTRY_OFFSET ?= 0x00001000
22 22
23suffix-y := bin 23suffix-y := bin
24suffix-$(CONFIG_KERNEL_GZIP) := gz 24suffix-$(CONFIG_KERNEL_GZIP) := gz
25suffix-$(CONFIG_KERNEL_BZIP2) := bz2 25suffix-$(CONFIG_KERNEL_BZIP2) := bz2
26suffix-$(CONFIG_KERNEL_LZMA) := lzma 26suffix-$(CONFIG_KERNEL_LZMA) := lzma
27 27suffix-$(CONFIG_KERNEL_LZO) := lzo
28targets := zImage vmlinux.srec romImage uImage uImage.srec uImage.gz uImage.bz2 uImage.lzma uImage.bin 28
29extra-y += vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2 vmlinux.bin.lzma 29targets := zImage vmlinux.srec romImage uImage uImage.srec uImage.gz \
30 uImage.bz2 uImage.lzma uImage.lzo uImage.bin
31extra-y += vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2 vmlinux.bin.lzma \
32 vmlinux.bin.lzo
30subdir- := compressed romimage 33subdir- := compressed romimage
31 34
32$(obj)/zImage: $(obj)/compressed/vmlinux FORCE 35$(obj)/zImage: $(obj)/compressed/vmlinux FORCE
@@ -80,6 +83,9 @@ $(obj)/vmlinux.bin.bz2: $(obj)/vmlinux.bin FORCE
80$(obj)/vmlinux.bin.lzma: $(obj)/vmlinux.bin FORCE 83$(obj)/vmlinux.bin.lzma: $(obj)/vmlinux.bin FORCE
81 $(call if_changed,lzma) 84 $(call if_changed,lzma)
82 85
86$(obj)/vmlinux.bin.lzo: $(obj)/vmlinux.bin FORCE
87 $(call if_changed,lzo)
88
83$(obj)/uImage.bz2: $(obj)/vmlinux.bin.bz2 89$(obj)/uImage.bz2: $(obj)/vmlinux.bin.bz2
84 $(call if_changed,uimage,bzip2) 90 $(call if_changed,uimage,bzip2)
85 91
@@ -89,6 +95,9 @@ $(obj)/uImage.gz: $(obj)/vmlinux.bin.gz
89$(obj)/uImage.lzma: $(obj)/vmlinux.bin.lzma 95$(obj)/uImage.lzma: $(obj)/vmlinux.bin.lzma
90 $(call if_changed,uimage,lzma) 96 $(call if_changed,uimage,lzma)
91 97
98$(obj)/uImage.lzo: $(obj)/vmlinux.bin.lzo
99 $(call if_changed,uimage,lzo)
100
92$(obj)/uImage.bin: $(obj)/vmlinux.bin 101$(obj)/uImage.bin: $(obj)/vmlinux.bin
93 $(call if_changed,uimage,none) 102 $(call if_changed,uimage,none)
94 103
diff --git a/arch/sh/boot/compressed/Makefile b/arch/sh/boot/compressed/Makefile
index 6182eca5180a..6b95a2a48267 100644
--- a/arch/sh/boot/compressed/Makefile
+++ b/arch/sh/boot/compressed/Makefile
@@ -6,6 +6,7 @@
6 6
7targets := vmlinux vmlinux.bin vmlinux.bin.gz \ 7targets := vmlinux vmlinux.bin vmlinux.bin.gz \
8 vmlinux.bin.bz2 vmlinux.bin.lzma \ 8 vmlinux.bin.bz2 vmlinux.bin.lzma \
9 vmlinux.bin.lzo \
9 head_$(BITS).o misc.o piggy.o 10 head_$(BITS).o misc.o piggy.o
10 11
11OBJECTS = $(obj)/head_$(BITS).o $(obj)/misc.o $(obj)/cache.o 12OBJECTS = $(obj)/head_$(BITS).o $(obj)/misc.o $(obj)/cache.o
@@ -47,6 +48,8 @@ $(obj)/vmlinux.bin.bz2: $(vmlinux.bin.all-y) FORCE
47 $(call if_changed,bzip2) 48 $(call if_changed,bzip2)
48$(obj)/vmlinux.bin.lzma: $(vmlinux.bin.all-y) FORCE 49$(obj)/vmlinux.bin.lzma: $(vmlinux.bin.all-y) FORCE
49 $(call if_changed,lzma) 50 $(call if_changed,lzma)
51$(obj)/vmlinux.bin.lzo: $(vmlinux.bin.all-y) FORCE
52 $(call if_changed,lzo)
50 53
51OBJCOPYFLAGS += -R .empty_zero_page 54OBJCOPYFLAGS += -R .empty_zero_page
52 55
diff --git a/arch/sh/boot/compressed/misc.c b/arch/sh/boot/compressed/misc.c
index b51b1fc4baae..4b319e9e4f88 100644
--- a/arch/sh/boot/compressed/misc.c
+++ b/arch/sh/boot/compressed/misc.c
@@ -62,6 +62,10 @@ static unsigned long free_mem_end_ptr;
62#include "../../../../lib/decompress_unlzma.c" 62#include "../../../../lib/decompress_unlzma.c"
63#endif 63#endif
64 64
65#ifdef CONFIG_KERNEL_LZO
66#include "../../../../lib/decompress_unlzo.c"
67#endif
68
65#ifdef CONFIG_SH_STANDARD_BIOS 69#ifdef CONFIG_SH_STANDARD_BIOS
66size_t strlen(const char *s) 70size_t strlen(const char *s)
67{ 71{