diff --git a/src/soc/amd/common/block/acpi/tables.c b/src/soc/amd/common/block/acpi/tables.c index aaa851e0ac..bda283a3cb 100644 --- a/src/soc/amd/common/block/acpi/tables.c +++ b/src/soc/amd/common/block/acpi/tables.c @@ -3,9 +3,6 @@ #include #include #include -#include -#include -#include #include #include @@ -15,28 +12,3 @@ unsigned long southbridge_write_acpi_tables(const struct device *device, { return acpi_write_hpet(device, current, rsdp); } - -/* Used by \_SB.PCI0._CRS */ -void acpi_fill_root_complex_tom(const struct device *device) -{ - const char *scope; - - assert(device); - - scope = acpi_device_scope(device); - assert(scope); - acpigen_write_scope(scope); - - acpigen_write_name_dword("TOM1", get_top_of_mem_below_4gb()); - - /* - * Since XP only implements parts of ACPI 2.0, we can't use a qword - * here. - * See http://www.acpi.info/presentations/S01USMOBS169_OS%2520new.ppt - * slide 22ff. - * Shift value right by 20 bit to make it fit into 32bit, - * giving us 1MB granularity and a limit of almost 4Exabyte of memory. - */ - acpigen_write_name_dword("TOM2", get_top_of_mem_above_4gb() >> 20); - acpigen_pop_len(); -} diff --git a/src/soc/amd/common/block/include/amdblocks/acpi.h b/src/soc/amd/common/block/include/amdblocks/acpi.h index 91051841f5..682f8ca7fd 100644 --- a/src/soc/amd/common/block/include/amdblocks/acpi.h +++ b/src/soc/amd/common/block/include/amdblocks/acpi.h @@ -54,8 +54,6 @@ struct chipset_power_state { unsigned long southbridge_write_acpi_tables(const struct device *device, unsigned long current, struct acpi_rsdp *rsdp); -void acpi_fill_root_complex_tom(const struct device *device); - uintptr_t add_agesa_fsp_acpi_table(guid_t guid, const char *name, acpi_rsdp_t *rsdp, uintptr_t current); diff --git a/src/soc/amd/stoneyridge/northbridge.c b/src/soc/amd/stoneyridge/northbridge.c index 452a7bb2eb..90d227ade0 100644 --- a/src/soc/amd/stoneyridge/northbridge.c +++ b/src/soc/amd/stoneyridge/northbridge.c @@ -167,6 +167,31 @@ static void northbridge_init(struct device *dev) register_new_ioapic((u8 *)IO_APIC2_ADDR); } +/* Used by \_SB.PCI0._CRS */ +static void acpi_fill_root_complex_tom(const struct device *device) +{ + const char *scope; + + assert(device); + + scope = acpi_device_scope(device); + assert(scope); + acpigen_write_scope(scope); + + acpigen_write_name_dword("TOM1", get_top_of_mem_below_4gb()); + + /* + * Since XP only implements parts of ACPI 2.0, we can't use a qword + * here. + * See http://www.acpi.info/presentations/S01USMOBS169_OS%2520new.ppt + * slide 22ff. + * Shift value right by 20 bit to make it fit into 32bit, + * giving us 1MB granularity and a limit of almost 4Exabyte of memory. + */ + acpigen_write_name_dword("TOM2", get_top_of_mem_above_4gb() >> 20); + acpigen_pop_len(); +} + static unsigned long acpi_fill_hest(acpi_hest_t *hest) { void *addr, *current;