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

> -- PMM
> 


Reply via email to