1b93b3c3e9
This patch helps to generate smaller kernel images for linux-MIPS, Here is the effect when using lzma: $ ls -sh vmlinux 7.1M vmlinux $ ls -sh vmlinuz 1.5M vmlinuz Have tested the 32bit kernel on Qemu/Malta and 64bit kernel on FuLoong Mini PC. both of them work well. and also, tested by Alexander Clouter on an AR7 based Linksys WAG54Gv2, and by Manuel Lauss on an Alchemy board. This -v2 version incorporate the feedback from Ralf, and add the following changes: 1. add .ecoff, .bin, .erec format support 2. only enable it and the debug source code for the machines we tested 3. a dozen of fixups and cleanups and if you want to enable it for your board, please try to select SYS_SUPPORTS_ZBOOT for it, and if the board have an 16550 compatible uart, you can select SYS_SUPPORTS_ZBOOT_UART16550 directly. and then sending the relative patches to Ralf. Tested-by: Manuel Lauss <manuel.lauss@googlemail.com> Tested-by: Alexander Clouter <alex@digriz.org.uk> Signed-off-by: Wu Zhangjin <wuzhangjin@gmail.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
37 lines
661 B
C
37 lines
661 B
C
/*
|
|
* MIPS-specific debug support for pre-boot environment
|
|
*
|
|
* NOTE: putc() is board specific, if your board have a 16550 compatible uart,
|
|
* please select SYS_SUPPORTS_ZBOOT_UART16550 for your machine. othewise, you
|
|
* need to implement your own putc().
|
|
*/
|
|
|
|
#include <linux/init.h>
|
|
#include <linux/types.h>
|
|
|
|
void __attribute__ ((weak)) putc(char c)
|
|
{
|
|
}
|
|
|
|
void puts(const char *s)
|
|
{
|
|
char c;
|
|
while ((c = *s++) != '\0') {
|
|
putc(c);
|
|
if (c == '\n')
|
|
putc('\r');
|
|
}
|
|
}
|
|
|
|
void puthex(unsigned long long val)
|
|
{
|
|
|
|
unsigned char buf[10];
|
|
int i;
|
|
for (i = 7; i >= 0; i--) {
|
|
buf[i] = "0123456789ABCDEF"[val & 0x0F];
|
|
val >>= 4;
|
|
}
|
|
buf[8] = '\0';
|
|
puts(buf);
|
|
}
|