使用的芯片是 全志H6 的orangepi 3 开发板,在uboot 启动过程报错如下:
** File not Found /boot/dts/sunxi/sunxi-orangepi-3.dts**
libfdt fdt_check_header:FDT_ERR_BADMAGIC
查看uboot 源码是在函数
int fdt_check_header(const void *fdt)
{
if (fdt_magic(fdt) == FDT_MAGIC) {
/* Complete tree */
if (fdt_version(fdt) < FDT_FIRST_SUPPORTED_VERSION)
return -FDT_ERR_BADVERSION;
if (fdt_last_comp_version(fdt) > FDT_LAST_SUPPORTED_VERSION)
return -FDT_ERR_BADVERSION;
} else if (fdt_magic(fdt) == FDT_SW_MAGIC) {
/* Unfinished sequential-write blob */
if (fdt_size_dt_struct(fdt) == 0)
return -FDT_ERR_BADSTATE;
} else {
return -FDT_ERR_BADMAGIC;
}
return 0;
}
中设备树头部校验出错 但在uboot init_sequence_f 中有执行 reserve_fdt 中也有对设备树头的校验,这里校验就通过了。 进入uboot 使用命令 fdt print 打印也可以正确打印出设备树,但在uboot autoboot_command 中 run_command_list 中的cmd_fdt 中对设备树头校验就出错了,导致无法正确进入内核
请问有人遇到过这种情况吗?
请问要怎么解决呢?