Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1194750

Re: [PATCH V7 4/5] arm64: apei: implement arch_apei_get_mem_attributes()

From "Zhang, Jonathan Zhixiong" <zjzhang@codeaurora.org>
Newsgroups linux.kernel
Subject Re: [PATCH V7 4/5] arm64: apei: implement arch_apei_get_mem_attributes()
Date 2015-07-29 03:00 +0200
Message-ID <pRnSV-Ns-3@gated-at.bofh.it> (permalink)
References (3 earlier) <pPO1c-2E1-13@gated-at.bofh.it> <pPO1c-2E1-11@gated-at.bofh.it> <pQNcJ-6eN-19@gated-at.bofh.it> <pQNcK-6eN-33@gated-at.bofh.it> <pQNmq-6qa-17@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On 7/27/2015 2:54 AM, Matt Fleming wrote:
> On Mon, 2015-07-27 at 10:45 +0100, Will Deacon wrote:
>>
>> That bit's fine. The weird bit is:
>>
>>    pgprot_t prot;
>>
>>    prot = efi_mem_attributes(addr);
>>
>> Since that's putting the arch-independent format into the pg_prot.
>
> Oops, missed that. Yeah that's funky.
Sorry, that was my mistake. Corrected at V8.
>>> I don't see how you can do that any other way than by using pgprot_t.
>>>
>>> Really, the problem here is that ioremap_page_caller() has no notion of
>>> "map this range in a firmware-compatible manner". If we could do, for
>>> example,
>>>
>>> 	ioremap_page_range(vaddr, vend, paddr, PAGE_FW_COMPAT);
>>>
>>> that would allow the innards of the arch-ioremap to figure out exactly
>>> how to map this range so that the firmware could access it coherently.
With this patch set, arch_apei_get_mem_attribute() is defined for above
mentioned PAGE_FW_COMPAT. If in future there are additional use case for
mapping page in atomic context according to UEFI memory map, the
function name/definition can be generalized.
>>>
>>> I suggested this previously but it didn't gain any traction.
>>
>> Yeah, or just ioremap_efi.
>>
>> </me runs away>
>
> Someone beat you to it ;-)
>
> arch/x86/include/asm/efi.h:#define efi_ioremap(addr, size, type, attr)	ioremap_cache(addr, size)
> arch/x86/include/asm/efi.h:extern void __iomem *__init efi_ioremap(unsigned long addr, unsigned long size,
> arch/x86/platform/efi/efi.c:		va = efi_ioremap(md->phys_addr, size,
> arch/x86/platform/efi/efi_64.c:void __iomem *__init efi_ioremap(unsigned long phys_addr, unsigned long size,
> arch/x86/platform/efi/efi_64.c:		efi_ioremap(top, size - (top - phys_addr), type, attribute);
x86's efi_ioremap() is intended to run at init time only. For the
purpose of this patch set, we would need to define something new
for both archs. We may want to keep it simple at this time, how do you
prefer?

-- 
Jonathan (Zhixiong) Zhang
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
a Linux Foundation Collaborative Project
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Back to linux.kernel | Previous | NextPrevious in thread | Find similar | Unroll thread


Thread

Re: [PATCH V7 4/5] arm64: apei: implement  arch_apei_get_mem_attributes() Matt Fleming <matt.fleming@intel.com> - 2015-07-27 11:50 +0200
  Re: [PATCH V7 4/5] arm64: apei: implement  arch_apei_get_mem_attributes() Will Deacon <will.deacon@arm.com> - 2015-07-27 11:50 +0200
    Re: [PATCH V7 4/5] arm64: apei: implement  arch_apei_get_mem_attributes() Matt Fleming <matt.fleming@intel.com> - 2015-07-27 12:00 +0200
      Re: [PATCH V7 4/5] arm64: apei: implement  arch_apei_get_mem_attributes() "Zhang, Jonathan Zhixiong" <zjzhang@codeaurora.org> - 2015-07-29 03:00 +0200

csiph-web