Messages in this thread | | | From | Rob Herring <> | Date | Wed, 27 Mar 2024 16:37:24 -0500 | Subject | Re: [PATCH v2] nios2: Only use built-in devicetree blob if configured to do so |
| |
On Fri, Mar 22, 2024 at 1:54 AM Guenter Roeck <linux@roeck-us.net> wrote: > > Starting with commit 7b937cc243e5 ("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: 7b937cc243e5 ("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: Guenter Roeck <linux@roeck-us.net> > --- > v2: Mark 'dtb' as __maybe_unused > > arch/nios2/kernel/prom.c | 6 +++++- > 1 file changed, 5 insertions(+), 1 deletion(-)
I don't love the ifdef, but seems to be the least invasive for 6.9.
Reviewed-by: Rob Herring <robh@kernel.org>
I have a somewhat more invasive change which checks for top-level compatible existing to decide whether to use the built-in. That's more risky as it would affect everyone. We're already doing that elsewhere and found 1 board that didn't have one.
Rob
| |