On 9 April 2015 at 14:51, Igor Mammedov <imamm...@redhat.com> wrote:
> On Thu, 9 Apr 2015 14:27:58 +0100
> Peter Maydell <peter.mayd...@linaro.org> wrote:
>
>> On 9 April 2015 at 14:17, Igor Mammedov <imamm...@redhat.com> wrote:
>> > On Thu, 09 Apr 2015 13:50:52 +0100
>> > Alex Bennée <alex.ben...@linaro.org> wrote:
>> >
>> >>
>> >> Shannon Zhao <zhaoshengl...@huawei.com> writes:
>> >> > +    for (i = 0; i < table_offsets->len; ++i) {
>> >> > +        /* rsdt->table_offset_entry to be filled by Guest linker */
>> >> > +        bios_linker_loader_add_pointer(linker,
>> >> > +                                       ACPI_BUILD_TABLE_FILE,
>> >> > +                                       ACPI_BUILD_TABLE_FILE,
>> >> > +                                       table_data, 
>> >> > &rsdt->table_offset_entry[i],
>> >> > +                                       sizeof(uint32_t));
>> >>
>> >> Why are these pointers always 32 bit? Can they ever be 64 bit?
>> > Laszlo, can you confirm that UEFI puts APCI tables below 4G address space?
>>
>> In the general case you can't guarantee that there will
>> be any RAM at all below the 4G point. (The virt board
>> isn't like that, obviously, but I believe there's real
>> hardware out there that's designed that way.) I don't
>> think we should have any 32 bit assumptions in the
>> code at all -- pointer values should always be 64 bits
>> everywhere.
>
> then that forces us to use xsdt instead of 32-bit rsdt

Does that matter much?

-- PMM

Reply via email to