Zephyr Project API 3.7.0
A Scalable Open Source RTOS
|
Go to the source code of this file.
Data Structures | |
struct | acpi_dev |
union | acpi_dmar_id |
struct | acpi_mcfg |
struct | acpi_irq_resource |
struct | acpi_reg_base |
struct | acpi_mmio_resource |
Macros | |
#define | ACPI_RES_INVALID ACPI_RESOURCE_TYPE_MAX |
#define | ACPI_DRHD_FLAG_INCLUDE_PCI_ALL BIT(0) |
#define | ACPI_DMAR_FLAG_INTR_REMAP BIT(0) |
#define | ACPI_DMAR_FLAG_X2APIC_OPT_OUT BIT(1) |
#define | ACPI_DMAR_FLAG_DMA_CTRL_PLATFORM_OPT_IN BIT(2) |
#define | ACPI_MMIO_GET(res) (res)->reg_base[0].mmio |
#define | ACPI_IO_GET(res) (res)->reg_base[0].port |
#define | ACPI_RESOURCE_SIZE_GET(res) (res)->reg_base[0].length |
#define | ACPI_RESOURCE_TYPE_GET(res) (res)->reg_base[0].type |
#define | ACPI_MULTI_MMIO_GET(res, idx) (res)->reg_base[idx].mmio |
#define | ACPI_MULTI_IO_GET(res, idx) (res)->reg_base[idx].port |
#define | ACPI_MULTI_RESOURCE_SIZE_GET(res, idx) (res)->reg_base[idx].length |
#define | ACPI_MULTI_RESOURCE_TYPE_GET(res, idx) (res)->reg_base[idx].type |
#define | ACPI_RESOURCE_COUNT_GET(res) (res)->mmio_max |
#define | ACPI_DT_HID(node_id) DT_PROP(node_id, acpi_hid) |
Get the ACPI HID for a node. | |
#define | ACPI_DT_UID(node_id) DT_PROP_OR(node_id, acpi_uid, NULL) |
Get the ACPI UID for a node if one exist. | |
#define | ACPI_DT_HAS_HID(node_id) DT_NODE_HAS_PROP(node_id, acpi_hid) |
check whether the node has ACPI HID property or not | |
#define | ACPI_DT_HAS_UID(node_id) DT_NODE_HAS_PROP(node_id, acpi_uid) |
check whether the node has ACPI UID property or not | |
Typedefs | |
typedef void(* | dmar_foreach_subtable_func_t) (ACPI_DMAR_HEADER *subtable, void *arg) |
typedef void(* | dmar_foreach_devscope_func_t) (ACPI_DMAR_DEVICE_SCOPE *devscope, void *arg) |
Enumerations | |
enum | acpi_res_type { ACPI_RES_TYPE_IO , ACPI_RES_TYPE_MEM , ACPI_RES_TYPE_UNKNOWN } |
Functions | |
int | acpi_legacy_irq_init (const char *hid, const char *uid) |
Init legacy interrupt routing table information from ACPI. | |
uint32_t | acpi_legacy_irq_get (pcie_bdf_t bdf) |
Retrieve a legacy interrupt number for a PCI device. | |
int | acpi_current_resource_get (char *dev_name, ACPI_RESOURCE **res) |
Retrieve the current resource settings of a device. | |
int | acpi_possible_resource_get (char *dev_name, ACPI_RESOURCE **res) |
Retrieve possible resource settings of a device. | |
int | acpi_current_resource_free (ACPI_RESOURCE *res) |
Free current resource list memory which is retrieved by acpi_current_resource_get(). | |
ACPI_RESOURCE * | acpi_resource_parse (ACPI_RESOURCE *res, int res_type) |
Parse resource table for a given resource type. | |
struct acpi_dev * | acpi_device_get (const char *hid, const char *uid) |
Retrieve ACPI device info for given hardware id and unique id. | |
struct acpi_dev * | acpi_device_by_index_get (int index) |
Retrieve acpi device info from the index. | |
static ACPI_RESOURCE_IRQ * | acpi_irq_res_get (ACPI_RESOURCE *res_lst) |
Parse resource table for irq info. | |
int | acpi_device_irq_get (struct acpi_dev *child_dev, struct acpi_irq_resource *irq_res) |
Parse resource table for irq info. | |
int | acpi_device_mmio_get (struct acpi_dev *child_dev, struct acpi_mmio_resource *mmio_res) |
Parse resource table for MMIO info. | |
int | acpi_device_type_get (ACPI_RESOURCE *res) |
Parse resource table for identify resource type. | |
void * | acpi_table_get (char *signature, int inst) |
Retrieve acpi table for the given signature. | |
int | acpi_madt_entry_get (int type, ACPI_SUBTABLE_HEADER **tables, int *num_inst) |
retrieve acpi MAD table for the given type. | |
int | acpi_dmar_entry_get (enum AcpiDmarType type, ACPI_SUBTABLE_HEADER **tables) |
retrieve DMA remapping structure for the given type. | |
int | acpi_drhd_get (enum AcpiDmarScopeType scope, ACPI_DMAR_DEVICE_SCOPE *dev_scope, union acpi_dmar_id *dmar_id, int *num_inst, int max_inst) |
retrieve acpi DRHD info for the given scope. | |
void | acpi_dmar_foreach_subtable (ACPI_TABLE_DMAR *dmar, dmar_foreach_subtable_func_t func, void *arg) |
void | acpi_dmar_foreach_devscope (ACPI_DMAR_HARDWARE_UNIT *hu, dmar_foreach_devscope_func_t func, void *arg) |
int | acpi_dmar_ioapic_get (uint16_t *ioapic_id) |
Retrieve IOAPIC id. | |
ACPI_MADT_LOCAL_APIC * | acpi_local_apic_get (int cpu_num) |
Retrieve the 'n'th enabled local apic info. | |
int | acpi_invoke_method (char *path, ACPI_OBJECT_LIST *arg_list, ACPI_OBJECT *ret_obj) |
invoke an ACPI method and return the result. | |
#define ACPI_DMAR_FLAG_DMA_CTRL_PLATFORM_OPT_IN BIT(2) |
#define ACPI_DMAR_FLAG_INTR_REMAP BIT(0) |
#define ACPI_DMAR_FLAG_X2APIC_OPT_OUT BIT(1) |
#define ACPI_DRHD_FLAG_INCLUDE_PCI_ALL BIT(0) |
#define ACPI_DT_HAS_HID | ( | node_id | ) | DT_NODE_HAS_PROP(node_id, acpi_hid) |
check whether the node has ACPI HID property or not
node_id | DTS node identifier |
#define ACPI_DT_HAS_UID | ( | node_id | ) | DT_NODE_HAS_PROP(node_id, acpi_uid) |
check whether the node has ACPI UID property or not
node_id | DTS node identifier |
#define ACPI_DT_HID | ( | node_id | ) | DT_PROP(node_id, acpi_hid) |
Get the ACPI HID for a node.
node_id | DTS node identifier |
#define ACPI_DT_UID | ( | node_id | ) | DT_PROP_OR(node_id, acpi_uid, NULL) |
Get the ACPI UID for a node if one exist.
node_id | DTS node identifier |
#define ACPI_IO_GET | ( | res | ) | (res)->reg_base[0].port |
#define ACPI_MMIO_GET | ( | res | ) | (res)->reg_base[0].mmio |
#define ACPI_MULTI_IO_GET | ( | res, | |
idx | |||
) | (res)->reg_base[idx].port |
#define ACPI_MULTI_MMIO_GET | ( | res, | |
idx | |||
) | (res)->reg_base[idx].mmio |
#define ACPI_MULTI_RESOURCE_SIZE_GET | ( | res, | |
idx | |||
) | (res)->reg_base[idx].length |
#define ACPI_MULTI_RESOURCE_TYPE_GET | ( | res, | |
idx | |||
) | (res)->reg_base[idx].type |
#define ACPI_RES_INVALID ACPI_RESOURCE_TYPE_MAX |
#define ACPI_RESOURCE_COUNT_GET | ( | res | ) | (res)->mmio_max |
#define ACPI_RESOURCE_SIZE_GET | ( | res | ) | (res)->reg_base[0].length |
#define ACPI_RESOURCE_TYPE_GET | ( | res | ) | (res)->reg_base[0].type |
typedef void(* dmar_foreach_devscope_func_t) (ACPI_DMAR_DEVICE_SCOPE *devscope, void *arg) |
typedef void(* dmar_foreach_subtable_func_t) (ACPI_DMAR_HEADER *subtable, void *arg) |
enum acpi_res_type |
int acpi_current_resource_free | ( | ACPI_RESOURCE * | res | ) |
Free current resource list memory which is retrieved by acpi_current_resource_get().
res | the list of acpi resource list |
int acpi_current_resource_get | ( | char * | dev_name, |
ACPI_RESOURCE ** | res | ||
) |
Retrieve the current resource settings of a device.
dev_name | the name of the device |
res | the list of acpi resource list |
struct acpi_dev * acpi_device_by_index_get | ( | int | index | ) |
Retrieve acpi device info from the index.
index | the device index of an acpi child device |
struct acpi_dev * acpi_device_get | ( | const char * | hid, |
const char * | uid | ||
) |
Retrieve ACPI device info for given hardware id and unique id.
hid | the hardware id of the ACPI child device |
uid | the unique id of the ACPI child device. The uid can be NULL if only one device with given HID present in the platform. |
int acpi_device_irq_get | ( | struct acpi_dev * | child_dev, |
struct acpi_irq_resource * | irq_res | ||
) |
Parse resource table for irq info.
child_dev | the device object of the ACPI node |
irq_res | irq resource info |
int acpi_device_mmio_get | ( | struct acpi_dev * | child_dev, |
struct acpi_mmio_resource * | mmio_res | ||
) |
Parse resource table for MMIO info.
child_dev | the device object of the ACPI node |
mmio_res | MMIO resource info |
int acpi_device_type_get | ( | ACPI_RESOURCE * | res | ) |
Parse resource table for identify resource type.
res | the list of acpi resource list |
int acpi_dmar_entry_get | ( | enum AcpiDmarType | type, |
ACPI_SUBTABLE_HEADER ** | tables | ||
) |
retrieve DMA remapping structure for the given type.
type | type of remapping structure |
tables | pointer to the dmar id structure |
void acpi_dmar_foreach_devscope | ( | ACPI_DMAR_HARDWARE_UNIT * | hu, |
dmar_foreach_devscope_func_t | func, | ||
void * | arg | ||
) |
void acpi_dmar_foreach_subtable | ( | ACPI_TABLE_DMAR * | dmar, |
dmar_foreach_subtable_func_t | func, | ||
void * | arg | ||
) |
int acpi_dmar_ioapic_get | ( | uint16_t * | ioapic_id | ) |
Retrieve IOAPIC id.
ioapic_id | IOAPIC id |
int acpi_drhd_get | ( | enum AcpiDmarScopeType | scope, |
ACPI_DMAR_DEVICE_SCOPE * | dev_scope, | ||
union acpi_dmar_id * | dmar_id, | ||
int * | num_inst, | ||
int | max_inst | ||
) |
retrieve acpi DRHD info for the given scope.
scope | scope of requested DHRD table |
dev_scope | pointer to the sub table (optional) |
dmar_id | pointer to the DHRD info |
num_inst | number of instance for the requested table |
max_inst | maximum number of entry for the given dmar_id buffer |
int acpi_invoke_method | ( | char * | path, |
ACPI_OBJECT_LIST * | arg_list, | ||
ACPI_OBJECT * | ret_obj | ||
) |
invoke an ACPI method and return the result.
path | the path name of the ACPI object |
arg_list | the list of arguments to be pass down |
ret_obj | the ACPI result to be return |
|
inlinestatic |
Parse resource table for irq info.
res_lst | the list of acpi resource list |
uint32_t acpi_legacy_irq_get | ( | pcie_bdf_t | bdf | ) |
Retrieve a legacy interrupt number for a PCI device.
bdf | the BDF of endpoint/PCI device |
int acpi_legacy_irq_init | ( | const char * | hid, |
const char * | uid | ||
) |
Init legacy interrupt routing table information from ACPI.
Currently assume platform have only one PCI bus.
hid | the hardware id of the ACPI child device |
uid | the unique id of the ACPI child device. The uid can be NULL if only one device with given hid present in the platform. |
ACPI_MADT_LOCAL_APIC * acpi_local_apic_get | ( | int | cpu_num | ) |
Retrieve the 'n'th enabled local apic info.
cpu_num | the cpu number |
int acpi_madt_entry_get | ( | int | type, |
ACPI_SUBTABLE_HEADER ** | tables, | ||
int * | num_inst | ||
) |
retrieve acpi MAD table for the given type.
type | type of requested MAD table |
tables | pointer to the MAD table |
num_inst | number of instance for the requested table |
int acpi_possible_resource_get | ( | char * | dev_name, |
ACPI_RESOURCE ** | res | ||
) |
Retrieve possible resource settings of a device.
dev_name | the name of the device |
res | the list of acpi resource list |
ACPI_RESOURCE * acpi_resource_parse | ( | ACPI_RESOURCE * | res, |
int | res_type | ||
) |
Parse resource table for a given resource type.
res | the list of acpi resource list |
res_type | the acpi resource type |
void * acpi_table_get | ( | char * | signature, |
int | inst | ||
) |
Retrieve acpi table for the given signature.
signature | pointer to the 4-character ACPI signature for the requested table |
inst | instance number for the requested table |