machine_hpcmips.cc Source File

Back to the index.

machine_hpcmips.cc
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2003-2009 Anders Gavare. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions are met:
6  *
7  * 1. Redistributions of source code must retain the above copyright
8  * notice, this list of conditions and the following disclaimer.
9  * 2. Redistributions in binary form must reproduce the above copyright
10  * notice, this list of conditions and the following disclaimer in the
11  * documentation and/or other materials provided with the distribution.
12  * 3. The name of the author may not be used to endorse or promote products
13  * derived from this software without specific prior written permission.
14  *
15  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
16  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18  * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
19  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25  * SUCH DAMAGE.
26  *
27  *
28  * COMMENT: Handheld MIPS-based machines
29  */
30 
31 #include <stdio.h>
32 #include <stdlib.h>
33 #include <string.h>
34 
35 #include "cpu.h"
36 #include "device.h"
37 #include "devices.h"
38 #include "machine.h"
39 #include "memory.h"
40 #include "misc.h"
41 
43 #include "thirdparty/vripreg.h"
44 
45 
46 MACHINE_SETUP(hpcmips)
47 {
48  char tmpstr[1000];
49  struct hpc_bootinfo hpc_bootinfo;
50  int hpc_platid_flags = 0, hpc_platid_cpu_submodel = 0,
51  hpc_platid_cpu_model = 0, hpc_platid_cpu_series = 0,
52  hpc_platid_cpu_arch = 0,
53  hpc_platid_submodel = 0, hpc_platid_model = 0,
54  hpc_platid_series = 0, hpc_platid_vendor = 0;
55  uint64_t hpc_fb_addr = 0;
56  int hpc_fb_bits = 0, hpc_fb_encoding = 0;
57  int hpc_fb_xsize = 0;
58  int hpc_fb_ysize = 0;
59  int hpc_fb_xsize_mem = 0;
60  int hpc_fb_ysize_mem = 0;
61 
63  memset(&hpc_bootinfo, 0, sizeof(hpc_bootinfo));
64 
65  /*
66  * NOTE: See http://forums.projectmayo.com/viewtopic.php?topic=2743&
67  * forum=23 for info on framebuffer addresses.
68  */
69 
70  switch (machine->machine_subtype) {
71 
73  /* 166MHz VR4131 */
74  machine->machine_name = strdup("Casio Cassiopeia BE-300");
75  hpc_fb_addr = 0x0a200000;
76  hpc_fb_xsize = 240;
77  hpc_fb_ysize = 320;
78  hpc_fb_xsize_mem = 256;
79  hpc_fb_ysize_mem = 320;
80  hpc_fb_bits = 15;
81  hpc_fb_encoding = BIFB_D16_0000;
82 
83  /* TODO: irq? */
84  snprintf(tmpstr, sizeof(tmpstr), "ns16550 irq=0 addr=0x"
85  "0a008680 addr_mult=4 in_use=%i", !machine->x11_md.in_use);
86  machine->main_console_handle = (size_t)
87  device_add(machine, tmpstr);
88 
90 
91  hpc_platid_cpu_arch = 1; /* MIPS */
92  hpc_platid_cpu_series = 1; /* VR */
93  hpc_platid_cpu_model = 1; /* VR41XX */
94  hpc_platid_cpu_submodel = 6; /* VR4131 */
95  hpc_platid_vendor = 3; /* Casio */
96  hpc_platid_series = 1; /* CASSIOPEIAE */
97  hpc_platid_model = 2; /* EXXX */
98  hpc_platid_submodel = 3; /* E500 */
99  /* TODO: Don't use model number for E500, it's a BE300! */
100  break;
101 
103  /* 131MHz VR4121 */
104  machine->machine_name = strdup("Casio Cassiopeia E-105");
105  hpc_fb_addr = 0x0a200000; /* TODO? */
106  hpc_fb_xsize = 240;
107  hpc_fb_ysize = 320;
108  hpc_fb_xsize_mem = 256;
109  hpc_fb_ysize_mem = 320;
110  hpc_fb_bits = 16;
111  hpc_fb_encoding = BIFB_D16_0000;
112 
113  /* TODO: irq? */
114  snprintf(tmpstr, sizeof(tmpstr), "ns16550 irq=0 addr=0x"
115  "0a008680 addr_mult=4 in_use=%i", !machine->x11_md.in_use);
116  machine->main_console_handle = (size_t)
117  device_add(machine, tmpstr);
118 
120 
121  hpc_platid_cpu_arch = 1; /* MIPS */
122  hpc_platid_cpu_series = 1; /* VR */
123  hpc_platid_cpu_model = 1; /* VR41XX */
124  hpc_platid_cpu_submodel = 3; /* VR4121 */
125  hpc_platid_vendor = 3; /* Casio */
126  hpc_platid_series = 1; /* CASSIOPEIAE */
127  hpc_platid_model = 2; /* EXXX */
128  hpc_platid_submodel = 2; /* E105 */
129  break;
130 
132  /* 131 MHz VR4121 */
133  machine->machine_name = strdup("NEC MobilePro 770");
134  hpc_fb_addr = 0xa000000;
135  hpc_fb_xsize = 640;
136  hpc_fb_ysize = 240;
137  hpc_fb_xsize_mem = 800;
138  hpc_fb_ysize_mem = 240;
139  hpc_fb_bits = 16;
140  hpc_fb_encoding = BIFB_D16_0000;
141 
143 
144  hpc_platid_cpu_arch = 1; /* MIPS */
145  hpc_platid_cpu_series = 1; /* VR */
146  hpc_platid_cpu_model = 1; /* VR41XX */
147  hpc_platid_cpu_submodel = 3; /* VR4121 */
148  hpc_platid_vendor = 1; /* NEC */
149  hpc_platid_series = 2; /* NEC MCR */
150  hpc_platid_model = 2; /* MCR 5XX */
151  hpc_platid_submodel = 4; /* MCR 520A */
152  break;
153 
155  /* 166 (or 168) MHz VR4121 */
156  machine->machine_name = strdup("NEC MobilePro 780");
157  hpc_fb_addr = 0xa180100;
158  hpc_fb_xsize = 640;
159  hpc_fb_ysize = 240;
160  hpc_fb_xsize_mem = 640;
161  hpc_fb_ysize_mem = 240;
162  hpc_fb_bits = 16;
163  hpc_fb_encoding = BIFB_D16_0000;
164 
166 
167  hpc_platid_cpu_arch = 1; /* MIPS */
168  hpc_platid_cpu_series = 1; /* VR */
169  hpc_platid_cpu_model = 1; /* VR41XX */
170  hpc_platid_cpu_submodel = 3; /* VR4121 */
171  hpc_platid_vendor = 1; /* NEC */
172  hpc_platid_series = 2; /* NEC MCR */
173  hpc_platid_model = 2; /* MCR 5XX */
174  hpc_platid_submodel = 8; /* MCR 530A */
175  break;
176 
178  /* 131 MHz VR4121 */
179  machine->machine_name = strdup("NEC MobilePro 800");
180  hpc_fb_addr = 0xa000000;
181  hpc_fb_xsize = 800;
182  hpc_fb_ysize = 600;
183  hpc_fb_xsize_mem = 800;
184  hpc_fb_ysize_mem = 600;
185  hpc_fb_bits = 16;
186  hpc_fb_encoding = BIFB_D16_0000;
187 
189 
190  hpc_platid_cpu_arch = 1; /* MIPS */
191  hpc_platid_cpu_series = 1; /* VR */
192  hpc_platid_cpu_model = 1; /* VR41XX */
193  hpc_platid_cpu_submodel = 3; /* VR4121 */
194  hpc_platid_vendor = 1; /* NEC */
195  hpc_platid_series = 2; /* NEC MCR */
196  hpc_platid_model = 3; /* MCR 7XX */
197  hpc_platid_submodel = 2; /* MCR 700A */
198  break;
199 
201  /* 168 MHz VR4121 */
202  machine->machine_name = strdup("NEC MobilePro 880");
203  hpc_fb_addr = 0xa0ea600;
204  hpc_fb_xsize = 800;
205  hpc_fb_ysize = 600;
206  hpc_fb_xsize_mem = 800;
207  hpc_fb_ysize_mem = 600;
208  hpc_fb_bits = 16;
209  hpc_fb_encoding = BIFB_D16_0000;
210 
212 
213  hpc_platid_cpu_arch = 1; /* MIPS */
214  hpc_platid_cpu_series = 1; /* VR */
215  hpc_platid_cpu_model = 1; /* VR41XX */
216  hpc_platid_cpu_submodel = 3; /* VR4121 */
217  hpc_platid_vendor = 1; /* NEC */
218  hpc_platid_series = 2; /* NEC MCR */
219  hpc_platid_model = 3; /* MCR 7XX */
220  hpc_platid_submodel = 4; /* MCR 730A */
221  break;
222 
224  /* 66 MHz VR4181 */
225  machine->machine_name = strdup("Agenda VR3");
226  /* TODO: */
227  hpc_fb_addr = 0x1000;
228  hpc_fb_xsize = 160;
229  hpc_fb_ysize = 240;
230  hpc_fb_xsize_mem = 160;
231  hpc_fb_ysize_mem = 240;
232  hpc_fb_bits = 4;
233  hpc_fb_encoding = BIFB_D4_M2L_F;
234 
236 
237  /* TODO: Hm... irq 17 according to linux, but
238  VRIP_INTR_SIU (=9) here? */
239  {
240  int x;
241  snprintf(tmpstr, sizeof(tmpstr),
242  "ns16550 irq=%i addr=0x0c000010", 8+VRIP_INTR_SIU);
243  x = (size_t)device_add(machine, tmpstr);
244 
245  if (!machine->x11_md.in_use)
247  }
248 
249  hpc_platid_cpu_arch = 1; /* MIPS */
250  hpc_platid_cpu_series = 1; /* VR */
251  hpc_platid_cpu_model = 1; /* VR41XX */
252  hpc_platid_cpu_submodel = 4; /* VR4181 */
253  hpc_platid_vendor = 15; /* Agenda */
254  hpc_platid_series = 1; /* VR */
255  hpc_platid_model = 1; /* VR3 */
256  hpc_platid_submodel = 0; /* - */
257 
258  dev_ram_init(machine, 0x0f000000, 0x01000000,
260  break;
261 
263  /* 131 MHz VR4121 */
264  machine->machine_name = strdup("IBM Workpad Z50");
265  /* TODO: */
266  hpc_fb_addr = 0xa000000;
267  hpc_fb_xsize = 640;
268  hpc_fb_ysize = 480;
269  hpc_fb_xsize_mem = 640;
270  hpc_fb_ysize_mem = 480;
271  hpc_fb_bits = 16;
272  hpc_fb_encoding = BIFB_D16_0000;
273 
275 
276  hpc_platid_cpu_arch = 1; /* MIPS */
277  hpc_platid_cpu_series = 1; /* VR */
278  hpc_platid_cpu_model = 1; /* VR41XX */
279  hpc_platid_cpu_submodel = 3; /* VR4121 */
280  hpc_platid_vendor = 9; /* IBM */
281  hpc_platid_series = 1; /* WorkPad */
282  hpc_platid_model = 1; /* Z50 */
283  hpc_platid_submodel = 0; /* 0 */
284  break;
285 
286  default:printf("Unimplemented hpcmips machine number.\n");
287  exit(1);
288  }
289 
290  store_32bit_word_in_host(cpu, (unsigned char *)&hpc_bootinfo.platid_cpu,
291  (hpc_platid_cpu_arch << 26) + (hpc_platid_cpu_series << 20)
292  + (hpc_platid_cpu_model << 14) + (hpc_platid_cpu_submodel << 8)
293  + hpc_platid_flags);
294  store_32bit_word_in_host(cpu, (unsigned char *)&hpc_bootinfo.
295  platid_machine, (hpc_platid_vendor << 22) + (hpc_platid_series<<16)
296  + (hpc_platid_model << 8) + hpc_platid_submodel);
297 
298  if (hpc_fb_addr != 0) {
299  dev_fb_init(machine, machine->memory, hpc_fb_addr, VFB_HPC,
300  hpc_fb_xsize, hpc_fb_ysize,
301  hpc_fb_xsize_mem, hpc_fb_ysize_mem,
302  hpc_fb_bits, machine->machine_name);
303 
304  /* NetBSD/hpcmips uses framebuffer at physical
305  address 0x8.......: */
306  dev_ram_init(machine, 0x80000000, 0x20000000,
308  }
309 
310  if (!machine->prom_emulation)
311  return;
312 
313 
314  /* NetBSD/hpcmips and possibly others expects the following: */
315 
316  cpu->cd.mips.gpr[MIPS_GPR_A0] = 1; /* argc */
318  + 0xffffffff80000000ULL - 512; /* argv */
320  + 0xffffffff80000000ULL - 256; /* ptr to hpc_bootinfo */
321 
323  store_32bit_word(cpu, 0x80000000ULL + (machine->physical_ram_in_mb <<
324  20) - 512, 0x80000000ULL + (machine->physical_ram_in_mb << 20)
325  - 512 + 16);
326  store_32bit_word(cpu, 0x80000000ULL + (machine->physical_ram_in_mb <<
327  20) - 512 + 4, 0);
328  store_string(cpu, 0x80000000ULL + (machine->physical_ram_in_mb <<
329  20) - 512 + 16, machine->bootstr);
330 
331  /* Special case for the Agenda VR3: */
333  const int tmplen = 1000;
334  char *tmp = (char *) malloc(tmplen);
335 
336  cpu->cd.mips.gpr[MIPS_GPR_A0] = 2; /* argc */
337 
339  * 1048576-512 + 4, 0x80000000 + machine->physical_ram_in_mb
340  * 1048576 - 512 + 64);
342  * 1048576 - 512 + 8, 0);
343 
344  snprintf(tmp, tmplen, "root=/dev/rom video=vr4181fb:xres:160,y"
345  "res:240,bpp:4,gray,hpck:3084,inv ether=0,0x03fe0300,eth0");
346  tmp[tmplen-1] = '\0';
347 
348  if (!machine->x11_md.in_use)
349  snprintf(tmp+strlen(tmp), tmplen-strlen(tmp),
350  " console=ttyS0,115200");
351  tmp[tmplen-1] = '\0';
352 
354  snprintf(tmp+strlen(tmp), tmplen-strlen(tmp), " %s",
356  tmp[tmplen-1] = '\0';
357 
359  * 1048576 - 512 + 64, tmp);
360 
361  machine->bootarg = tmp;
362  } else if (machine->boot_string_argument[0]) {
363  cpu->cd.mips.gpr[MIPS_GPR_A0] ++; /* argc */
364 
366  * 1048576-512 + 4, 0x80000000 + machine->physical_ram_in_mb
367  * 1048576 - 512 + 64);
369  * 1048576 - 512 + 8, 0);
370 
371  store_string(cpu, 0x80000000 + machine->physical_ram_in_mb *
372  1048576 - 512 + 64, machine->boot_string_argument);
373 
375  }
376 
377  store_16bit_word_in_host(cpu, (unsigned char *)&hpc_bootinfo.length,
378  sizeof(hpc_bootinfo));
379  store_32bit_word_in_host(cpu, (unsigned char *)&hpc_bootinfo.magic,
381  store_32bit_word_in_host(cpu, (unsigned char *)&hpc_bootinfo.fb_addr,
382  0x80000000 + hpc_fb_addr);
383  store_16bit_word_in_host(cpu, (unsigned char *)&hpc_bootinfo.
384  fb_line_bytes, hpc_fb_xsize_mem * (((hpc_fb_bits-1)|7)+1) / 8);
385  store_16bit_word_in_host(cpu, (unsigned char *)&hpc_bootinfo.fb_width,
386  hpc_fb_xsize);
387  store_16bit_word_in_host(cpu, (unsigned char *)&hpc_bootinfo.fb_height,
388  hpc_fb_ysize);
389  store_16bit_word_in_host(cpu, (unsigned char *)&hpc_bootinfo.fb_type,
390  hpc_fb_encoding);
391  store_16bit_word_in_host(cpu, (unsigned char *)&hpc_bootinfo.bi_cnuse,
393 
394  /* printf("hpc_bootinfo.platid_cpu = 0x%08x\n",
395  hpc_bootinfo.platid_cpu);
396  printf("hpc_bootinfo.platid_machine = 0x%08x\n",
397  hpc_bootinfo.platid_machine); */
398  store_32bit_word_in_host(cpu,(unsigned char *)&hpc_bootinfo.timezone,0);
399  store_buf(cpu, 0x80000000 + machine->physical_ram_in_mb *
400  1048576 - 256, (char *)&hpc_bootinfo, sizeof(hpc_bootinfo));
401 }
402 
403 
405 {
406  switch (machine->machine_subtype) {
408  machine->cpu_name = strdup("VR4131");
409  break;
411  machine->cpu_name = strdup("VR4121");
412  break;
417  machine->cpu_name = strdup("VR4121");
418  break;
420  machine->cpu_name = strdup("VR4181");
421  break;
423  machine->cpu_name = strdup("VR4121");
424  break;
425  default:printf("Unimplemented HPCMIPS model?\n");
426  exit(1);
427  }
428 }
429 
430 
432 {
433  /* Most have 32 MB by default. */
435 
436  switch (machine->machine_subtype) {
439  break;
442  break;
445  break;
446  }
447 }
448 
449 
451 {
452  MR_DEFAULT(hpcmips, "Handhelp MIPS (HPCmips)",
454 
455  machine_entry_add_alias(me, "hpcmips");
456 
457  machine_entry_add_subtype(me, "Casio Cassiopeia BE-300",
458  MACHINE_HPCMIPS_CASIO_BE300, "be-300", "be300", NULL);
459 
460  machine_entry_add_subtype(me, "Casio Cassiopeia E-105",
461  MACHINE_HPCMIPS_CASIO_E105, "e-105", "e105", NULL);
462 
464  "agenda", "vr3", NULL);
465 
466  machine_entry_add_subtype(me, "IBM WorkPad Z50",
467  MACHINE_HPCMIPS_IBM_WORKPAD_Z50, "workpad", "z50", NULL);
468 
469  machine_entry_add_subtype(me, "NEC MobilePro 770",
470  MACHINE_HPCMIPS_NEC_MOBILEPRO_770, "mobilepro770", NULL);
471 
472  machine_entry_add_subtype(me, "NEC MobilePro 780",
473  MACHINE_HPCMIPS_NEC_MOBILEPRO_780, "mobilepro780", NULL);
474 
475  machine_entry_add_subtype(me, "NEC MobilePro 800",
476  MACHINE_HPCMIPS_NEC_MOBILEPRO_800, "mobilepro800", NULL);
477 
478  machine_entry_add_subtype(me, "NEC MobilePro 880",
479  MACHINE_HPCMIPS_NEC_MOBILEPRO_880, "mobilepro880", NULL);
480 
481  me->set_default_ram = machine_default_ram_hpcmips;
482 }
483 
MACHINE_DEFAULT_CPU(hpcmips)
#define VRIP_INTR_SIU
Definition: vripreg.h:284
int prom_emulation
Definition: machine.h:149
char * cpu_name
Definition: machine.h:133
int main_console_handle
Definition: machine.h:128
int store_32bit_word(struct cpu *cpu, uint64_t addr, uint64_t data32)
Definition: memory.cc:783
int16_t fb_type
Definition: hpc_bootinfo.h:49
struct vfb_data * dev_fb_init(struct machine *machine, struct memory *mem, uint64_t baseaddr, int vfb_type, int visible_xsize, int visible_ysize, int xsize, int ysize, int bit_depth, const char *name)
Definition: dev_fb.cc:834
#define MIPS_GPR_A0
union cpu::@1 cd
void store_string(struct cpu *cpu, uint64_t addr, const char *s)
Definition: memory.cc:695
#define MACHINE_HPCMIPS_IBM_WORKPAD_Z50
Definition: machine.h:290
struct memory * memory
Definition: machine.h:126
#define MIPS_GPR_A2
#define MACHINE_HPCMIPS_CASIO_BE300
Definition: machine.h:283
#define BI_CNUSE_BUILTIN
Definition: hpc_bootinfo.h:58
void * device_add(struct machine *machine, const char *name_and_params)
Definition: device.cc:252
int physical_ram_in_mb
Definition: machine.h:147
#define DEV_RAM_MIRROR
Definition: devices.h:365
uint32_t platid_cpu
Definition: hpc_bootinfo.h:52
#define EMUL_LITTLE_ENDIAN
Definition: misc.h:164
char * boot_string_argument
Definition: machine.h:171
struct vr41xx_data * dev_vr41xx_init(struct machine *machine, struct memory *mem, int cpumodel)
Definition: dev_vr41xx.cc:673
char * boot_kernel_filename
Definition: machine.h:170
#define BIFB_D16_0000
Definition: hpc_bootinfo.h:79
uint32_t platid_machine
Definition: hpc_bootinfo.h:53
#define MACHINE_HPCMIPS_NEC_MOBILEPRO_800
Definition: machine.h:287
#define MACHINE_HPCMIPS_AGENDA_VR3
Definition: machine.h:289
void dev_ram_init(struct machine *machine, uint64_t baseaddr, uint64_t length, int mode, uint64_t otheraddress, const char *name)
Definition: dev_ram.cc:134
MACHINE_DEFAULT_RAM(hpcmips)
#define MIPS_GPR_A1
void machine_entry_add_subtype(struct machine_entry *me, const char *name, int oldstyle_subtype,...)
Definition: machine.cc:717
void machine_entry_add_alias(struct machine_entry *me, const char *name)
Definition: machine.cc:697
int16_t fb_width
Definition: hpc_bootinfo.h:47
int16_t fb_line_bytes
Definition: hpc_bootinfo.h:46
int16_t fb_height
Definition: hpc_bootinfo.h:48
#define HPC_BOOTINFO_MAGIC
Definition: hpc_bootinfo.h:62
struct x11_md x11_md
Definition: machine.h:179
MACHINE_SETUP(hpcmips)
char * bootstr
Definition: machine.h:155
Definition: cpu.h:326
int32_t magic
Definition: hpc_bootinfo.h:44
void COMBINE() strlen(struct cpu *cpu, struct arm_instr_call *ic, int low_addr)
int16_t bi_cnuse
Definition: hpc_bootinfo.h:51
#define MACHINE_HPCMIPS_NEC_MOBILEPRO_780
Definition: machine.h:286
#define DEV_RAM_MIGHT_POINT_TO_DEVICES
Definition: devices.h:366
#define MACHINE_HPCMIPS_NEC_MOBILEPRO_880
Definition: machine.h:288
MACHINE_REGISTER(hpcmips)
int32_t timezone
Definition: hpc_bootinfo.h:55
void store_16bit_word_in_host(struct cpu *cpu, unsigned char *data, uint16_t data16)
Definition: memory.cc:992
int in_use
Definition: machine.h:82
uint8_t byte_order
Definition: cpu.h:347
#define MACHINE_HPCMIPS_CASIO_E105
Definition: machine.h:284
uint64_t gpr[N_MIPS_GPRS]
Definition: cpu_mips.h:209
struct mips_cpu mips
Definition: cpu.h:443
#define BI_CNUSE_SERIAL
Definition: hpc_bootinfo.h:59
void store_32bit_word_in_host(struct cpu *cpu, unsigned char *data, uint64_t data32)
Definition: memory.cc:973
uint32_t fb_addr
Definition: hpc_bootinfo.h:45
void store_buf(struct cpu *cpu, uint64_t addr, const char *s, size_t len)
Definition: memory.cc:826
int machine_subtype
Definition: machine.h:112
#define MR_DEFAULT(x, name, arch, type)
Definition: machine.h:370
const char * machine_name
Definition: machine.h:115
int16_t length
Definition: hpc_bootinfo.h:42
#define BIFB_D4_M2L_F
Definition: hpc_bootinfo.h:88
#define ARCH_MIPS
Definition: machine.h:203
#define MACHINE_HPCMIPS_NEC_MOBILEPRO_770
Definition: machine.h:285
#define MACHINE_HPCMIPS
Definition: machine.h:215
#define VFB_HPC
Definition: devices.h:191
char * bootarg
Definition: machine.h:156

Generated on Fri Dec 7 2018 19:52:23 for GXemul by doxygen 1.8.13