|
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 |