machine_netwinder.cc Source File
Back to the index.
src
machines
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
70
arm_setup_initial_translation_table
(
cpu
, 0x4000);
71
}
72
73
74
MACHINE_DEFAULT_CPU
(netwinder)
75
{
76
machine
->
cpu_name
= strdup(
"SA110"
);
77
}
78
79
80
MACHINE_DEFAULT_RAM
(netwinder)
81
{
82
machine
->
physical_ram_in_mb
= 16;
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
machine::bootstrap_cpu
int bootstrap_cpu
Definition:
machine.h:136
machine::physical_ram_in_mb
int physical_ram_in_mb
Definition:
machine.h:147
arm_setup_initial_translation_table
void arm_setup_initial_translation_table(struct cpu *cpu, uint32_t ttb_addr)
Definition:
cpu_arm.cc:215
machine::prom_emulation
int prom_emulation
Definition:
machine.h:149
device.h
MACHINE_DEFAULT_CPU
MACHINE_DEFAULT_CPU(netwinder)
Definition:
machine_netwinder.cc:74
MACHINE_REGISTER
MACHINE_REGISTER(netwinder)
Definition:
machine_netwinder.cc:86
machine::cpu_name
char * cpu_name
Definition:
machine.h:133
x11_md::in_use
int in_use
Definition:
machine.h:82
MACHINE_NETWINDER
#define MACHINE_NETWINDER
Definition:
machine.h:242
misc.h
MACHINE_SETUP
MACHINE_SETUP(netwinder)
Definition:
machine_netwinder.cc:44
device_add
void * device_add(struct machine *machine, const char *name_and_params)
Definition:
device.cc:252
machine.h
machine
Definition:
machine.h:97
MR_DEFAULT
#define MR_DEFAULT(x, name, arch, type)
Definition:
machine.h:370
machine::x11_md
struct x11_md x11_md
Definition:
machine.h:179
cpu.h
machine::path
char * path
Definition:
machine.h:108
machine::memory
struct memory * memory
Definition:
machine.h:126
bus_pci.h
MACHINE_DEFAULT_RAM
MACHINE_DEFAULT_RAM(netwinder)
Definition:
machine_netwinder.cc:80
machine::emulated_hz
int emulated_hz
Definition:
machine.h:165
ARCH_ARM
#define ARCH_ARM
Definition:
machine.h:206
devices.h
machine::machine_name
const char * machine_name
Definition:
machine.h:115
cpu
Definition:
cpu.h:326
machine_entry_add_alias
void machine_entry_add_alias(struct machine_entry *me, const char *name)
Definition:
machine.cc:697
bus_pci_add
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:216
memory.h
Generated on Tue Mar 24 2020 14:04:48 for GXemul by
1.8.17