All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com>
To: Christophe Leroy <christophe.leroy@c-s.fr>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Paul Mackerras <paulus@samba.org>,
	Michael Ellerman <mpe@ellerman.id.au>,
	npiggin@gmail.com, hch@infradead.org
Cc: linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v1 3/4] powerpc: Add support for GENERIC_EARLY_IOREMAP
Date: Thu, 12 Sep 2019 21:07:32 +0530	[thread overview]
Message-ID: <87ftl1seyr.fsf@linux.ibm.com> (raw)
In-Reply-To: <412c7eaa6a373d8f82a3c3ee01e6a65a1a6589de.1568295907.git.christophe.leroy@c-s.fr>

Christophe Leroy <christophe.leroy@c-s.fr> writes:

> Add support for GENERIC_EARLY_IOREMAP.
>
> Let's define 16 slots of 256Kbytes each for early ioremap.
>
> Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
> ---
>  arch/powerpc/Kconfig              |  1 +
>  arch/powerpc/include/asm/Kbuild   |  1 +
>  arch/powerpc/include/asm/fixmap.h | 12 ++++++++++++
>  arch/powerpc/kernel/setup_32.c    |  3 +++
>  arch/powerpc/kernel/setup_64.c    |  3 +++
>  5 files changed, 20 insertions(+)
>
> diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
> index 6a7c797fa9d2..8fe252962518 100644
> --- a/arch/powerpc/Kconfig
> +++ b/arch/powerpc/Kconfig
> @@ -161,6 +161,7 @@ config PPC
>  	select GENERIC_CMOS_UPDATE
>  	select GENERIC_CPU_AUTOPROBE
>  	select GENERIC_CPU_VULNERABILITIES	if PPC_BARRIER_NOSPEC
> +	select GENERIC_EARLY_IOREMAP
>  	select GENERIC_IRQ_SHOW
>  	select GENERIC_IRQ_SHOW_LEVEL
>  	select GENERIC_PCI_IOMAP		if PCI
> diff --git a/arch/powerpc/include/asm/Kbuild b/arch/powerpc/include/asm/Kbuild
> index 9a1d2fc6ceb7..30829120659c 100644
> --- a/arch/powerpc/include/asm/Kbuild
> +++ b/arch/powerpc/include/asm/Kbuild
> @@ -12,3 +12,4 @@ generic-y += preempt.h
>  generic-y += vtime.h
>  generic-y += msi.h
>  generic-y += simd.h
> +generic-y += early_ioremap.h
> diff --git a/arch/powerpc/include/asm/fixmap.h b/arch/powerpc/include/asm/fixmap.h
> index 722289a1d000..d5c4d357bd33 100644
> --- a/arch/powerpc/include/asm/fixmap.h
> +++ b/arch/powerpc/include/asm/fixmap.h
> @@ -15,6 +15,7 @@
>  #define _ASM_FIXMAP_H
>  
>  #ifndef __ASSEMBLY__
> +#include <linux/sizes.h>
>  #include <asm/page.h>
>  #include <asm/pgtable.h>
>  #ifdef CONFIG_HIGHMEM
> @@ -64,6 +65,14 @@ enum fixed_addresses {
>  		       FIX_IMMR_SIZE,
>  #endif
>  	/* FIX_PCIE_MCFG, */
> +	__end_of_permanent_fixed_addresses,
> +
> +#define NR_FIX_BTMAPS		(SZ_256K / PAGE_SIZE)
> +#define FIX_BTMAPS_SLOTS	16
> +#define TOTAL_FIX_BTMAPS	(NR_FIX_BTMAPS * FIX_BTMAPS_SLOTS)
> +
> +	FIX_BTMAP_END = __end_of_permanent_fixed_addresses,
> +	FIX_BTMAP_BEGIN = FIX_BTMAP_END + TOTAL_FIX_BTMAPS - 1,
>  	__end_of_fixed_addresses
>  };
>  
> @@ -71,6 +80,7 @@ enum fixed_addresses {
>  #define FIXADDR_START		(FIXADDR_TOP - __FIXADDR_SIZE)
>  
>  #define FIXMAP_PAGE_NOCACHE PAGE_KERNEL_NCG
> +#define FIXMAP_PAGE_IO	PAGE_KERNEL_NCG
>  
>  #include <asm-generic/fixmap.h>
>  
> @@ -85,5 +95,7 @@ static inline void __set_fixmap(enum fixed_addresses idx,
>  	map_kernel_page(__fix_to_virt(idx), phys, flags);
>  }
>  
> +#define __early_set_fixmap	__set_fixmap
> +
>  #endif /* !__ASSEMBLY__ */
>  #endif
> diff --git a/arch/powerpc/kernel/setup_32.c b/arch/powerpc/kernel/setup_32.c
> index a7541edf0cdb..dcffe927f5b9 100644
> --- a/arch/powerpc/kernel/setup_32.c
> +++ b/arch/powerpc/kernel/setup_32.c
> @@ -44,6 +44,7 @@
>  #include <asm/asm-prototypes.h>
>  #include <asm/kdump.h>
>  #include <asm/feature-fixups.h>
> +#include <asm/early_ioremap.h>
>  
>  #include "setup.h"
>  
> @@ -80,6 +81,8 @@ notrace void __init machine_init(u64 dt_ptr)
>  	/* Configure static keys first, now that we're relocated. */
>  	setup_feature_keys();
>  
> +	early_ioremap_setup();
> +
>  	/* Enable early debugging if any specified (see udbg.h) */
>  	udbg_early_init();
>  
> diff --git a/arch/powerpc/kernel/setup_64.c b/arch/powerpc/kernel/setup_64.c
> index 44b4c432a273..b85f6a1cc3a1 100644
> --- a/arch/powerpc/kernel/setup_64.c
> +++ b/arch/powerpc/kernel/setup_64.c
> @@ -65,6 +65,7 @@
>  #include <asm/hw_irq.h>
>  #include <asm/feature-fixups.h>
>  #include <asm/kup.h>
> +#include <asm/early_ioremap.h>
>  
>  #include "setup.h"
>  
> @@ -338,6 +339,8 @@ void __init early_setup(unsigned long dt_ptr)
>  	apply_feature_fixups();
>  	setup_feature_keys();
>  
> +	early_ioremap_setup();
> +
>  	/* Initialize the hash table or TLB handling */
>  	early_init_mmu();
>  

Can we remove early_ioremap_range() after this?

-aneesh

  reply	other threads:[~2019-09-12 15:38 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-09-12 13:49 [PATCH v1 0/4] powerpc: Add support for GENERIC_EARLY_IOREMAP Christophe Leroy
2019-09-12 13:49 ` Christophe Leroy
2019-09-12 13:49 ` [PATCH v1 1/4] powerpc/fixmap: don't clear fixmap area in paging_init() Christophe Leroy
2019-09-12 13:49   ` Christophe Leroy
2019-11-26  1:13   ` Michael Ellerman
2019-11-27 14:43     ` Christophe Leroy
2019-11-28  8:06       ` Christophe Leroy
2019-09-12 13:49 ` [PATCH v1 2/4] powerpc/fixmap: Use __fix_to_virt() instead of fix_to_virt() Christophe Leroy
2019-09-12 13:49   ` Christophe Leroy
2019-11-25 10:47   ` Michael Ellerman
2019-09-12 13:49 ` [PATCH v1 3/4] powerpc: Add support for GENERIC_EARLY_IOREMAP Christophe Leroy
2019-09-12 13:49   ` Christophe Leroy
2019-09-12 15:37   ` Aneesh Kumar K.V [this message]
2019-09-12 15:43     ` Christophe Leroy
     [not found]       ` <874l1hsed6.fsf@linux.ibm.com>
2019-09-12 16:01         ` Christophe Leroy
2019-11-25 10:47   ` Michael Ellerman
2019-09-12 13:49 ` [PATCH v1 4/4] powerpc/ioremap: warn on early use of ioremap() Christophe Leroy
2019-09-12 13:49   ` Christophe Leroy
2019-11-25 10:47   ` Michael Ellerman
2019-09-18 13:40 ` [PATCH v1 0/4] powerpc: Add support for GENERIC_EARLY_IOREMAP Christoph Hellwig
2019-09-18 13:40   ` Christoph Hellwig

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87ftl1seyr.fsf@linux.ibm.com \
    --to=aneesh.kumar@linux.ibm.com \
    --cc=benh@kernel.crashing.org \
    --cc=christophe.leroy@c-s.fr \
    --cc=hch@infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=mpe@ellerman.id.au \
    --cc=npiggin@gmail.com \
    --cc=paulus@samba.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.