diff options
Diffstat (limited to 'hw/shix.c')
-rw-r--r-- | hw/shix.c | 22 |
1 files changed, 15 insertions, 7 deletions
@@ -27,7 +27,10 @@ More information in target-sh4/README.sh4 */ -#include "vl.h" +#include "hw.h" +#include "sh.h" +#include "sysemu.h" +#include "boards.h" #define BIOS_FILENAME "shix_bios.bin" #define BIOS_ADDRESS 0xA0000000 @@ -62,17 +65,20 @@ void vga_screen_dump(const char *filename) /* XXXXX */ } -void shix_init(int ram_size, int vga_ram_size, int boot_device, - DisplayState * ds, const char **fd_filename, int snapshot, +static void shix_init(int ram_size, int vga_ram_size, + const char *boot_device, DisplayState * ds, const char *kernel_filename, const char *kernel_cmdline, const char *initrd_filename, const char *cpu_model) { int ret; CPUState *env; struct SH7750State *s; + + if (!cpu_model) + cpu_model = "any"; printf("Initializing CPU\n"); - env = cpu_init(); + env = cpu_init(cpu_model); /* Allocate memory space */ printf("Allocating ROM\n"); @@ -83,12 +89,14 @@ void shix_init(int ram_size, int vga_ram_size, int boot_device, cpu_register_physical_memory(0x0c000000, 0x01000000, 0x01004000); /* Load BIOS in 0 (and access it through P2, 0xA0000000) */ - printf("%s: load BIOS '%s'\n", __func__, BIOS_FILENAME); - ret = load_image(BIOS_FILENAME, phys_ram_base); + if (bios_name == NULL) + bios_name = BIOS_FILENAME; + printf("%s: load BIOS '%s'\n", __func__, bios_name); + ret = load_image(bios_name, phys_ram_base); if (ret < 0) { /* Check bios size */ fprintf(stderr, "ret=%d\n", ret); fprintf(stderr, "qemu: could not load SHIX bios '%s'\n", - BIOS_FILENAME); + bios_name); exit(1); } |