From 6695be65f331b3cc76189d828fbb14e2be95ab0d Mon Sep 17 00:00:00 2001 From: Felix Held Date: Tue, 9 May 2023 16:18:51 +0200 Subject: [PATCH] acpi/acpigen: add acpigen_resource_io to generate I/O resource Add the acpigen_resource_io helper function to generate an I/O range resource. Signed-off-by: Felix Held Signed-off-by: Arthur Heymans Change-Id: I177f59b52d4dbbff0a3ceeef5fc8c7455cef9ff8 Reviewed-on: https://review.coreboot.org/c/coreboot/+/75044 Tested-by: build bot (Jenkins) Reviewed-by: Tim Wawrzynczak --- src/acpi/acpigen.c | 14 ++++++++++++++ src/include/acpi/acpigen.h | 1 + 2 files changed, 15 insertions(+) diff --git a/src/acpi/acpigen.c b/src/acpi/acpigen.c index 8d25114e13..6bc587577f 100644 --- a/src/acpi/acpigen.c +++ b/src/acpi/acpigen.c @@ -2251,6 +2251,20 @@ void acpigen_resource_bus_number(u16 bus_base, u16 bus_limit) bus_limit - bus_base + 1); /* length */ } +void acpigen_resource_io(u16 io_base, u16 io_limit) +{ + acpigen_resource_word(RSRC_TYPE_IO, /* res_type */ + ADDR_SPACE_GENERAL_FLAG_MAX_FIXED + | ADDR_SPACE_GENERAL_FLAG_MIN_FIXED + | ADDR_SPACE_GENERAL_FLAG_DEC_POS, /* gen_flags */ + IO_RSRC_FLAG_ENTIRE_RANGE, /* type_flags */ + 0, /* gran */ + io_base, /* range_min */ + io_limit, /* range_max */ + 0x0, /* translation */ + io_limit - io_base + 1); /* length */ +} + void acpigen_write_ADR(uint64_t adr) { acpigen_write_name_qword("_ADR", adr); diff --git a/src/include/acpi/acpigen.h b/src/include/acpi/acpigen.h index efd26e4d84..35d14ab350 100644 --- a/src/include/acpi/acpigen.h +++ b/src/include/acpi/acpigen.h @@ -694,6 +694,7 @@ void acpigen_resource_qword(u16 res_type, u16 gen_flags, u16 type_flags, u64 gran, u64 range_min, u64 range_max, u64 translation, u64 length); void acpigen_resource_bus_number(u16 bus_base, u16 bus_limit); +void acpigen_resource_io(u16 io_base, u16 io_limit); /* Emits Notify(namestr, value) */ void acpigen_notify(const char *namestr, int value);