Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
setup.c
Go to the documentation of this file.
1 /*
2  * Setup pointers to hardware dependent routines.
3  *
4  * This file is subject to the terms and conditions of the GNU General Public
5  * License. See the file "COPYING" in the main directory of this archive
6  * for more details.
7  *
8  * Copyright (C) 1996, 1997, 2004, 05 by Ralf Baechle ([email protected])
9  * Copyright (C) 2001, 2002, 2003 by Liam Davies ([email protected])
10  *
11  */
12 #include <linux/init.h>
13 #include <linux/interrupt.h>
14 #include <linux/io.h>
15 #include <linux/ioport.h>
16 #include <linux/pm.h>
17 
18 #include <asm/bootinfo.h>
19 #include <asm/reboot.h>
20 #include <asm/gt64120.h>
21 
22 #include <cobalt.h>
23 
24 extern void cobalt_machine_restart(char *command);
25 extern void cobalt_machine_halt(void);
26 
27 const char *get_system_type(void)
28 {
29  switch (cobalt_board_id) {
31  return "Cobalt Qube";
32  case COBALT_BRD_ID_RAQ1:
33  return "Cobalt RaQ";
35  return "Cobalt Qube2";
36  case COBALT_BRD_ID_RAQ2:
37  return "Cobalt RaQ2";
38  }
39  return "MIPS Cobalt";
40 }
41 
42 /*
43  * Cobalt doesn't have PS/2 keyboard/mouse interfaces,
44  * keyboard conntroller is never used.
45  * Also PCI-ISA bridge DMA contoroller is never used.
46  */
47 static struct resource cobalt_reserved_resources[] = {
48  { /* dma1 */
49  .start = 0x00,
50  .end = 0x1f,
51  .name = "reserved",
52  .flags = IORESOURCE_BUSY | IORESOURCE_IO,
53  },
54  { /* keyboard */
55  .start = 0x60,
56  .end = 0x6f,
57  .name = "reserved",
58  .flags = IORESOURCE_BUSY | IORESOURCE_IO,
59  },
60  { /* dma page reg */
61  .start = 0x80,
62  .end = 0x8f,
63  .name = "reserved",
64  .flags = IORESOURCE_BUSY | IORESOURCE_IO,
65  },
66  { /* dma2 */
67  .start = 0xc0,
68  .end = 0xdf,
69  .name = "reserved",
70  .flags = IORESOURCE_BUSY | IORESOURCE_IO,
71  },
72 };
73 
75 {
76  int i;
77 
81 
82  set_io_port_base(CKSEG1ADDR(GT_DEF_PCI0_IO_BASE));
83 
84  /* I/O port resource */
85  ioport_resource.end = 0x01ffffff;
86 
87  /* These resources have been reserved by VIA SuperI/O chip. */
88  for (i = 0; i < ARRAY_SIZE(cobalt_reserved_resources); i++)
89  request_resource(&ioport_resource, cobalt_reserved_resources + i);
90 }
91 
92 /*
93  * Prom init. We read our one and only communication with the firmware.
94  * Grab the amount of installed memory.
95  * Better boot loaders (CoLo) pass a command line too :-)
96  */
97 
98 void __init prom_init(void)
99 {
100  unsigned long memsz;
101  int argc, i;
102  char **argv;
103 
104  memsz = fw_arg0 & 0x7fff0000;
105  argc = fw_arg0 & 0x0000ffff;
106  argv = (char **)fw_arg1;
107 
108  for (i = 1; i < argc; i++) {
110  if (i < (argc - 1))
112  }
113 
114  add_memory_region(0x0, memsz, BOOT_MEM_RAM);
115 }
116 
118 {
119  /* Nothing to do! */
120 }