summaryrefslogtreecommitdiff
path: root/hw/integratorcp.c
diff options
context:
space:
mode:
authorpbrook <pbrook@c046a42c-6fe2-441c-8c8c-71466251a162>2006-02-20 00:33:36 +0000
committerpbrook <pbrook@c046a42c-6fe2-441c-8c8c-71466251a162>2006-02-20 00:33:36 +0000
commit40f137e1eadbc202daf00bd6f43a997ccfb28b70 (patch)
treef47a0f42030dda29c9ff8db306730c2e7274a410 /hw/integratorcp.c
parent4081fccf14166c018a5694c9c0679496de69b679 (diff)
Add Arm926 core support.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1765 c046a42c-6fe2-441c-8c8c-71466251a162
Diffstat (limited to 'hw/integratorcp.c')
-rw-r--r--hw/integratorcp.c37
1 files changed, 32 insertions, 5 deletions
diff --git a/hw/integratorcp.c b/hw/integratorcp.c
index 8f91b582f..db73efda1 100644
--- a/hw/integratorcp.c
+++ b/hw/integratorcp.c
@@ -1173,7 +1173,7 @@ static void set_kernel_args(uint32_t ram_size, int initrd_size,
static void integratorcp_init(int ram_size, int vga_ram_size, int boot_device,
DisplayState *ds, const char **fd_filename, int snapshot,
const char *kernel_filename, const char *kernel_cmdline,
- const char *initrd_filename)
+ const char *initrd_filename, uint32_t cpuid)
{
CPUState *env;
uint32_t bios_offset;
@@ -1183,6 +1183,7 @@ static void integratorcp_init(int ram_size, int vga_ram_size, int boot_device,
int n;
env = cpu_init();
+ cpu_arm_set_model(env, cpuid);
bios_offset = ram_size + vga_ram_size;
/* ??? On a real system the first 1Mb is mapped as SSRAM or boot flash. */
/* ??? RAM shoud repeat to fill physical memory space. */
@@ -1240,8 +1241,34 @@ static void integratorcp_init(int ram_size, int vga_ram_size, int boot_device,
set_kernel_args(ram_size, initrd_size, kernel_cmdline);
}
-QEMUMachine integratorcp_machine = {
- "integratorcp",
- "ARM Integrator/CP",
- integratorcp_init,
+static void integratorcp926_init(int ram_size, int vga_ram_size,
+ int boot_device, DisplayState *ds, const char **fd_filename, int snapshot,
+ const char *kernel_filename, const char *kernel_cmdline,
+ const char *initrd_filename)
+{
+ integratorcp_init(ram_size, vga_ram_size, boot_device, ds, fd_filename,
+ snapshot, kernel_filename, kernel_cmdline,
+ initrd_filename, ARM_CPUID_ARM926);
+}
+
+static void integratorcp1026_init(int ram_size, int vga_ram_size,
+ int boot_device, DisplayState *ds, const char **fd_filename, int snapshot,
+ const char *kernel_filename, const char *kernel_cmdline,
+ const char *initrd_filename)
+{
+ integratorcp_init(ram_size, vga_ram_size, boot_device, ds, fd_filename,
+ snapshot, kernel_filename, kernel_cmdline,
+ initrd_filename, ARM_CPUID_ARM1026);
+}
+
+QEMUMachine integratorcp926_machine = {
+ "integratorcp926",
+ "ARM Integrator/CP (ARM926EJ-S)",
+ integratorcp926_init,
+};
+
+QEMUMachine integratorcp1026_machine = {
+ "integratorcp1026",
+ "ARM Integrator/CP (ARM1026EJ-S)",
+ integratorcp1026_init,
};