[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: |
Igor Kovalenko |
Subject: |
Re: [Qemu-devel] [4246] RAM usage information in machine definition. |
Date: |
Sun, 27 Apr 2008 01:47:08 +0400 |
On Sun, Apr 27, 2008 at 1:32 AM, andrzej zaborowski <address@hidden> wrote:
>
> 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.
>
Well, it was defined to 4M before r4246 in sysemu.h, see below.
Seems like for sun4u that was a typo, please apply the patch to
increase PROM_SIZE_MAX for sun4u.c
-- sysemu.h r4245 --
/* XXX: make it dynamic */
#define MAX_BIOS_SIZE (4 * 1024 * 1024)
--
Kind regards,
Igor V. Kovalenko