[SeaBIOS] [PATCH] acpi: minor clean-up of 64 bit window logic
Michael S. Tsirkin
mst at redhat.com
Tue Apr 30 16:35:21 CEST 2013
On Tue, Apr 30, 2013 at 01:36:33PM +0300, Michael S. Tsirkin wrote:
> Make 64 bit window detection logic a bit cleaner:
> don't hardcode 0 address as invalid, instead
> check start < end.
>
> Signed-off-by: Michael S. Tsirkin <mst at redhat.com>
Hmm, scratch this patch. This does not handle case where
last byte is all ones - _end would be 0.
> ---
> src/acpi.c | 2 +-
> src/pciinit.c | 2 +-
> 2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/src/acpi.c b/src/acpi.c
> index b03b2ba..1037093 100644
> --- a/src/acpi.c
> +++ b/src/acpi.c
> @@ -355,7 +355,7 @@ build_ssdt(void)
> // store pci io windows
> *(u32*)&ssdt_ptr[acpi_pci32_start[0]] = cpu_to_le32(pcimem_start);
> *(u32*)&ssdt_ptr[acpi_pci32_end[0]] = cpu_to_le32(pcimem_end - 1);
> - if (pcimem64_start) {
> + if (pcimem64_start < pcimem64_end) {
> ssdt_ptr[acpi_pci64_valid[0]] = 1;
> *(u64*)&ssdt_ptr[acpi_pci64_start[0]] = cpu_to_le64(pcimem64_start);
> *(u64*)&ssdt_ptr[acpi_pci64_end[0]] = cpu_to_le64(pcimem64_end - 1);
> diff --git a/src/pciinit.c b/src/pciinit.c
> index a4a5bf5..fdf1362 100644
> --- a/src/pciinit.c
> +++ b/src/pciinit.c
> @@ -818,7 +818,7 @@ static void pci_bios_map_devices(struct pci_bus *busses, struct pci_mem *mem)
> pci_region_map_entries(busses, &r64_pref);
> } else if (!mem) {
> // no bars mapped high -> drop 64bit window (see dsdt)
> - pcimem64_start = 0;
> + pcimem64_end = pcimem64_start = 0;
> }
> // Map regions on each device.
> int bus;
> --
> MST
More information about the SeaBIOS
mailing list