U-Boot: Cannot Boot Linux Kernel Despite Kernel Being Less Than Maximum Bootm_Len

u-boot: cannot boot linux kernel despite kernel being less than maximum BOOTM_LEN

The final problem you run in to:

ERROR: new format image overwritten - must RESET the board to recover

is because you've loaded the image in to memory in the same location as the entry point but you need to load it in to memory somewhere else so that U-Boot can unpack the image and put the contents where their load address is set to. Since you have 128MB of memory you should be able to put it at +32 or +64MB from start and then things should work.

u-boot hangs at Uncompressing/Loading Kernel Image

I have limited experience in using FIT, so my observation below could be wrong. Anyhow, it looks to me like the first image of your ftb is being used, which in turn has a configuration which does not include a device tree. You are basically loading a kernel without any information about the hardware (such as where and how to access the uart for the serial console), right? More specifically, I think the kernel needs the "chosen" node (e.g. stdout-path) as described here https://www.kernel.org/doc/Documentation/devicetree/bindings/chosen.txt

I'm in a similar situation (developing a board based on a similar "luton" SoC from Vitesse->Microsemi->Microchip, VSC7425). I'm not having any problems booting linux 5.9 with u-boot 2021.07. Then again, it's not exactly the same hardware nor software.

You could try to move your device tree sub-image into the first image, and replace the first configuration with what is found in the second one.

Can i boot a linux kernel without passing a separate DTB from bootloader?

What you're looking for is in the kernel the ARM_APPENDED_DTB config option. This will let you include the DTB to use with the platform in the same file as the kernel. This can then be booted the normal way on your platform and the kernel will look and find the included DTB.



Related Topics



Leave a reply



Submit