machine_netwinder.cc Source File

Back to the index.

machine_netwinder.cc
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2005-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: NetWinder
29  */
30 
31 #include <stdio.h>
32 #include <stdlib.h>
33 #include <string.h>
34 
35 #include "bus_pci.h"
36 #include "cpu.h"
37 #include "device.h"
38 #include "devices.h"
39 #include "machine.h"
40 #include "memory.h"
41 #include "misc.h"
42 
43 
44 MACHINE_SETUP(netwinder)
45 {
46  char tmpstr[300];
47  struct pci_data *pci_bus;
48 
49  machine->machine_name = strdup("NetWinder");
50 
51  if (machine->physical_ram_in_mb > 256)
52  fprintf(stderr, "WARNING! Real NetWinders cannot"
53  " have more than 256 MB RAM. Continuing anyway.\n");
54 
55  /* CPU at 63.75 MHz, according to NetBSD's netwinder_machdep.c. */
56  machine->emulated_hz = 63750000;
57 
58  snprintf(tmpstr, sizeof(tmpstr), "footbridge irq=%s.cpu[%i].irq"
59  " addr=0x42000000", machine->path, machine->bootstrap_cpu);
60  pci_bus = (struct pci_data *) device_add(machine, tmpstr);
61 
62  if (machine->x11_md.in_use) {
63  bus_pci_add(machine, pci_bus, machine->memory,
64  0xc0, 8, 0, "igsfb");
65  }
66 
67  if (!machine->prom_emulation)
68  return;
69 
71 }
72 
73 
75 {
76  machine->cpu_name = strdup("SA110");
77 }
78 
79 
81 {
83 }
84 
85 
86 MACHINE_REGISTER(netwinder)
87 {
88  MR_DEFAULT(netwinder, "NetWinder", ARCH_ARM, MACHINE_NETWINDER);
89 
90  machine_entry_add_alias(me, "netwinder");
91 
92  me->set_default_ram = machine_default_ram_netwinder;
93 }
94 
int emulated_hz
Definition: machine.h:165
int prom_emulation
Definition: machine.h:149
char * cpu_name
Definition: machine.h:133
MACHINE_DEFAULT_CPU(netwinder)
struct memory * memory
Definition: machine.h:126
void bus_pci_add(struct machine *machine, struct pci_data *pci_data, struct memory *mem, int bus, int device, int function, const char *name)
Definition: bus_pci.cc:217
#define MACHINE_NETWINDER
Definition: machine.h:242
void * device_add(struct machine *machine, const char *name_and_params)
Definition: device.cc:252
int physical_ram_in_mb
Definition: machine.h:147
MACHINE_SETUP(netwinder)
char * path
Definition: machine.h:108
int bootstrap_cpu
Definition: machine.h:136
MACHINE_DEFAULT_RAM(netwinder)
void machine_entry_add_alias(struct machine_entry *me, const char *name)
Definition: machine.cc:697
#define ARCH_ARM
Definition: machine.h:206
struct x11_md x11_md
Definition: machine.h:179
Definition: cpu.h:326
MACHINE_REGISTER(netwinder)
int in_use
Definition: machine.h:82
#define MR_DEFAULT(x, name, arch, type)
Definition: machine.h:370
void arm_setup_initial_translation_table(struct cpu *cpu, uint32_t ttb_addr)
Definition: cpu_arm.cc:204
const char * machine_name
Definition: machine.h:115

Generated on Sun Sep 30 2018 16:05:18 for GXemul by doxygen 1.8.13