• Guenter Roeck's avatar
    nios2: Only use built-in devicetree blob if configured to do so · de164a7f
    Guenter Roeck authored
    Starting with commit 7b937cc2 ("of: Create of_root if no dtb provided
    by firmware"), attempts to boot nios2 images with an external devicetree
    blob result in a crash.
    
    Kernel panic - not syncing: early_init_dt_alloc_memory_arch:
    	Failed to allocate 72 bytes align=0x40
    
    For nios2, a built-in devicetree blob always overrides devicetree blobs
    provided by ROMMON/BIOS. This includes the new dummy devicetree blob.
    Result is that the dummy devicetree blob is used even if an external
    devicetree blob is provided. Since the dummy devicetree blob does not
    include any memory information, memory allocations fail, resulting in
    the crash.
    
    To fix the problem, only use the built-in devicetree blob if
    CONFIG_NIOS2_DTB_SOURCE_BOOL is enabled.
    
    Fixes: 7b937cc2 ("of: Create of_root if no dtb provided by firmware")
    Cc: Frank Rowand <frowand.list@gmail.com>
    Cc: Stephen Boyd <sboyd@kernel.org>
    Cc: Rob Herring <robh@kernel.org>
    Signed-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
    Reviewed-by: default avatarRob Herring <robh@kernel.org>
    Link: https://lore.kernel.org/r/20240322065419.162416-1-linux@roeck-us.netSigned-off-by: default avatarRob Herring <robh@kernel.org>
    de164a7f
prom.c 956 Bytes