导航

    全志在线开发者论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 在线文档
    • 社区主页
    1. 主页
    2. chen95
    3. 帖子
    C
    • 资料
    • 关注 0
    • 粉丝 0
    • 我的积分 105
    • 主题 1
    • 帖子 1
    • 最佳 0
    • 群组 0

    chen95 发布的帖子

    • uboot 中可以打印设备树但在uboot 启动内核过程中报错找不到设备树

      使用的芯片是 全志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 中对设备树头校验就出错了,导致无法正确进入内核
      请问有人遇到过这种情况吗?
      请问要怎么解决呢?

      发布在 Linux
      C
      chen95
    • 1 / 1