X-Git-Url: http://git.ozo.com/?a=blobdiff_plain;f=target%2Flinux%2Famazon%2Ffiles%2Farch%2Fmips%2Famazon%2Fprom.c;h=3095fd50ba4b706f2a282d8ad5535415923316c8;hb=11288316a9c2df37b5b1cb33d5a0ba38593341fb;hp=f138bcbef4d6925fbc5f5de3fe4d365f40edb3ba;hpb=eac1cfc4ba154abfb89ea561030fdce14a0cdca0;p=openwrt-10.03%2F.git diff --git a/target/linux/amazon/files/arch/mips/amazon/prom.c b/target/linux/amazon/files/arch/mips/amazon/prom.c index f138bcbef..3095fd50b 100644 --- a/target/linux/amazon/files/arch/mips/amazon/prom.c +++ b/target/linux/amazon/files/arch/mips/amazon/prom.c @@ -39,32 +39,27 @@ void prom_putchar(char c) amazon_writel(c, AMAZON_ASC_TBUF); } -void prom_printf(const char * fmt, ...) +void __init prom_init(void) { - va_list args; - int l; - char *p, *buf_end; - char buf[1024]; + char **envp = (char **) fw_arg2; - va_start(args, fmt); - /* FIXME - hopefully i < sizeof(buf) */ - l = vsprintf(buf, fmt, args); - va_end(args); - buf_end = buf + l; - - for (p = buf; p < buf_end; p++) - prom_putchar(*p); -} + int memsize = 16; /* assume 16M as default */ + envp = (char **)KSEG1ADDR((unsigned long)envp); + while (*envp) { + char *e = (char *)KSEG1ADDR(*envp); -void __init prom_init(void) -{ - mips_machgroup = MACH_GROUP_INFINEON; - mips_machtype = MACH_INFINEON_AMAZON; + if (!strncmp(e, "memsize=", 8)) { + e += 8; + memsize = simple_strtoul(e, NULL, 10); + } + envp++; + } + memsize *= 1024 * 1024; strcpy(&(arcs_cmdline[0]), "console=ttyS0,115200 rootfstype=squashfs,jffs2"); - add_memory_region(0x00000000, 0x1000000, BOOT_MEM_RAM); + add_memory_region(0x00000000, memsize, BOOT_MEM_RAM); } void prom_free_prom_memory(void)