init.c
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:1k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  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. #include <asm/sgialib.h>
  13. #undef DEBUG_PROM_INIT
  14. /* Master romvec interface. */
  15. struct linux_romvec *romvec;
  16. PSYSTEM_PARAMETER_BLOCK sgi_pblock;
  17. int prom_argc;
  18. LONG *_prom_argv, *_prom_envp;
  19. unsigned short prom_vers, prom_rev;
  20. extern void prom_testtree(void);
  21. int __init
  22. prom_init(int argc, char **argv, char **envp)
  23. {
  24. PSYSTEM_PARAMETER_BLOCK pb;
  25. romvec = ROMVECTOR;
  26. pb = sgi_pblock = PROMBLOCK;
  27. prom_argc = argc;
  28. _prom_argv = (LONG *) argv;
  29. _prom_envp = (LONG *) envp;
  30. if(pb->magic != 0x53435241) {
  31. prom_printf("Aieee, bad prom vector magic %08lxn", pb->magic);
  32. while(1)
  33. ;
  34. }
  35. prom_init_cmdline();
  36. prom_vers = pb->ver;
  37. prom_rev = pb->rev;
  38. prom_identify_arch();
  39. printk("PROMLIB: ARC firmware Version %d Revision %dn",
  40.     prom_vers, prom_rev);
  41. prom_meminit();
  42. #ifdef DEBUG_PROM_INIT
  43. {
  44. prom_printf("Press a key to rebootn");
  45. (void) prom_getchar();
  46. ArcEnterInteractiveMode();
  47. }
  48. #endif
  49. return 0;
  50. }