/*
 * linux/arch/mips/tx4938/toshiba_rbtx4938/prom.c
 *
 * rbtx4938 specific prom routines
 * Copyright (C) 2000-2001 Toshiba Corporation
 *
 * 2003-2005 (c) MontaVista Software, Inc. This file is licensed under the
 * terms of the GNU General Public License version 2. This program is
 * licensed "as is" without any warranty of any kind, whether express
 * or implied.
 *
 * Support for TX4938 in 2.6 - Manish Lachwani (mlachwani@mvista.com)
 */

#include <linux/init.h>
#include <linux/mm.h>
#include <linux/sched.h>
#include <linux/bootmem.h>

#include <asm/addrspace.h>
#include <asm/bootinfo.h>
#include <asm/tx4938/tx4938.h>

void __init prom_init_cmdline(void)
{
	int argc = (int) fw_arg0;
	char **argv = (char **) fw_arg1;
	int i;

	/* ignore all built-in args if any f/w args given */
	if (argc > 1) {
		*arcs_cmdline = '\0';
	}

	for (i = 1; i < argc; i++) {
		if (i != 1) {
			strcat(arcs_cmdline, " ");
		}
		strcat(arcs_cmdline, argv[i]);
	}
}

void __init prom_init(void)
{
	extern int tx4938_get_mem_size(void);
	int msize;
#ifndef CONFIG_TX4938_NAND_BOOT
	prom_init_cmdline();
#endif
	mips_machgroup = MACH_GROUP_TOSHIBA;
	mips_machtype = MACH_TOSHIBA_RBTX4938;

	msize = tx4938_get_mem_size();
	add_memory_region(0, msize << 20, BOOT_MEM_RAM);

	return;
}

unsigned long  __init prom_free_prom_memory(void)
{
	return 0;
}

void __init prom_fixup_mem_map(unsigned long start, unsigned long end)
{
	return;
}

const char *get_system_type(void)
{
	return "Toshiba RBTX4938";
}

char * __init prom_getcmdline(void)
{
	return &(arcs_cmdline[0]);
}
