embedded-linux - 加载较大的 rootfs 时 U-boot tftp ramdisk Bad Trap
问题描述
我正在使用 39.8 MB 的 u-boot ramdisk 映像在我的板上启动内核。它启动成功。当我尝试另一个 74.7 MB 大小的 u-boot 映像时,加载 ramdisk 的地址更改及其提供
'正在将 Ramdisk 加载到 ff8c0000,结束 03fffd63... PC 上的错误陷阱:7fef8cb0'
并且电路板挂起'###ERROR ### 请重置电路板###'
我用于通过 tftp 引导的命令:
tftp 30000000 uImage.bin
tftp 32000000 DTB.dtb
tftp 40000000 rootfs.ext2.gz.u-boot
bootm 30000000 40000000 32000000
我还尝试了不同的 tftp 地址。场景保持不变。
我该如何解决这种情况?
编辑:完整的控制台日志:
=> bootm 30000000 40000000 32000000 警告:将可用内存调整为 30000000
从 Legacy Image 以 30000000 启动内核...
镜像名称:Linux-4.19.26+gc0c2141
映像类型:PowerPC Linux 内核映像(gzip 压缩)
数据大小:7140198 字节 = 6.8 MiB
加载地址:00000000
入口点:00000000
验证校验和...确定
从 40000000 的旧映像加载 init Ramdisk ...
镜像名称:core-image-x11-t1042d4rdb-64b-20
映像类型:PowerPC Linux RAMDisk 映像(未压缩)
数据大小:74710371 字节 = 71.2 MiB
加载地址:00000000
入口点:00000000
验证校验和...确定
32000000 处的扁平设备树 blob
使用 0x32000000 处的 fdt blob 引导
解压缩内核映像...确定
将 Ramdisk 加载到 ff8c0000,结束 03fffd63 ... PC 上的错误陷阱:7fef8cb0,SR:0
NIP:7FEF8CB0 XER:20000000 LR:7FF16C60 REGS:7faedae0 TRAP:0d00 DAR:FFFFEFFC
MSR:00021200 EE:0 PR:0 FP:0 ME:1 IR/DR:00
GPR00: 00000003 7FAEDBD0 7FAEDE98 FF8C0000 4073F038 0473FD60 FFFFF000 5E2AE23B GPR08: DE633873 00000020 00000001 7FAEDBE0 7FFCB808 08200800 7FAF52E8 00000000 GPR16: 00000000 00000000 306CF3A6 30000000 00000001 30000040 00000000 7FF957A8 GPR24: 7FAF533C 7FFCB6FC 7FFCB718 40000040 04000000 7FFCB6F8 7FF78540 0473FD63 Call backtrace: 7FFCB6F8 7FF176CC 7FF0D9D4 7FEFA26C 7FF1B088 7FF0BC44 7FF0BE08 7FF0C3B8 7FF1A664 7FF09CDC 7FF0CCC4 7FF4FF3C 7FF0D1D0 7FEF1040 内核 pc 7fef8cb0 信号 0 中的异常
错误###请重置板###
解决方案
您正在 0x30000000 处加载内核映像。之后,您将在 0x30000000 处加载设备树。
0x32000000 - 0x30000000 = 0x2000000 = 33554432
因此,在加载设备树时,您将覆盖内核映像。
如果不使用 0x3f000000 和 0x40000000 之间的区域,则为设备树选择 0x3f000000 应该可以解决您的问题。
推荐阅读
- posix - posix 匹配表达式与运算符
- javascript - 使用 node.js 创建 Web 服务
- javascript - Angular 从渲染组件中剥离 Web 组件?
- python - 社交 django 'NoneType' 对象没有属性 'city_set'
- fortran - 通过带有 gfortran 的 mpi_f08 模块支持 MPI Fortran
- swift - 将 api-response(data) 分配给全局变量时出错
- kibana - Kibana 服务器不允许远程访问
- c# - '字符串'FromDate'未被识别为有效的日期时间。有一个从索引“0”开始的未知单词。在 CustomValidationAttribute 期间
- python - 会说话的座位 - 脚本帮助 (Raspberry Pi)
- node.js - Docker GLIBC 版本错误 - React 项目