All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alexey Kardashevskiy <aik@ozlabs.ru>
To: linuxppc-dev@lists.ozlabs.org
Subject: Re: [RFC PATCH kernel] powerpc: Fix early setup to make early_ioremap work
Date: Thu, 20 May 2021 13:33:27 +1000	[thread overview]
Message-ID: <74d06e55-62c3-6367-bb33-f6bbeffcac74@ozlabs.ru> (raw)
In-Reply-To: <20210520032919.358935-1-aik@ozlabs.ru>

Hm, my thunderbird says it is not cc:'ed but git sendmail says it did cc:


Server: localhost
MAIL FROM:<aik@ozlabs.ru>
RCPT TO:<linuxppc-dev@lists.ozlabs.org>
RCPT TO:<aik@ozlabs.ru>
RCPT TO:<mpe@ellerman.id.au>
RCPT TO:<christophe.leroy@csgroup.eu>
From: Alexey Kardashevskiy <aik@ozlabs.ru>
To: linuxppc-dev@lists.ozlabs.org
Cc: Alexey Kardashevskiy <aik@ozlabs.ru>,
         Michael Ellerman <mpe@ellerman.id.au>,
         Christophe Leroy <christophe.leroy@csgroup.eu>
Subject: [RFC PATCH kernel] powerpc: Fix early setup to make 
early_ioremap work


Not sure what to believe.


On 20/05/2021 13:29, Alexey Kardashevskiy wrote:
> The immediate problem is that after
> 0bd3f9e953bd ("powerpc/legacy_serial: Use early_ioremap()")
> the kernel silently reboots. The reason is that early_ioremap() returns
> broken addresses as it uses slot_virt[] array which initialized with
> offsets from FIXADDR_TOP == IOREMAP_END+FIXADDR_SIZE ==
> KERN_IO_END- FIXADDR_SIZ + FIXADDR_SIZE == __kernel_io_end which is 0
> when early_ioremap_setup() is called. __kernel_io_end is initialized
> little bit later in early_init_mmu().
> 
> This fixes the initialization by swapping early_ioremap_setup and
> early_init_mmu.
> 
> This also fixes IOREMAP_END to use FIXADDR_SIZE defined just next to it,
> seems to make sense, unless there is some weird logic with redefining
> FIXADDR_SIZE as the compiling goes.
> 
> Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
> ---
>   arch/powerpc/include/asm/book3s/64/pgtable.h | 2 +-
>   arch/powerpc/kernel/setup_64.c               | 3 ++-
>   2 files changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/powerpc/include/asm/book3s/64/pgtable.h b/arch/powerpc/include/asm/book3s/64/pgtable.h
> index a666d561b44d..54a06129794b 100644
> --- a/arch/powerpc/include/asm/book3s/64/pgtable.h
> +++ b/arch/powerpc/include/asm/book3s/64/pgtable.h
> @@ -325,8 +325,8 @@ extern unsigned long pci_io_base;
>   #define  PHB_IO_END	(KERN_IO_START + FULL_IO_SIZE)
>   #define IOREMAP_BASE	(PHB_IO_END)
>   #define IOREMAP_START	(ioremap_bot)
> -#define IOREMAP_END	(KERN_IO_END - FIXADDR_SIZE)
>   #define FIXADDR_SIZE	SZ_32M
> +#define IOREMAP_END	(KERN_IO_END - FIXADDR_SIZE)
>   
>   /* Advertise special mapping type for AGP */
>   #define HAVE_PAGE_AGP
> diff --git a/arch/powerpc/kernel/setup_64.c b/arch/powerpc/kernel/setup_64.c
> index b779d25761cf..ce09fe5debf4 100644
> --- a/arch/powerpc/kernel/setup_64.c
> +++ b/arch/powerpc/kernel/setup_64.c
> @@ -369,11 +369,12 @@ 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();
>   
> +	early_ioremap_setup();
> +
>   	/*
>   	 * After firmware and early platform setup code has set things up,
>   	 * we note the SPR values for configurable control/performance
> 

-- 
Alexey

  reply	other threads:[~2021-05-20  3:34 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-20  3:29 [RFC PATCH kernel] powerpc: Fix early setup to make early_ioremap work Alexey Kardashevskiy
2021-05-20  3:33 ` Alexey Kardashevskiy [this message]
2021-05-20  5:38   ` Christophe Leroy
2021-05-20  5:46 ` Christophe Leroy
2021-05-20  5:52   ` Alexey Kardashevskiy
2021-05-20  6:03     ` Christophe Leroy
2021-05-21 12:44 ` Michael Ellerman

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=74d06e55-62c3-6367-bb33-f6bbeffcac74@ozlabs.ru \
    --to=aik@ozlabs.ru \
    --cc=linuxppc-dev@lists.ozlabs.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.