device_tree: Increase FDT_MAX_SIZE to 128 KiB

Message ID 1518540077-14481-1-git-send-email-geert+renesas@glider.be
State New
Headers show
Series
  • device_tree: Increase FDT_MAX_SIZE to 128 KiB
Related show

Commit Message

Geert Uytterhoeven Feb. 13, 2018, 4:41 p.m.
It is not uncommon for a contemporary FDT to be larger than 64 KiB,
leading to failures loading the device tree from sysfs:

    qemu-system-aarch64: qemu_fdt_setprop: Couldn't set ...: FDT_ERR_NOSPACE

For reference, the largest arm64 DTB created from the Linux sources is
70 KiB large (93 KiB when built with symbols/fixup support).

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
---
 device_tree.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Peter Maydell Feb. 13, 2018, 7:45 p.m. | #1
On 13 February 2018 at 16:41, Geert Uytterhoeven
<geert+renesas@glider.be> wrote:
> It is not uncommon for a contemporary FDT to be larger than 64 KiB,
> leading to failures loading the device tree from sysfs:
>
>     qemu-system-aarch64: qemu_fdt_setprop: Couldn't set ...: FDT_ERR_NOSPACE
>
> For reference, the largest arm64 DTB created from the Linux sources is
> 70 KiB large (93 KiB when built with symbols/fixup support).

I think we should probably give ourselves a bit more headroom,
then -- at least 256K.

The ppc boards actually define their own version of this constant:

#define FDT_MAX_SIZE            0x00100000

so I think we might as well just go with that in device_tree.c for
consistency.

thanks
-- PMM

Patch

diff --git a/device_tree.c b/device_tree.c
index a24ddff02bdd857c..1ba9b8e0a49e6bbc 100644
--- a/device_tree.c
+++ b/device_tree.c
@@ -29,7 +29,7 @@ 
 
 #include <libfdt.h>
 
-#define FDT_MAX_SIZE  0x10000
+#define FDT_MAX_SIZE  0x20000
 
 void *create_device_tree(int *sizep)
 {