git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fedora kernel-2.6.17-1.2142_FC4 patched with stable patch-2.6.17.4-vs2.0.2-rc26.diff
[linux-2.6.git]
/
arch
/
arm
/
boot
/
compressed
/
misc.c
diff --git
a/arch/arm/boot/compressed/misc.c
b/arch/arm/boot/compressed/misc.c
index
ebcac6c
..
ace3fb5
100644
(file)
--- a/
arch/arm/boot/compressed/misc.c
+++ b/
arch/arm/boot/compressed/misc.c
@@
-20,24
+20,45
@@
unsigned int __machine_arch_type;
#include <linux/string.h>
#include <linux/string.h>
-#include <asm/arch/uncompress.h>
-
#ifdef STANDALONE_DEBUG
#ifdef STANDALONE_DEBUG
-#define puts printf
-#endif
+#define putstr printf
+#else
+
+static void putstr(const char *ptr);
+
+#include <linux/compiler.h>
+#include <asm/arch/uncompress.h>
#ifdef CONFIG_DEBUG_ICEDCC
#ifdef CONFIG_DEBUG_ICEDCC
-#define puts icedcc_puts
-#define putc icedcc_putc
+static void icedcc_putc(int ch)
+{
+ int status, i = 0x4000000;
+
+ do {
+ if (--i < 0)
+ return;
-extern void idedcc_putc(int ch);
+ asm volatile ("mrc p14, 0, %0, c0, c0, 0" : "=r" (status));
+ } while (status & 2);
-static void
-icedcc_puts(const char *ptr)
+ asm("mcr p14, 0, %0, c1, c0, 0" : : "r" (ch));
+}
+
+#define putc(ch) icedcc_putc(ch)
+#define flush() do { } while (0)
+#endif
+
+static void putstr(const char *ptr)
{
{
- for (; *ptr != '\0'; ptr++) {
- icedcc_putc(*ptr);
+ char c;
+
+ while ((c = *ptr++) != '\0') {
+ if (c == '\n')
+ putc('\r');
+ putc(c);
}
}
+
+ flush();
}
#endif
}
#endif
@@
-191,7
+212,7
@@
static void error(char *m);
static void gzip_mark(void **);
static void gzip_release(void **);
static void gzip_mark(void **);
static void gzip_release(void **);
-static void puts(const char *);
+static void puts
tr
(const char *);
extern int end;
static ulg free_mem_ptr;
extern int end;
static ulg free_mem_ptr;
@@
-280,14
+301,20
@@
void flush_window(void)
bytes_out += (ulg)outcnt;
output_ptr += (ulg)outcnt;
outcnt = 0;
bytes_out += (ulg)outcnt;
output_ptr += (ulg)outcnt;
outcnt = 0;
- puts(".");
+ puts
tr
(".");
}
}
+#ifndef arch_error
+#define arch_error(x)
+#endif
+
static void error(char *x)
{
static void error(char *x)
{
- puts("\n\n");
- puts(x);
- puts("\n\n -- System halted");
+ arch_error(x);
+
+ putstr("\n\n");
+ putstr(x);
+ putstr("\n\n -- System halted");
while(1); /* Halt */
}
while(1); /* Halt */
}
@@
-306,9
+333,9
@@
decompress_kernel(ulg output_start, ulg free_mem_ptr_p, ulg free_mem_ptr_end_p,
arch_decomp_setup();
makecrc();
arch_decomp_setup();
makecrc();
- puts("Uncompressing Linux...");
+ puts
tr
("Uncompressing Linux...");
gunzip();
gunzip();
- puts(" done, booting the kernel.\n");
+ puts
tr
(" done, booting the kernel.\n");
return output_ptr;
}
#else
return output_ptr;
}
#else
@@
-320,9
+347,9
@@
int main()
output_data = output_buffer;
makecrc();
output_data = output_buffer;
makecrc();
- puts("Uncompressing Linux...");
+ puts
tr
("Uncompressing Linux...");
gunzip();
gunzip();
- puts("done.\n");
+ puts
tr
("done.\n");
return 0;
}
#endif
return 0;
}
#endif