sh: Consolidate the sh64 changes in arch/sh/boot/compressed/misc_32.c
authorPaul Mundt <lethal@linux-sh.org>
Sat, 11 Jul 2009 17:30:38 +0000 (13:30 -0400)
committerPaul Mundt <lethal@linux-sh.org>
Sat, 11 Jul 2009 17:30:38 +0000 (13:30 -0400)
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

index b86e359..4eb27e6 100644 (file)
 #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];
-longstack_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");
 }