[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] piix: fix 32bit pci hole
From: |
Laszlo Ersek |
Subject: |
Re: [Qemu-devel] [PATCH] piix: fix 32bit pci hole |
Date: |
Wed, 27 Nov 2013 12:48:27 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20131118 Thunderbird/17.0.11 |
On 11/27/13 07:46, Gerd Hoffmann wrote:
>
>>> + i440fx->pci_info.w32.begin = ram_size;
>
>> But this patch also obliterates the high bound, 0xe0000000, which can
>> lead to:
>> - w32.end - w32.begin <= 512M, or
>> - a special case of the former, w32.end < w32.begin.
>
> ram_size is not the total amount of memory, it is low memory only.
I tried to check for that when I sent the email, and I couldn't see
where this is enforced. See:
pc_init1() [hw/i386/pc_piix.c]
i440fx_init() [hw/pci-host/piix.c]
pc_init1() receives the full RAM size in "args->ram_size". It uses this
value to compute "above_4g_mem_size" and "below_4g_mem_size", for example.
pc_init1() passes "args->ram_size" unchanged to i440fx_init(), as 7th
argument.
The 7th parameter of i440fx_init() is called "ram_size". Therefore it
will hold the whole RAM size.
Thanks
Laszlo