blob: 72fed003a536d65e2676204753a6fa764f8e8b29 [file] [log] [blame]
Wu Zhangjinbd92aa02009-07-02 23:22:36 +08001/*
2 * Based on Ocelot Linux port, which is
3 * Copyright 2001 MontaVista Software Inc.
4 * Author: jsun@mvista.com or jsun@junsun.net
5 *
6 * Copyright 2003 ICT CAS
7 * Author: Michael Guo <guoyi@ict.ac.cn>
8 *
9 * Copyright (C) 2007 Lemote Inc. & Insititute of Computing Technology
10 * Author: Fuxin Zhang, zhangfx@lemote.com
11 *
Wu Zhangjin04cfb902009-11-06 18:35:33 +080012 * Copyright (C) 2009 Lemote Inc.
Wu Zhangjinf7a904d2010-01-04 17:16:51 +080013 * Author: Wu Zhangjin, wuzhangjin@gmail.com
Wu Zhangjinbd92aa02009-07-02 23:22:36 +080014 *
Ralf Baechle70342282013-01-22 12:59:30 +010015 * This program is free software; you can redistribute it and/or modify it
16 * under the terms of the GNU General Public License as published by the
Wu Zhangjinbd92aa02009-07-02 23:22:36 +080017 * Free Software Foundation; either version 2 of the License, or (at your
18 * option) any later version.
19 */
Wu Zhangjinbd92aa02009-07-02 23:22:36 +080020#include <asm/bootinfo.h>
21
Wu Zhangjin5e983ff2009-07-02 23:23:03 +080022#include <loongson.h>
23
Wu Zhangjinbd92aa02009-07-02 23:22:36 +080024void __init prom_init_cmdline(void)
25{
Wu Zhangjin97e6a892010-01-04 17:16:47 +080026 int prom_argc;
27 /* pmon passes arguments in 32bit pointers */
28 int *_prom_argv;
Wu Zhangjinbd92aa02009-07-02 23:22:36 +080029 int i;
30 long l;
31
32 /* firmware arguments are initialized in head.S */
33 prom_argc = fw_arg0;
34 _prom_argv = (int *)fw_arg1;
35
36 /* arg[0] is "g", the rest is boot parameters */
37 arcs_cmdline[0] = '\0';
38 for (i = 1; i < prom_argc; i++) {
39 l = (long)_prom_argv[i];
40 if (strlen(arcs_cmdline) + strlen(((char *)l) + 1)
41 >= sizeof(arcs_cmdline))
42 break;
43 strcat(arcs_cmdline, ((char *)l));
44 strcat(arcs_cmdline, " ");
45 }
46
Wu Zhangjin04cfb902009-11-06 18:35:33 +080047 prom_init_machtype();
Wu Zhangjinbd92aa02009-07-02 23:22:36 +080048}