• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /netgear-WNDR4500-V1.0.1.40_1.0.68/src/linux/linux-2.6/arch/mips/tx4927/toshiba_rbtx4927/
1/*
2 * rbtx4927 specific prom routines
3 *
4 * Author: MontaVista Software, Inc.
5 *         source@mvista.com
6 *
7 * Copyright 2001-2002 MontaVista Software Inc.
8 *
9 * Copyright (C) 2004 MontaVista Software Inc.
10 * Author: Manish Lachwani, mlachwani@mvista.com
11 *
12 *  This program is free software; you can redistribute it and/or modify it
13 *  under the terms of the GNU General Public License as published by the
14 *  Free Software Foundation; either version 2 of the License, or (at your
15 *  option) any later version.
16 *
17 *  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
18 *  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
19 *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20 *  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21 *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
22 *  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
23 *  OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
24 *  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
25 *  TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
26 *  USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 *
28 *  You should have received a copy of the GNU General Public License along
29 *  with this program; if not, write to the Free Software Foundation, Inc.,
30 *  675 Mass Ave, Cambridge, MA 02139, USA.
31 */
32#include <linux/init.h>
33#include <linux/mm.h>
34#include <linux/sched.h>
35#include <linux/bootmem.h>
36
37#include <asm/addrspace.h>
38#include <asm/bootinfo.h>
39#include <asm/cpu.h>
40#include <asm/tx4927/tx4927.h>
41
42void __init prom_init_cmdline(void)
43{
44	int argc = (int) fw_arg0;
45	char **argv = (char **) fw_arg1;
46	int i;			/* Always ignore the "-c" at argv[0] */
47
48	/* ignore all built-in args if any f/w args given */
49	if (argc > 1) {
50		*arcs_cmdline = '\0';
51	}
52
53	for (i = 1; i < argc; i++) {
54		if (i != 1) {
55			strcat(arcs_cmdline, " ");
56		}
57		strcat(arcs_cmdline, argv[i]);
58	}
59}
60
61void __init prom_init(void)
62{
63	extern int tx4927_get_mem_size(void);
64	extern char* toshiba_name;
65	int msize;
66
67	prom_init_cmdline();
68
69	mips_machgroup = MACH_GROUP_TOSHIBA;
70
71	if ((read_c0_prid() & 0xff) == PRID_REV_TX4927) {
72		mips_machtype = MACH_TOSHIBA_RBTX4927;
73		toshiba_name  = "TX4927";
74	} else {
75		mips_machtype = MACH_TOSHIBA_RBTX4937;
76		toshiba_name  = "TX4937";
77	}
78
79	msize = tx4927_get_mem_size();
80	add_memory_region(0, msize << 20, BOOT_MEM_RAM);
81}
82
83void __init prom_free_prom_memory(void)
84{
85}
86
87const char *get_system_type(void)
88{
89	return "Toshiba RBTX4927/RBTX4937";
90}
91
92char * __init prom_getcmdline(void)
93{
94        return &(arcs_cmdline[0]);
95}
96