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); | ... | ... |