aboutsummaryrefslogtreecommitdiff
path: root/hw/shix.c
diff options
context:
space:
mode:
Diffstat (limited to 'hw/shix.c')
-rw-r--r--hw/shix.c22
1 files changed, 15 insertions, 7 deletions
diff --git a/hw/shix.c b/hw/shix.c
index e668426c8..533b15935 100644
--- a/hw/shix.c
+++ b/hw/shix.c
@@ -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);
}