machine_vocore.cc Source File
Back to the index.
src
machines
machine_vocore.cc
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2018 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: VoCore
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
42
43
MACHINE_SETUP
(vocore)
44
{
45
machine
->
machine_name
= strdup(
"VoCore"
);
46
47
machine
->
emulated_hz
= 360000000;
48
49
/* Some devices mentioned in the Linux kernel (as shown using strings):
50
51
i/palmbus@10000000/spi@b00
52
n/palmbus@10000000/spi@b40
53
s/palmbus@10000000/uartlite@c00
54
palmbus@10000000
55
timer@100
56
ethernet@10100000
57
esw@10110000
58
wmac@10180000
59
ehci@101c0000
60
ohci@101c1000
61
*/
62
63
device_add
(
machine
,
"palmbus addr=0x10000000"
);
64
65
if
(!
machine
->
prom_emulation
)
66
return
;
67
68
// TODO: uboot emulation?
69
}
70
71
72
MACHINE_DEFAULT_CPU
(vocore)
73
{
74
// According to http://vocore.io/v1d.html: RT5350, 360 MHz, MIPS 24K
75
// According to Linux booting on my real machine:
76
// CPU revision is: 0001964c (MIPS 24KEc)
77
// Primary instruction cache 32kB, VIPT, 4-way, linesize 32 bytes.
78
// Primary data cache 16kB, 4-way, VIPT, no aliases, linesize 32 bytes
79
machine
->
cpu_name
= strdup(
"24KEc"
);
80
}
81
82
83
MACHINE_DEFAULT_RAM
(vocore)
84
{
85
machine
->
physical_ram_in_mb
= 32;
86
}
87
88
89
MACHINE_REGISTER
(vocore)
90
{
91
MR_DEFAULT
(vocore,
"VoCore"
,
ARCH_MIPS
,
MACHINE_VOCORE
);
92
93
machine_entry_add_alias
(me,
"vocore"
);
94
95
me->set_default_ram = machine_default_ram_vocore;
96
}
97
MACHINE_DEFAULT_RAM
MACHINE_DEFAULT_RAM(vocore)
Definition:
machine_vocore.cc:83
machine::prom_emulation
int prom_emulation
Definition:
machine.h:149
device.h
MACHINE_DEFAULT_CPU
MACHINE_DEFAULT_CPU(vocore)
Definition:
machine_vocore.cc:72
ARCH_MIPS
#define ARCH_MIPS
Definition:
machine.h:203
machine::cpu_name
char * cpu_name
Definition:
machine.h:133
MACHINE_SETUP
MACHINE_SETUP(vocore)
Definition:
machine_vocore.cc:43
misc.h
device_add
void * device_add(struct machine *machine, const char *name_and_params)
Definition:
device.cc:252
machine.h
machine
Definition:
machine.h:97
MACHINE_VOCORE
#define MACHINE_VOCORE
Definition:
machine.h:221
MR_DEFAULT
#define MR_DEFAULT(x, name, arch, type)
Definition:
machine.h:373
cpu.h
machine::physical_ram_in_mb
uint32_t physical_ram_in_mb
Definition:
machine.h:147
machine::emulated_hz
int emulated_hz
Definition:
machine.h:165
MACHINE_REGISTER
MACHINE_REGISTER(vocore)
Definition:
machine_vocore.cc:89
devices.h
machine::machine_name
const char * machine_name
Definition:
machine.h:115
machine_entry_add_alias
void machine_entry_add_alias(struct machine_entry *me, const char *name)
Definition:
machine.cc:697
memory.h
Generated on Tue Aug 25 2020 19:25:06 for GXemul by
1.8.18