summaryrefslogtreecommitdiff
path: root/src/arch/x86
diff options
context:
space:
mode:
authorVladimir Serbinenko <phcoder@gmail.com>2014-10-11 23:45:40 +0200
committerVladimir Serbinenko <phcoder@gmail.com>2015-05-20 19:51:40 +0200
commit5e597572ef9b32dfd0ea0b94a9fddd998bfd0f77 (patch)
treee15495cd02954efcd0b50a7fc1ac6deb2aa41e1c /src/arch/x86
parentb4ae5fd107248a51e63474c67afc092d521358c1 (diff)
acpi: make fill_slit and fill_srat into arguments.
SLIT and SRAT are created this way only on amdk8 and amdfam10. This saves the need of having a lot of dummies. Change-Id: I76d042702209cd6d11ee78ac22cf9fe9d30d0ca5 Signed-off-by: Vladimir Serbinenko <phcoder@gmail.com> Reviewed-on: http://review.coreboot.org/7052 Tested-by: build bot (Jenkins) Reviewed-by: Patrick Georgi <pgeorgi@google.com>
Diffstat (limited to 'src/arch/x86')
-rw-r--r--src/arch/x86/boot/acpi.c6
-rw-r--r--src/arch/x86/include/arch/acpi.h8
2 files changed, 8 insertions, 6 deletions
diff --git a/src/arch/x86/boot/acpi.c b/src/arch/x86/boot/acpi.c
index fb902dbfa2..b2e0df3687 100644
--- a/src/arch/x86/boot/acpi.c
+++ b/src/arch/x86/boot/acpi.c
@@ -325,7 +325,8 @@ int acpi_create_srat_mem(acpi_srat_mem_t *mem, u8 node, u32 basek, u32 sizek,
}
/* http://www.microsoft.com/whdc/system/sysinternals/sratdwn.mspx */
-void acpi_create_srat(acpi_srat_t *srat)
+void acpi_create_srat(acpi_srat_t *srat,
+ unsigned long (*acpi_fill_srat)(unsigned long current))
{
acpi_header_t *header = &(srat->header);
unsigned long current = (unsigned long)srat + sizeof(acpi_srat_t);
@@ -412,7 +413,8 @@ unsigned long acpi_create_dmar_drhd_ds_pci(unsigned long current, u8 segment,
}
/* http://h21007.www2.hp.com/portal/download/files/unprot/Itanium/slit.pdf */
-void acpi_create_slit(acpi_slit_t *slit)
+void acpi_create_slit(acpi_slit_t *slit,
+ unsigned long (*acpi_fill_slit)(unsigned long current))
{
acpi_header_t *header = &(slit->header);
unsigned long current = (unsigned long)slit + sizeof(acpi_slit_t);
diff --git a/src/arch/x86/include/arch/acpi.h b/src/arch/x86/include/arch/acpi.h
index b85f3e1be0..588de93242 100644
--- a/src/arch/x86/include/arch/acpi.h
+++ b/src/arch/x86/include/arch/acpi.h
@@ -489,8 +489,6 @@ unsigned long fw_cfg_acpi_tables(unsigned long start);
unsigned long write_acpi_tables(unsigned long addr);
unsigned long acpi_fill_madt(unsigned long current);
unsigned long acpi_fill_mcfg(unsigned long current);
-unsigned long acpi_fill_srat(unsigned long current);
-unsigned long acpi_fill_slit(unsigned long current);
#if !IS_ENABLED(CONFIG_PER_DEVICE_ACPI_TABLES)
unsigned long acpi_fill_ssdt_generator(unsigned long current,
const char *oem_table_id);
@@ -527,9 +525,11 @@ int acpi_create_srat_mem(acpi_srat_mem_t *mem, u8 node, u32 basek,u32 sizek,
int acpi_create_mcfg_mmconfig(acpi_mcfg_mmconfig_t *mmconfig, u32 base,
u16 seg_nr, u8 start, u8 end);
unsigned long acpi_create_srat_lapics(unsigned long current);
-void acpi_create_srat(acpi_srat_t *srat);
+void acpi_create_srat(acpi_srat_t *srat,
+ unsigned long (*acpi_fill_srat)(unsigned long current));
-void acpi_create_slit(acpi_slit_t *slit);
+void acpi_create_slit(acpi_slit_t *slit,
+ unsigned long (*acpi_fill_slit)(unsigned long current));
#if ENV_RAMSTAGE
void acpi_create_hpet(acpi_hpet_t *hpet);