[Top][All Lists]
[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.