[PATCH] ACPI: Add memory semantics to acpi_os_map_memory()

Hanjun Guo guohanjun at huawei.com
Mon Jul 26 21:21:46 PDT 2021


On 2021/7/26 18:00, Lorenzo Pieralisi wrote:
> The memory attributes attached to memory regions depend on architecture
> specific mappings.
> 
> For some memory regions, the attributes specified by firmware (eg
> uncached) are not sufficient to determine how a memory region should be
> mapped by an OS (for instance a region that is define as uncached in
> firmware can be mapped as Normal or Device memory on arm64) and
> therefore the OS must be given control on how to map the region to match
> the expected mapping behaviour (eg if a mapping is requested with memory
> semantics, it must allow unaligned accesses).
> 
> Rework acpi_os_map_memory() and acpi_os_ioremap() back-end to split
> them into two separate code paths:
> 
> acpi_os_memmap() -> memory semantics
> acpi_os_ioremap() -> MMIO semantics
> 
> The split allows the architectural implementation back-ends to detect
> the default memory attributes required by the mapping in question
> (ie the mapping API defines the semantics memory vs MMIO) and map the
> memory accordingly.
> 
> Link: https://lore.kernel.org/linux-arm-kernel/31ffe8fc-f5ee-2858-26c5-0fd8bdd68702@arm.com
> Signed-off-by: Lorenzo Pieralisi <lorenzo.pieralisi at arm.com>
> Cc: Ard Biesheuvel <ardb at kernel.org>
> Cc: Will Deacon <will at kernel.org>
> Cc: Hanjun Guo <guohanjun at huawei.com>
> Cc: Sudeep Holla <sudeep.holla at arm.com>
> Cc: Catalin Marinas <catalin.marinas at arm.com>
> Cc: "Rafael J. Wysocki" <rjw at rjwysocki.net>
> ---
>   arch/arm64/include/asm/acpi.h |  3 +++
>   arch/arm64/kernel/acpi.c      | 19 ++++++++++++++++---
>   drivers/acpi/osl.c            | 23 ++++++++++++++++-------
>   include/acpi/acpi_io.h        |  8 ++++++++

Acked-by: Hanjun Guo <guohanjun at huawei.com>

I did the boot test on both x86 and ARM64 server machines,
and no regressions,

Tested-by: Hanjun Guo <guohanjun at huawei.com>

Thanks
Hanjun



More information about the linux-arm-kernel mailing list