qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [4246] RAM usage information in machine definition.


From: andrzej zaborowski
Subject: Re: [Qemu-devel] [4246] RAM usage information in machine definition.
Date: Sat, 26 Apr 2008 23:32:08 +0200

On 26/04/2008, Igor Kovalenko <address@hidden> wrote:
> On Thu, Apr 24, 2008 at 9:59 PM, Andrzej Zaborowski <address@hidden> wrote:
>  > Revision: 4246
>  >           http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=4246
>  >  Author:   balrog
>  >  Date:     2008-04-24 17:59:27 +0000 (Thu, 24 Apr 2008)
>  >
>  >  Log Message:
>  >  -----------
>  >  RAM usage information in machine definition.
>  [...]
>  >  Modified: trunk/hw/sun4u.c
>  >  ===================================================================
>  >  --- trunk/hw/sun4u.c    2008-04-24 17:20:25 UTC (rev 4245)
>  >  +++ trunk/hw/sun4u.c    2008-04-24 17:59:27 UTC (rev 4246)
>  >  @@ -385,4 +385,5 @@
>  >      "sun4u",
>  >      "Sun4u platform",
>  >      sun4u_init,
>  >  +    PROM_SIZE_MAX + VGA_RAM_SIZE,
>  >   };
>  >
>  [...]
>  >  Modified: trunk/vl.c
>  >  ===================================================================
>  >  --- trunk/vl.c  2008-04-24 17:20:25 UTC (rev 4245)
>  >  +++ trunk/vl.c  2008-04-24 17:59:27 UTC (rev 4246)
>  >  @@ -8277,7 +8277,7 @@
>  >      machine = first_machine;
>  >      cpu_model = NULL;
>  >      initrd_filename = NULL;
>  >  -    ram_size = DEFAULT_RAM_SIZE * 1024 * 1024;
>  >  +    ram_size = -1;
>  >      vga_ram_size = VGA_RAM_SIZE;
>  >   #ifdef CONFIG_GDBSTUB
>  >      use_gdbstub = 0;
>  >  @@ -8963,8 +8963,26 @@
>  >   #endif
>  >
>  >      /* init the memory */
>  >  -    phys_ram_size = ram_size + vga_ram_size + MAX_BIOS_SIZE;
>  >  +    phys_ram_size = machine->ram_require & ~RAMSIZE_FIXED;
>  >
>  >  +    if (machine->ram_require & RAMSIZE_FIXED) {
>  >  +        if (ram_size > 0) {
>  >  +            if (ram_size < phys_ram_size) {
>  >  +                fprintf(stderr, "Machine `%s' requires %i bytes of 
> memory\n",
>  >  +                                machine->name, phys_ram_size);
>  >  +                exit(-1);
>  >  +            }
>  >  +
>  >  +            phys_ram_size = ram_size;
>  >  +        } else
>  >  +            ram_size = phys_ram_size;
>  >  +    } else {
>  >  +        if (ram_size < 0)
>  >  +            ram_size = DEFAULT_RAM_SIZE * 1024 * 1024;
>  >  +
>  >  +        phys_ram_size += ram_size;
>  >  +    }
>  >  +
>  >      phys_ram_base = qemu_vmalloc(phys_ram_size);
>  >      if (!phys_ram_base) {
>  >          fprintf(stderr, "Could not allocate physical memory\n");
>  >
>
>  512K is not enough to load sparc64 openbios ELF image
>  Can we do something to make sure the elf loader is aware of available space?
>  Or just restore old behavior:

The old behaviour shouldn't be changed as far as I can tell - only the
first PROM_SIZE_MAX bytes of the PROM were mapped to physical memory
even if it was larger.  If that's too little then yes, probably
PROM_SIZE_MAX was set too low, and yes the elf loader should know how
much space is available and not load images too big.

Regards
-- 
Please do not print this email unless absolutely necessary. Spread
environmental awareness.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]