1 /* SPDX-License-Identifier: GPL-2.0+ */
3 * Based on acpi.c from coreboot
5 * Copyright (C) 2015, Saket Sinha <saket.sinha89@gmail.com>
6 * Copyright (C) 2016, Bin Meng <bmeng.cn@gmail.com>
9 #ifndef __ASM_ACPI_TABLE_H__
10 #define __ASM_ACPI_TABLE_H__
14 struct acpi_global_nvs;
15 struct acpi_madt_ioapic;
16 struct acpi_madt_irqoverride;
17 struct acpi_madt_lapic_nmi;
18 struct acpi_mcfg_mmconfig;
19 struct acpi_table_header;
21 /* These can be used by the target port */
23 void acpi_fill_header(struct acpi_table_header *header, char *signature);
24 void acpi_create_fadt(struct acpi_fadt *fadt, struct acpi_facs *facs,
26 int acpi_create_madt_lapics(u32 current);
27 int acpi_create_madt_ioapic(struct acpi_madt_ioapic *ioapic, u8 id,
28 u32 addr, u32 gsi_base);
29 int acpi_create_madt_irqoverride(struct acpi_madt_irqoverride *irqoverride,
30 u8 bus, u8 source, u32 gsirq, u16 flags);
31 int acpi_create_madt_lapic_nmi(struct acpi_madt_lapic_nmi *lapic_nmi,
32 u8 cpu, u16 flags, u8 lint);
33 u32 acpi_fill_madt(u32 current);
34 int acpi_create_mcfg_mmconfig(struct acpi_mcfg_mmconfig *mmconfig, u32 base,
35 u16 seg_nr, u8 start, u8 end);
36 u32 acpi_fill_mcfg(u32 current);
37 u32 acpi_fill_csrt(u32 current);
38 void acpi_create_gnvs(struct acpi_global_nvs *gnvs);
39 ulong write_acpi_tables(ulong start);
42 * acpi_get_rsdp_addr() - get ACPI RSDP table address
44 * This routine returns the ACPI RSDP table address in the system memory.
46 * @return: ACPI RSDP table address
48 ulong acpi_get_rsdp_addr(void);
50 #endif /* __ASM_ACPI_TABLE_H__ */