spl: riscv: opensbi: Error on misaligned FDT
libfdt 1.6.1+ requires the FDT to be 8-byte aligned and returns an error if not. OpenSBI 1.0+ includes this version of libfdt and will also reject misaligned FDTs. However, OpenSBI cannot indicate the error to the user: since it cannot access the serial console, it can only silently hang. This proved very difficult to diagnose without proper debugging facilities. Therefore, give the U-Boot SPL, which *can* print error messages, an additional check for proper FDT alignment. Hopefully this saves a lot of development cycles if another developer encounters alignment problems. Signed-off-by: Sam Edwards <CFSworks@gmail.com>
This commit is contained in:
@@ -57,6 +57,11 @@ void __noreturn spl_invoke_opensbi(struct spl_image_info *spl_image)
|
||||
hang();
|
||||
}
|
||||
|
||||
if (!IS_ALIGNED((uintptr_t)spl_image->fdt_addr, 8)) {
|
||||
pr_err("SPL image loaded an improperly-aligned device tree\n");
|
||||
hang();
|
||||
}
|
||||
|
||||
/*
|
||||
* Originally, u-boot-spl will place DTB directly after the kernel,
|
||||
* but the size of the kernel did not include the BSS section, which
|
||||
|
||||
Reference in New Issue
Block a user