2019-10-08 10:25:59

by Michal Simek

[permalink] [raw]
Subject: [PATCH] microblaze: Increase max dtb size to 64K from 32K

From: Siva Durga Prasad Paladugu <[email protected]>

This patch increases max dtb size to 64K from 32K. This fixes the issue of
kernel hang with larger dtb of size greater than 32KB.

Signed-off-by: Siva Durga Prasad Paladugu <[email protected]>
Signed-off-by: Michal Simek <[email protected]>
---

arch/microblaze/kernel/head.S | 2 +-
arch/microblaze/kernel/vmlinux.lds.S | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/microblaze/kernel/head.S b/arch/microblaze/kernel/head.S
index f264fdcf152a..7d2894418691 100644
--- a/arch/microblaze/kernel/head.S
+++ b/arch/microblaze/kernel/head.S
@@ -99,7 +99,7 @@ big_endian:
_prepare_copy_fdt:
or r11, r0, r0 /* incremment */
ori r4, r0, TOPHYS(_fdt_start)
- ori r3, r0, (0x8000 - 4)
+ ori r3, r0, (0x10000 - 4)
_copy_fdt:
lw r12, r7, r11 /* r12 = r7 + r11 */
sw r12, r4, r11 /* addr[r4 + r11] = r12 */
diff --git a/arch/microblaze/kernel/vmlinux.lds.S b/arch/microblaze/kernel/vmlinux.lds.S
index e1f3e8741292..71072c5cf61f 100644
--- a/arch/microblaze/kernel/vmlinux.lds.S
+++ b/arch/microblaze/kernel/vmlinux.lds.S
@@ -46,7 +46,7 @@ SECTIONS {
__fdt_blob : AT(ADDR(__fdt_blob) - LOAD_OFFSET) {
_fdt_start = . ; /* place for fdt blob */
*(__fdt_blob) ; /* Any link-placed DTB */
- . = _fdt_start + 0x8000; /* Pad up to 32kbyte */
+ . = _fdt_start + 0x10000; /* Pad up to 64kbyte */
_fdt_end = . ;
}

--
2.17.1


2019-10-25 19:24:48

by Michal Simek

[permalink] [raw]
Subject: Re: [PATCH] microblaze: Increase max dtb size to 64K from 32K

Ășt 8. 10. 2019 v 12:24 odesĂ­latel Michal Simek <[email protected]> napsal:
>
> From: Siva Durga Prasad Paladugu <[email protected]>
>
> This patch increases max dtb size to 64K from 32K. This fixes the issue of
> kernel hang with larger dtb of size greater than 32KB.
>
> Signed-off-by: Siva Durga Prasad Paladugu <[email protected]>
> Signed-off-by: Michal Simek <[email protected]>
> ---
>
> arch/microblaze/kernel/head.S | 2 +-
> arch/microblaze/kernel/vmlinux.lds.S | 2 +-
> 2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/arch/microblaze/kernel/head.S b/arch/microblaze/kernel/head.S
> index f264fdcf152a..7d2894418691 100644
> --- a/arch/microblaze/kernel/head.S
> +++ b/arch/microblaze/kernel/head.S
> @@ -99,7 +99,7 @@ big_endian:
> _prepare_copy_fdt:
> or r11, r0, r0 /* incremment */
> ori r4, r0, TOPHYS(_fdt_start)
> - ori r3, r0, (0x8000 - 4)
> + ori r3, r0, (0x10000 - 4)
> _copy_fdt:
> lw r12, r7, r11 /* r12 = r7 + r11 */
> sw r12, r4, r11 /* addr[r4 + r11] = r12 */
> diff --git a/arch/microblaze/kernel/vmlinux.lds.S b/arch/microblaze/kernel/vmlinux.lds.S
> index e1f3e8741292..71072c5cf61f 100644
> --- a/arch/microblaze/kernel/vmlinux.lds.S
> +++ b/arch/microblaze/kernel/vmlinux.lds.S
> @@ -46,7 +46,7 @@ SECTIONS {
> __fdt_blob : AT(ADDR(__fdt_blob) - LOAD_OFFSET) {
> _fdt_start = . ; /* place for fdt blob */
> *(__fdt_blob) ; /* Any link-placed DTB */
> - . = _fdt_start + 0x8000; /* Pad up to 32kbyte */
> + . = _fdt_start + 0x10000; /* Pad up to 64kbyte */
> _fdt_end = . ;
> }
>
> --
> 2.17.1
>

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