2020-02-11 13:15:37

by Michal Simek

[permalink] [raw]
Subject: [PATCH v2] microblaze: Kernel parameters should be parsed earlier

Kernel command line should be parsed before cma initialization to be able
to get cma sizes from command line. That's why call parse_early_param()
before dma_continugous_reserve().

Unfortunately it can't be called earlier in machine_early_init() because
if earlycon is passed in the command line the parse_early_param() attempts
an ioremap which fails as the memory params are not set yet.

Signed-off-by: Michal Simek <[email protected]>
Signed-off-by: Shubhrajyoti Datta <[email protected]>
---

Changes in v2:
- Fix case with earlycon

arch/microblaze/kernel/setup.c | 1 -
arch/microblaze/mm/init.c | 2 ++
2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/arch/microblaze/kernel/setup.c b/arch/microblaze/kernel/setup.c
index 511c1ab7f57f..a8fc15ac4291 100644
--- a/arch/microblaze/kernel/setup.c
+++ b/arch/microblaze/kernel/setup.c
@@ -54,7 +54,6 @@ void __init setup_arch(char **cmdline_p)
*cmdline_p = boot_command_line;

setup_memory();
- parse_early_param();

console_verbose();

diff --git a/arch/microblaze/mm/init.c b/arch/microblaze/mm/init.c
index 1056f1674065..9899ff2ef9b6 100644
--- a/arch/microblaze/mm/init.c
+++ b/arch/microblaze/mm/init.c
@@ -347,6 +347,8 @@ asmlinkage void __init mmu_init(void)
* inside 768MB limit */
memblock_set_current_limit(memory_start + lowmem_size - 1);

+ parse_early_param();
+
/* CMA initialization */
dma_contiguous_reserve(memory_start + lowmem_size - 1);
}
--
2.25.0


2020-02-24 11:21:16

by Michal Simek

[permalink] [raw]
Subject: Re: [PATCH v2] microblaze: Kernel parameters should be parsed earlier

Ășt 11. 2. 2020 v 14:13 odesĂ­latel Michal Simek <[email protected]> napsal:
>
> Kernel command line should be parsed before cma initialization to be able
> to get cma sizes from command line. That's why call parse_early_param()
> before dma_continugous_reserve().
>
> Unfortunately it can't be called earlier in machine_early_init() because
> if earlycon is passed in the command line the parse_early_param() attempts
> an ioremap which fails as the memory params are not set yet.
>
> Signed-off-by: Michal Simek <[email protected]>
> Signed-off-by: Shubhrajyoti Datta <[email protected]>
> ---
>
> Changes in v2:
> - Fix case with earlycon
>
> arch/microblaze/kernel/setup.c | 1 -
> arch/microblaze/mm/init.c | 2 ++
> 2 files changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/arch/microblaze/kernel/setup.c b/arch/microblaze/kernel/setup.c
> index 511c1ab7f57f..a8fc15ac4291 100644
> --- a/arch/microblaze/kernel/setup.c
> +++ b/arch/microblaze/kernel/setup.c
> @@ -54,7 +54,6 @@ void __init setup_arch(char **cmdline_p)
> *cmdline_p = boot_command_line;
>
> setup_memory();
> - parse_early_param();
>
> console_verbose();
>
> diff --git a/arch/microblaze/mm/init.c b/arch/microblaze/mm/init.c
> index 1056f1674065..9899ff2ef9b6 100644
> --- a/arch/microblaze/mm/init.c
> +++ b/arch/microblaze/mm/init.c
> @@ -347,6 +347,8 @@ asmlinkage void __init mmu_init(void)
> * inside 768MB limit */
> memblock_set_current_limit(memory_start + lowmem_size - 1);
>
> + parse_early_param();
> +
> /* CMA initialization */
> dma_contiguous_reserve(memory_start + lowmem_size - 1);
> }
> --
> 2.25.0
>

Applied.
M

--
Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91
w: http://www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel - Xilinx Microblaze
Maintainer of Linux kernel - Xilinx Zynq ARM and ZynqMP ARM64 SoCs
U-Boot custodian - Xilinx Microblaze/Zynq/ZynqMP/Versal SoCs