Commit 4edebb0e8e14a5b934114b5ff74cb86437bb2532

Authored by blueswir1
1 parent 3d29fbef

Set limits for memory size to avoid overlap with devices


git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2823 c046a42c-6fe2-441c-8c8c-71466251a162
Showing 1 changed file with 8 additions and 3 deletions
hw/sun4m.c
... ... @@ -478,8 +478,13 @@ static const struct hwdef hwdefs[] = {
478 478 static void sun4m_common_init(int ram_size, int boot_device, DisplayState *ds,
479 479 const char *kernel_filename, const char *kernel_cmdline,
480 480 const char *initrd_filename, const char *cpu_model,
481   - unsigned int machine)
  481 + unsigned int machine, int max_ram)
482 482 {
  483 + if (ram_size > max_ram) {
  484 + fprintf(stderr, "qemu: Too much memory for this machine: %d, maximum %d\n",
  485 + ram_size / (1024 * 1024), max_ram / (1024 * 1024));
  486 + exit(1);
  487 + }
483 488 sun4m_hw_init(&hwdefs[machine], ram_size, ds, cpu_model);
484 489  
485 490 sun4m_load_kernel(hwdefs[machine].vram_size, ram_size, boot_device,
... ... @@ -497,7 +502,7 @@ static void ss5_init(int ram_size, int vga_ram_size, int boot_device,
497 502 cpu_model = "Fujitsu MB86904";
498 503 sun4m_common_init(ram_size, boot_device, ds, kernel_filename,
499 504 kernel_cmdline, initrd_filename, cpu_model,
500   - 0);
  505 + 0, 0x10000000);
501 506 }
502 507  
503 508 /* SPARCstation 10 hardware initialisation */
... ... @@ -510,7 +515,7 @@ static void ss10_init(int ram_size, int vga_ram_size, int boot_device,
510 515 cpu_model = "TI SuperSparc II";
511 516 sun4m_common_init(ram_size, boot_device, ds, kernel_filename,
512 517 kernel_cmdline, initrd_filename, cpu_model,
513   - 1);
  518 + 1, 0x20000000); // XXX tcx overlap, actually first 4GB ok
514 519 }
515 520  
516 521 QEMUMachine ss5_machine = {
... ...