Revision 0d78f544

b/Makefile.target
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
b/hw/r2d.c
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
};
b/vl.c
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)
b/vl.h
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);

Also available in: Unified diff