Re: [PATCH V7 1/8] ACPI: I/O Remapping Table (IORT) initial support

From: Tomasz Nowicki
Date: Wed Jun 22 2016 - 08:47:59 EST


On 22.06.2016 14:35, Tomasz Nowicki wrote:
IORT shows representation of IO topology for ARM based systems.
It describes how various components are connected together on
parent-child basis e.g. PCI RC -> SMMU -> ITS. Also see IORT spec.
http://infocenter.arm.com/help/topic/com.arm.doc.den0049b/DEN0049B_IO_Remapping_Table.pdf

Initial support allows to detect IORT table presence and save its
root pointer obtained through acpi_get_table(). The pointer validity
depends on acpi_gbl_permanent_mmap because if acpi_gbl_permanent_mmap
is not set while using IORT nodes we would dereference unmapped pointers.

For the aforementioned reason call iort_table_detect() from acpi_init()
which guarantees acpi_gbl_permanent_mmap to be set at that point.

Add generic helpers which are helpful for scanning and retrieving
information from IORT table content. List of the most important helpers:
- iort_find_dev_node() finds IORT node for a given device
- iort_node_map_rid() maps device RID and returns IORT node which provides
final translation

Signed-off-by: Tomasz Nowicki <tn@xxxxxxxxxxxx>

The updated patch incorporates fixes and addresses Lorenzo's comments.
The whole series is here:
https://github.com/semihalf-nowicki-tomasz/linux.git (its-acpi-v7.1)

Thanks,
Tomasz