Commit 4207117c93357347500235952ce7891688089cb1
1 parent
21bd785e
Honour limited subset of --cpu values instead of ignoring.
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2761 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
2 changed files
with
14 additions
and
9 deletions
hw/pxa2xx.c
| ... | ... | @@ -1518,13 +1518,16 @@ struct pxa2xx_state_s *pxa270_init(DisplayState *ds, const char *revision) |
| 1518 | 1518 | { |
| 1519 | 1519 | struct pxa2xx_state_s *s; |
| 1520 | 1520 | struct pxa2xx_ssp_s *ssp; |
| 1521 | - char cpu_model[16]; | |
| 1522 | 1521 | int iomemtype, i; |
| 1523 | 1522 | s = (struct pxa2xx_state_s *) qemu_mallocz(sizeof(struct pxa2xx_state_s)); |
| 1524 | 1523 | |
| 1524 | + if (revision && strncmp(revision, "pxa27", 5)) { | |
| 1525 | + fprintf(stderr, "Machine requires a PXA27x processor.\n"); | |
| 1526 | + exit(1); | |
| 1527 | + } | |
| 1528 | + | |
| 1525 | 1529 | s->env = cpu_init(); |
| 1526 | - snprintf(cpu_model, sizeof(cpu_model), "pxa270-%s", revision); | |
| 1527 | - cpu_arm_set_model(s->env, cpu_model); | |
| 1530 | + cpu_arm_set_model(s->env, revision ?: "pxa270"); | |
| 1528 | 1531 | |
| 1529 | 1532 | s->pic = pxa2xx_pic_init(0x40d00000, s->env); |
| 1530 | 1533 | ... | ... |
hw/spitz.c
| ... | ... | @@ -992,14 +992,16 @@ enum spitz_model_e { spitz, akita, borzoi, terrier }; |
| 992 | 992 | static void spitz_common_init(int ram_size, int vga_ram_size, |
| 993 | 993 | DisplayState *ds, const char *kernel_filename, |
| 994 | 994 | const char *kernel_cmdline, const char *initrd_filename, |
| 995 | - enum spitz_model_e model, int arm_id) | |
| 995 | + const char *cpu_model, enum spitz_model_e model, int arm_id) | |
| 996 | 996 | { |
| 997 | 997 | uint32_t spitz_ram = 0x04000000; |
| 998 | 998 | uint32_t spitz_rom = 0x00800000; |
| 999 | 999 | struct pxa2xx_state_s *cpu; |
| 1000 | 1000 | struct scoop_info_s *scp; |
| 1001 | 1001 | |
| 1002 | - cpu = pxa270_init(ds, (model == terrier) ? "c5" : "c0"); | |
| 1002 | + if (!cpu_model) | |
| 1003 | + cpu_model = (model == terrier) ? "pxa270-c5" : "pxa270-c0"; | |
| 1004 | + cpu = pxa270_init(ds, cpu_model); | |
| 1003 | 1005 | |
| 1004 | 1006 | /* Setup memory */ |
| 1005 | 1007 | if (ram_size < spitz_ram + spitz_rom) { |
| ... | ... | @@ -1045,7 +1047,7 @@ static void spitz_init(int ram_size, int vga_ram_size, int boot_device, |
| 1045 | 1047 | const char *initrd_filename, const char *cpu_model) |
| 1046 | 1048 | { |
| 1047 | 1049 | spitz_common_init(ram_size, vga_ram_size, ds, kernel_filename, |
| 1048 | - kernel_cmdline, initrd_filename, spitz, 0x2c9); | |
| 1050 | + kernel_cmdline, initrd_filename, cpu_model, spitz, 0x2c9); | |
| 1049 | 1051 | } |
| 1050 | 1052 | |
| 1051 | 1053 | static void borzoi_init(int ram_size, int vga_ram_size, int boot_device, |
| ... | ... | @@ -1054,7 +1056,7 @@ static void borzoi_init(int ram_size, int vga_ram_size, int boot_device, |
| 1054 | 1056 | const char *initrd_filename, const char *cpu_model) |
| 1055 | 1057 | { |
| 1056 | 1058 | spitz_common_init(ram_size, vga_ram_size, ds, kernel_filename, |
| 1057 | - kernel_cmdline, initrd_filename, borzoi, 0x33f); | |
| 1059 | + kernel_cmdline, initrd_filename, cpu_model, borzoi, 0x33f); | |
| 1058 | 1060 | } |
| 1059 | 1061 | |
| 1060 | 1062 | static void akita_init(int ram_size, int vga_ram_size, int boot_device, |
| ... | ... | @@ -1063,7 +1065,7 @@ static void akita_init(int ram_size, int vga_ram_size, int boot_device, |
| 1063 | 1065 | const char *initrd_filename, const char *cpu_model) |
| 1064 | 1066 | { |
| 1065 | 1067 | spitz_common_init(ram_size, vga_ram_size, ds, kernel_filename, |
| 1066 | - kernel_cmdline, initrd_filename, akita, 0x2e8); | |
| 1068 | + kernel_cmdline, initrd_filename, cpu_model, akita, 0x2e8); | |
| 1067 | 1069 | } |
| 1068 | 1070 | |
| 1069 | 1071 | static void terrier_init(int ram_size, int vga_ram_size, int boot_device, |
| ... | ... | @@ -1072,7 +1074,7 @@ static void terrier_init(int ram_size, int vga_ram_size, int boot_device, |
| 1072 | 1074 | const char *initrd_filename, const char *cpu_model) |
| 1073 | 1075 | { |
| 1074 | 1076 | spitz_common_init(ram_size, vga_ram_size, ds, kernel_filename, |
| 1075 | - kernel_cmdline, initrd_filename, terrier, 0x33f); | |
| 1077 | + kernel_cmdline, initrd_filename, cpu_model, terrier, 0x33f); | |
| 1076 | 1078 | } |
| 1077 | 1079 | |
| 1078 | 1080 | QEMUMachine akitapda_machine = { | ... | ... |