Commit 0d78f544dede6b3cb16eda8fd3462fb0aa001a18
1 parent
671880e6
Add R2D-PLUS support, by Magnus Damm.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3268 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
4 changed files
with
69 additions
and
1 deletions
Makefile.target
... | ... | @@ -475,7 +475,7 @@ VL_OBJS+= omap.o omap_lcdc.o omap1_clk.o omap_mmc.o palm.o ecc.o |
475 | 475 | CPPFLAGS += -DHAS_AUDIO |
476 | 476 | endif |
477 | 477 | ifeq ($(TARGET_BASE_ARCH), sh4) |
478 | -VL_OBJS+= shix.o sh7750.o sh7750_regnames.o tc58128.o | |
478 | +VL_OBJS+= shix.o r2d.o sh7750.o sh7750_regnames.o tc58128.o | |
479 | 479 | endif |
480 | 480 | ifeq ($(TARGET_BASE_ARCH), m68k) |
481 | 481 | VL_OBJS+= an5206.o mcf5206.o ptimer.o mcf_uart.o mcf_intc.o mcf5208.o mcf_fec.o | ... | ... |
hw/r2d.c
0 → 100644
1 | +/* | |
2 | + * Renesas SH7751R R2D-PLUS emulation | |
3 | + * | |
4 | + * Copyright (c) 2007 Magnus Damm | |
5 | + * | |
6 | + * Permission is hereby granted, free of charge, to any person obtaining a copy | |
7 | + * of this software and associated documentation files (the "Software"), to deal | |
8 | + * in the Software without restriction, including without limitation the rights | |
9 | + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |
10 | + * copies of the Software, and to permit persons to whom the Software is | |
11 | + * furnished to do so, subject to the following conditions: | |
12 | + * | |
13 | + * The above copyright notice and this permission notice shall be included in | |
14 | + * all copies or substantial portions of the Software. | |
15 | + * | |
16 | + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |
17 | + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |
18 | + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL | |
19 | + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |
20 | + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |
21 | + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | |
22 | + * THE SOFTWARE. | |
23 | + */ | |
24 | + | |
25 | +#include "vl.h" | |
26 | + | |
27 | +#define SDRAM_BASE 0x0c000000 /* Physical location of SDRAM: Area 3 */ | |
28 | +#define SDRAM_SIZE 0x04000000 | |
29 | + | |
30 | +void r2d_init(int ram_size, int vga_ram_size, int boot_device, | |
31 | + DisplayState * ds, const char **fd_filename, int snapshot, | |
32 | + const char *kernel_filename, const char *kernel_cmdline, | |
33 | + const char *initrd_filename, const char *cpu_model) | |
34 | +{ | |
35 | + int ret; | |
36 | + CPUState *env; | |
37 | + struct SH7750State *s; | |
38 | + | |
39 | + env = cpu_init(); | |
40 | + | |
41 | + /* Allocate memory space */ | |
42 | + cpu_register_physical_memory(SDRAM_BASE, SDRAM_SIZE, 0); | |
43 | + /* Register peripherals */ | |
44 | + s = sh7750_init(env); | |
45 | + /* Todo: register on board registers */ | |
46 | + { | |
47 | + int kernel_size; | |
48 | + | |
49 | + kernel_size = load_image(kernel_filename, phys_ram_base); | |
50 | + | |
51 | + if (kernel_size < 0) { | |
52 | + fprintf(stderr, "qemu: could not load kernel '%s'\n", kernel_filename); | |
53 | + exit(1); | |
54 | + } | |
55 | + | |
56 | + env->pc = SDRAM_BASE | 0xa0000000; /* Start from P2 area */ | |
57 | + } | |
58 | +} | |
59 | + | |
60 | +QEMUMachine r2d_machine = { | |
61 | + "r2d", | |
62 | + "r2d-plus board", | |
63 | + r2d_init | |
64 | +}; | ... | ... |
vl.c
... | ... | @@ -7383,6 +7383,7 @@ void register_machines(void) |
7383 | 7383 | qemu_register_machine(&palmte_machine); |
7384 | 7384 | #elif defined(TARGET_SH4) |
7385 | 7385 | qemu_register_machine(&shix_machine); |
7386 | + qemu_register_machine(&r2d_machine); | |
7386 | 7387 | #elif defined(TARGET_ALPHA) |
7387 | 7388 | /* XXX: TODO */ |
7388 | 7389 | #elif defined(TARGET_M68K) | ... | ... |
vl.h
... | ... | @@ -1206,6 +1206,9 @@ extern void cpu_mips_irqctrl_init (void); |
1206 | 1206 | /* shix.c */ |
1207 | 1207 | extern QEMUMachine shix_machine; |
1208 | 1208 | |
1209 | +/* r2d.c */ | |
1210 | +extern QEMUMachine r2d_machine; | |
1211 | + | |
1209 | 1212 | #ifdef TARGET_PPC |
1210 | 1213 | /* PowerPC hardware exceptions management helpers */ |
1211 | 1214 | typedef void (*clk_setup_cb)(void *opaque, uint32_t freq); | ... | ... |