diff options
author | Andy Shevchenko <andriy.shevchenko@linux.intel.com> | 2017-07-21 22:32:05 +0300 |
---|---|---|
committer | Bin Meng <bmeng.cn@gmail.com> | 2017-07-30 10:30:25 +0800 |
commit | ace7762b28545e0d2e122d07e81cd4c094fbb298 (patch) | |
tree | 670b1536a4641d50455de4488e7e67f46602f90e /arch/x86 | |
parent | b156da91fb1c266f140d49b0e79bb7c4071dae43 (diff) | |
download | u-boot-ace7762b28545e0d2e122d07e81cd4c094fbb298.tar.gz u-boot-ace7762b28545e0d2e122d07e81cd4c094fbb298.tar.bz2 u-boot-ace7762b28545e0d2e122d07e81cd4c094fbb298.zip |
x86: acpi: Export acpi_fill_mcfg() with __weak attribute
Some platforms might require different approach when filling memory
mappings configuration table.
Allow them to override the common method.
At the same time export acpi_create_mcfg_mmconfig().
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Diffstat (limited to 'arch/x86')
-rw-r--r-- | arch/x86/include/asm/acpi_table.h | 3 | ||||
-rw-r--r-- | arch/x86/lib/acpi_table.c | 6 |
2 files changed, 6 insertions, 3 deletions
diff --git a/arch/x86/include/asm/acpi_table.h b/arch/x86/include/asm/acpi_table.h index e177c441e7..80038504dd 100644 --- a/arch/x86/include/asm/acpi_table.h +++ b/arch/x86/include/asm/acpi_table.h @@ -314,6 +314,9 @@ int acpi_create_madt_irqoverride(struct acpi_madt_irqoverride *irqoverride, int acpi_create_madt_lapic_nmi(struct acpi_madt_lapic_nmi *lapic_nmi, u8 cpu, u16 flags, u8 lint); u32 acpi_fill_madt(u32 current); +int acpi_create_mcfg_mmconfig(struct acpi_mcfg_mmconfig *mmconfig, u32 base, + u16 seg_nr, u8 start, u8 end); +u32 acpi_fill_mcfg(u32 current); void acpi_create_gnvs(struct acpi_global_nvs *gnvs); /** * enter_acpi_mode() - enter into ACPI mode diff --git a/arch/x86/lib/acpi_table.c b/arch/x86/lib/acpi_table.c index 14d10c34cd..da6014fb41 100644 --- a/arch/x86/lib/acpi_table.c +++ b/arch/x86/lib/acpi_table.c @@ -293,8 +293,8 @@ static void acpi_create_madt(struct acpi_madt *madt) header->checksum = table_compute_checksum((void *)madt, header->length); } -static int acpi_create_mcfg_mmconfig(struct acpi_mcfg_mmconfig *mmconfig, - u32 base, u16 seg_nr, u8 start, u8 end) +int acpi_create_mcfg_mmconfig(struct acpi_mcfg_mmconfig *mmconfig, u32 base, + u16 seg_nr, u8 start, u8 end) { memset(mmconfig, 0, sizeof(*mmconfig)); mmconfig->base_address_l = base; @@ -306,7 +306,7 @@ static int acpi_create_mcfg_mmconfig(struct acpi_mcfg_mmconfig *mmconfig, return sizeof(struct acpi_mcfg_mmconfig); } -static u32 acpi_fill_mcfg(u32 current) +__weak u32 acpi_fill_mcfg(u32 current) { current += acpi_create_mcfg_mmconfig ((struct acpi_mcfg_mmconfig *)current, |