PageRenderTime 20ms CodeModel.GetById 10ms app.highlight 7ms RepoModel.GetById 1ms app.codeStats 0ms

/arch/mips/tx4927/toshiba_rbtx4927/toshiba_rbtx4927_prom.c

https://bitbucket.org/evzijst/gittest
C | 97 lines | 51 code | 14 blank | 32 comment | 6 complexity | 96a7352c767840b8cfc447c8e30a3708 MD5 | raw file
 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	const char* toshiba_name_list[] = GROUP_TOSHIBA_NAMES;
64	extern int tx4927_get_mem_size(void);
65	extern char* toshiba_name;
66	int msize;
67
68	prom_init_cmdline();
69
70	mips_machgroup = MACH_GROUP_TOSHIBA;
71
72	if ((read_c0_prid() & 0xff) == PRID_REV_TX4927)
73		mips_machtype = MACH_TOSHIBA_RBTX4927;
74	else
75		mips_machtype = MACH_TOSHIBA_RBTX4937;
76
77        toshiba_name = toshiba_name_list[mips_machtype];
78
79	msize = tx4927_get_mem_size();
80	add_memory_region(0, msize << 20, BOOT_MEM_RAM);
81}
82
83unsigned long __init prom_free_prom_memory(void)
84{
85	return 0;
86}
87
88const char *get_system_type(void)
89{
90	return "Toshiba RBTX4927/RBTX4937";
91}
92
93char * __init prom_getcmdline(void)
94{
95        return &(arcs_cmdline[0]);
96}
97