linux/arch/mips/fw/arc/init.c
<<
>>
Prefs
   1/*
   2 * This file is subject to the terms and conditions of the GNU General Public
   3 * License.  See the file "COPYING" in the main directory of this archive
   4 * for more details.
   5 *
   6 * PROM library initialisation code.
   7 *
   8 * Copyright (C) 1996 David S. Miller (dm@engr.sgi.com)
   9 */
  10#include <linux/init.h>
  11#include <linux/kernel.h>
  12
  13#include <asm/bootinfo.h>
  14#include <asm/sgialib.h>
  15#include <asm/smp-ops.h>
  16
  17#undef DEBUG_PROM_INIT
  18
  19/* Master romvec interface. */
  20struct linux_romvec *romvec;
  21int prom_argc;
  22LONG *_prom_argv, *_prom_envp;
  23
  24void __init prom_init(void)
  25{
  26        PSYSTEM_PARAMETER_BLOCK pb = PROMBLOCK;
  27
  28        romvec = ROMVECTOR;
  29
  30        prom_argc = fw_arg0;
  31        _prom_argv = (LONG *) fw_arg1;
  32        _prom_envp = (LONG *) fw_arg2;
  33
  34        if (pb->magic != 0x53435241) {
  35                printk(KERN_CRIT "Aieee, bad prom vector magic %08lx\n",
  36                       (unsigned long) pb->magic);
  37                while(1)
  38                        ;
  39        }
  40
  41        prom_init_cmdline();
  42        prom_identify_arch();
  43        printk(KERN_INFO "PROMLIB: ARC firmware Version %d Revision %d\n",
  44               pb->ver, pb->rev);
  45        prom_meminit();
  46
  47#ifdef DEBUG_PROM_INIT
  48        pr_info("Press a key to reboot\n");
  49        ArcRead(0, &c, 1, &cnt);
  50        ArcEnterInteractiveMode();
  51#endif
  52#ifdef CONFIG_SGI_IP27
  53        {
  54                extern struct plat_smp_ops ip27_smp_ops;
  55
  56                register_smp_ops(&ip27_smp_ops);
  57        }
  58#endif
  59}
  60