From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paul Brook Subject: Re: [PATCH 1/6] Use correct types to enable > 2G support Date: Thu, 31 Jan 2008 23:54:21 +0000 Message-ID: <200801312354.24382.paul@codesourcery.com> References: <1201818980-27534-1-git-send-email-aliguori@us.ibm.com> <1201818980-27534-2-git-send-email-aliguori@us.ibm.com> Mime-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Cc: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org, qemu-devel-qX2TKyscuCcdnm+yROfE0A@public.gmane.org, Avi Kivity , Fabrice Bellard To: Anthony Liguori Return-path: In-Reply-To: <1201818980-27534-2-git-send-email-aliguori-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org> Content-Disposition: inline List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: kvm-devel-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org Errors-To: kvm-devel-bounces-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org List-Id: kvm.vger.kernel.org On Thursday 31 January 2008, Anthony Liguori wrote: > KVM supports more than 2GB of memory for x86_64 hosts. The following pat= ch > fixes a number of type related issues where int's were being used when th= ey > shouldn't have been. It also introduces CMOS support so the BIOS can bui= ld > the appropriate e820 tables. You've still got a fairly random mix of unsigned long, ram_addr_t and = uint64_t. > -typedef void QEMUMachineInitFunc(int ram_size, int vga_ram_size, > +typedef void QEMUMachineInitFunc(ram_addr_t ram_size, int vga_ram_size, This breaks every target except x86. > + =A0 =A0if (above_4g_mem_size) { > + =A0 =A0 =A0 =A0rtc_set_memory(s, 0x5b, (unsigned int)above_4g_mem_size = >> 16); > + =A0 =A0 =A0 =A0rtc_set_memory(s, 0x5c, (unsigned int)above_4g_mem_size = >> 24); > + =A0 =A0 =A0 =A0rtc_set_memory(s, 0x5d, above_4g_mem_size >> 32); This will cause warnings on 32-bit hosts. > + if (ram_size >=3D 0xe0000000 ) { > + above_4g_mem_size =3D ram_size - 0xe0000000; > + ram_size =3D 0xe0000000; > + } I'm fairly sure this will break the VMware VGA adapter: > pci_vmsvga_init(pci_bus, ds, phys_ram_base + ram_size, > ram_size, vga_ram_size); > +#define PHYS_RAM_MAX_SIZE (2047 * 1024 * 1024 * 1024ULL) This seems fairly arbitrary. Why? Any limit is certainly target specific. Paul ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/