machine_rpi.cc Source File
Back to the index.
src
machines
machine_rpi.cc
Go to the documentation of this file.
1
/*
2
* Copyright (C) 2013 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: Raspberry Pi
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
(rpi)
44
{
45
machine
->
machine_name
= strdup(
"Raspberry Pi"
);
46
47
if
(
machine
->
emulated_hz
== 0)
48
machine
->
emulated_hz
= 700000000;
49
50
if
(!
machine
->
prom_emulation
)
51
return
;
52
53
arm_setup_initial_translation_table
(
cpu
, 7 * 1048576 - 32768);
54
}
55
56
57
MACHINE_DEFAULT_CPU
(rpi)
58
{
59
// "700 MHz ARM1176JZF-S core (ARM11 family, ARMv6 instruction set)[3]"
60
// according to Wikipedia.
61
// NOTE/TODO: This is wrong, but should be enough for
62
// starting with simple experiments.
63
machine
->
cpu_name
= strdup(
"ARM1136JSR1"
);
64
}
65
66
67
MACHINE_DEFAULT_RAM
(rpi)
68
{
69
machine
->
physical_ram_in_mb
= 512;
70
}
71
72
73
MACHINE_REGISTER
(rpi)
74
{
75
MR_DEFAULT
(rpi,
"Raspberry Pi"
,
ARCH_ARM
,
MACHINE_RPI
);
76
77
machine_entry_add_alias
(me,
"rpi"
);
78
79
me->set_default_ram = machine_default_ram_rpi;
80
}
81
MACHINE_REGISTER
MACHINE_REGISTER(rpi)
Definition:
machine_rpi.cc:73
arm_setup_initial_translation_table
void arm_setup_initial_translation_table(struct cpu *cpu, uint32_t ttb_addr)
Definition:
cpu_arm.cc:220
machine::prom_emulation
int prom_emulation
Definition:
machine.h:149
device.h
MACHINE_RPI
#define MACHINE_RPI
Definition:
machine.h:244
machine::cpu_name
char * cpu_name
Definition:
machine.h:133
misc.h
machine.h
machine
Definition:
machine.h:97
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_DEFAULT_CPU
MACHINE_DEFAULT_CPU(rpi)
Definition:
machine_rpi.cc:57
ARCH_ARM
#define ARCH_ARM
Definition:
machine.h:206
MACHINE_SETUP
MACHINE_SETUP(rpi)
Definition:
machine_rpi.cc:43
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
MACHINE_DEFAULT_RAM
MACHINE_DEFAULT_RAM(rpi)
Definition:
machine_rpi.cc:67
memory.h
Generated on Tue Aug 25 2020 19:25:06 for GXemul by
1.8.18