From b14c6d428a54fb3235e69fd78fba9080c96645be Mon Sep 17 00:00:00 2001
From: Paul Mundt <lethal@linux-sh.org>
Date: Sat, 11 Jul 2009 13:30:38 -0400
Subject: sh: Consolidate the sh64 changes in arch/sh/boot/compressed/misc_32.c

This makes some minor changes to misc_32.c so that it can be used by
sh64.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
---
 arch/sh/boot/compressed/misc_32.c | 17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)

diff --git a/arch/sh/boot/compressed/misc_32.c b/arch/sh/boot/compressed/misc_32.c
index b86e3596918b..4eb27e61f8e3 100644
--- a/arch/sh/boot/compressed/misc_32.c
+++ b/arch/sh/boot/compressed/misc_32.c
@@ -26,7 +26,10 @@
 #undef memcpy
 #define memzero(s, n)     memset ((s), 0, (n))
 
-static void error(char *m);
+/* cache.c */
+#define CACHE_ENABLE      0
+#define CACHE_DISABLE     1
+int cache_control(unsigned int command);
 
 extern char input_data[];
 extern int input_len;
@@ -111,9 +114,15 @@ static void error(char *x)
 	while(1);	/* Halt */
 }
 
+#ifdef CONFIG_SUPERH64
+#define stackalign	8
+#else
+#define stackalign	4
+#endif
+
 #define STACK_SIZE (4096)
-long user_stack [STACK_SIZE];
-long* stack_start = &user_stack[STACK_SIZE];
+long __attribute__ ((aligned(stackalign))) user_stack[STACK_SIZE];
+long *stack_start = &user_stack[STACK_SIZE];
 
 void decompress_kernel(void)
 {
@@ -129,6 +138,8 @@ void decompress_kernel(void)
 	free_mem_end_ptr = free_mem_ptr + HEAP_SIZE;
 
 	puts("Uncompressing Linux... ");
+	cache_control(CACHE_ENABLE);
 	decompress(input_data, input_len, NULL, NULL, output, NULL, error);
+	cache_control(CACHE_DISABLE);
 	puts("Ok, booting the kernel.\n");
 }
-- 
cgit v1.2.3