This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Linux/AM3358:可以#39;t 启动内核

Guru**** 2616395 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/578080/linux-am3358-can-t-get-the-kernel-to-start

器件型号:AM3358

工具/软件:Linux

我们的历史记录是基于 Beagle Bone White 的 AM335x 板、它具有253MB DDR2和 RGMII1以太网、采用 Atheros AR8031-AL1B 10/100/1000 Mbps 收发器。  该板非常适合我们。 我们最近升级了内核和操作系统、没有任何问题。

我们设计了基于 BBB 的新电路板、具有相同的512 DDR3L 存储器、但仍使用 Atheros AR8031以太网。  该板不会引导 BBB 的任何预制映像、实际上、我们的 UART0调试端口上没有任何内容。  我们能够通过 MLO 和 U-boot 使用调试消息进行试用和错误操作。  这实际上是该板的第二个修订版、其中大部分更改都是功率。  修订版1电路板上的电源带来了一些问题、我们通过剪切和添加来解决这些问题、但无法在该电路板上启动内核。  rev 2电路板通电并正确启动、电源看起来一切正常。  但是、我们无法通过启动内核来获取该板。  我将设计原理图发送给 TI 进行工程审核并收到一些建议、我遵循了所有建议的更改。 没有关于内存或以太网更改的建议。 遗憾的是、我们没有在设计中添加 JTAG。 我们在 我们的版本1和版本2电路板以及 BBB 上运行了来自 TI 中国的 AM335x DDR3软件调平计划 MLO。  MLO 软件调平程序似乎在版本1上正常运行、但在版本2和 BBB 上、无论输入何种配置数据、我们都收到相同的结果、所有输出均为零。  程序会运行到最后、但不会返回任何有用的数据。  

我对存储器的电路板布局提出了疑问。  所有信号都位于三层上、每层之间有一个接地层。  我的存储器行长度为:DDR_Ax、DDR_BAx、DDR_CK (n)、DDR_CKE、DDR_CSn0、 DDR_CASn、DDR_RASn、DDR_WEN、DDR_ODT 均为24.0xmm。  DDR_Dx、DDR_DQS0 (n)、DDRDQS1 (n)、DDR_DQM1和 DDRDQM0均为24.4xmm。  这些线长度对于良好的存储器接口是否合理?  它们接近 BBB 存储器线长度。  我想知道为什么 BBB 内存配置值不够接近启动内核。

由于我们的电路板和 BBB (SD 卡接口和 I2C EEPROM (addr 50)几乎没有区别)、我还想知道代码是否在 BBB 和我们的电路板之间的以太网差异上挂起。  

我可以使用一些建议和帮助。  

谢谢、

Brian Weir

 

       

 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Brian、

    [引用]由于我们的电路板和 BBB 之间的差异非常小(SD 卡接口和 I2C EEPROM (addr 50)是相同的)、我还想知道 BBB 和我们的电路板之间的以太网差异上是否会出现代码挂起。 [/报价]

    由于以太网差异、您的内核不太可能无法启动。

    您说的
    [引用]修订版1电路板上的电源带来了我们通过剪切和添加来解决的问题、但无法在该电路板上启动 Kernal。 rev 2电路板通电并正确启动、电源看起来一切正常。 但是、我们无法获取该板、而是启动内核。

    您是不是说您看到了"正在启动内核..." 您的控制台上显示消息、没有其他内容(这是 u-boot btw 的最后一条消息)?

    在这种情况下、存在以下几个原因:

    1.您正在为电路板使用不正确的 DTB 文件、无法加载内核。

    2.在 u-boot 和内核中使用不同的 UART =>不再看到控制台消息。 -->这不太可能。

    尝试在内核中启用低级调试功能、请参阅此 wiki:
    processors.wiki.ti.com/.../Kernel_-_Common_Problems_Booting_Linux

    请分享您的控制台输出。 另外、请尝试在 am335x_evm.h 中启用#define debug 以从 u-boot 获取详细输出。 日志中可能缺少一些内容。

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Yordan、
    感谢您的建议、他们对我们现在启动内核有帮助。 请查看我们在下面获得的最新输出、是否有任何建议?
    谢谢、Brian

    新推出的 ActiveEdge 2017
    U-Boot SPL 2014.07-00010-gfcd7278-m脏(2017年3月03日- 11:44:06)
    在 s_init()内
    现在启用禁用 rtc32k 时钟...
    即将调用 early _init_f..
    MUX.c 板即将调用 SDRAM_init
    SDRAM_INIT...内部
    BoneBlack 配置 DDR...
    结束 SDRAM_INIT...
    调用 SDRAM_init 后
    AM335x_spl_board_init 内部...
    正在读取 u-boot.img
    正在读取 u-boot.img


    U-Boot 2014.07-00010-gfcd7278-m脏(2017年3月03日- 11:44:06)

    I2C:就绪
    DRAM:512 MiB
    内部 board_init..
    NAND:0 MIB
    MMC:OMAP SD/MMC:0、OMAP SD/MMC:1.
    ***警告- readenv()失败,使用默认环境

    网络: 未设置。 验证第一个电子保险丝 MAC
    CPsw、USB_ether
    按任意键停止自动引导:1 0
    警告:无法确定要使用的设备树
    切换到分区#0,确定
    mmc0是当前器件
    在器件0上找到 SD/MMC
    正在阅读 uEnv.txt
    4ms 内读取216字节(52.7KiB/s)
    uEnv.txt 上的已加载环境
    正在从 MMC 导入环境...
    正在运行 envcmd ...
    正在读取 uImage
    3951048字节在229 ms (16.5 MIB/s)内读取
    读取 AM335x-EDEDG.DTB
    在9ms 内读取36802字节(3.9 MIB/s)
    ##从 Legacy Image 中引导内核,地址为82000000...
    图像名称:linux-4.4.4.5.52-02808-g18c4fd5-脏
    创建日期: 2017-03-03 15:43:26 UTC
    映像类型:ARM Linux 内核映像(未压缩)
    数据大小:3950984字节= 3.8 MIB
    加载地址:80008000
    入口点:80008000
    正在验证校验和... 好的
    ###展开的设备树 blob、88000000
    使用0x88000000处的 FDT blob 进行引导
    正在加载内核映像... 好的
    正在将设备树加载到8fff4000,结束8fffc1... 好的

    正在启动内核...

    [0.000000]在物理 CPU 0x0上引导 Linux
    [0.000000]正在初始化 cgroup Subsys cpuset
    [0.000000]正在初始化 cgroup 子系统 CPU
    [0.000000]正在初始化 cgroup Subsys cpuacct
    [0.000000] Linux 版本4.4.5.52-02808-g18c4fd5-m脏(zclark@debian)(gcc 版本4.9.3 (Timesys 20160328))#5 SMP 星期五3月3日10:43:10 EST 2017
    [0.000000] CPU:ARMv7处理器[413fc082]修订版2 (ARMv7)、CR=10c5387d
    [0.000000] CPU:PIPT/VIPT 非混叠数据高速缓存、VIPT 别名指令高速缓存
    [0.000000]机器型号:Remkon EdgeCOM
    [0.000000]引导控制台[earlycon0]已启用
    [0.000000] CMA:保留0x9e800000处的16 MIB
    [0.000000]内存策略:数据高速缓存写回
    [0.000000] CPU:所有 CPU 均在 SVC 模式下启动。
    [0.000000] AM335X ES2.1 (SGX NEON )
    [0.000000] PERCPU:嵌入式14页/CPU @df912000 s24896 r8192 d24256 u57344
    [0.000000]在区域顺序和移动分组中构建了1个区域列表。 总页数:129408
    [0.000000]内核命令行:console=ttyO0、115200n8 root=/dev/mmcblk0p2 rw rootfstype=ext4 rootwait ip=none earlyprintk
    [0.000000] PID 哈希表条目:2048 (顺序:1、8192字节)
    [0.000000]条目高速缓存散列表条目:65536 (顺序:6、262144字节)
    [0.000000] inode 高速缓存散列表条目:32768 (顺序:5、131072字节)
    [0.000000]内存:481112K/522240K 可用(7206K 内核代码、803K rwdata、2532K rodata、468K init、8233K BSS、 24744K 保留、16384K CMA 保留、0K HIGHMEM)
    [0.000000]虚拟内核内存布局:
    [0.000000] 向量:0xff0000-0xff1000 (4KB)
    [0.000000] Fixmap:0xc00000 - 0xc00000 (3072 KB)
    [0.000000] vmalloc:0xe0800000 - 0x0x800000 (496MB)
    [0.000000] 低内存:0xC0000000 - 0xe0000000 (512 MB)
    [0.000000] pkmap:bfe00000 - 0xC0000000 (2 MB)
    [0.000000] 模块:bbf000000 - bbfe00000 (14 MB)
    [0.000000] .text:0xc0008000 - 0xc098adb8 (9740KB)
    [0.000000] init:0xc098b000 - 0xc0a00000 (468 KB)
    [0.000000] .data:0xc0a00000 - 0xc0ac8fe0 (804 KB)
    [0.000000] .bss:0xc0acb000 - 0xc12d57d0 (8234KB)
    [0.000000]正在运行 RCU 自检
    [0.000000]分层 RCU 实现。
    [0.000000]启用 RCU 锁定检查。
    [0.000000]叶扇出的生成时间调整为32。
    [0.000000]RCU 将 CPU 从 NR_CPU=2限制为 nr_CPU_IDs=1。
    [0.000000] RCU:调整 RCU_Fanout_leaf = 32、nr_cpu_ids=1的几何结构
    [0.000000] NR_IRQ:16 nr_IRQ:16 16.
    [0.000000] IRQ:在0xfa200000 (修订版5.0)处找到具有128个中断的 INTC
    [0.000000] OMAP 时钟事件源:timer2为24000000 Hz
    [0.000014] sched_clock:24MHz 时为32位、分辨率为41ns、每89478484971ns 换行一次
    [0.008169]时钟源:Timer1:屏蔽:0xFFFFFFFF max_cycles:0xFFFFFFFF、max_idle_ns:79635851949 ns
    [0.017780] OMAP 时钟源:Timer1为24000000 Hz
    [0.023360] clocksource_probe:未找到匹配的时钟源
    [0.030490]控制台:彩色虚拟设备80x30
    [0.035223] Lock Dependency validator:copyright (c) 2006 Red Hat, Inc., Ingo Molnar
    [0.043292]。 MAX_LOCKDEP_SUBCLASSES:8.
    [0.047590]... MAX_LOCK_DEPTH: 48
    [0.051976年]... MAX_LOCKDEP_KEY: 8191
    [0.056554]... CLASSHASH_SIZE: 4096
    [0.061119]... MAX_LOCKDEP_ENTERINES: 32768
    [0.065786]... MAX_LOCKDEP_链: 65536
    [0.070440]... CHAINHASH_SIZE: 32768
    [0.075108]由锁定相关性信息使用的内存:5167 KB
    [0.080745]每个任务结构内存占用量:1536字节
    [0.086412]校准延迟环路... 996.14茂物剪(lpj=4980736)
    [0.125908] pid_max:默认值:32768最小值:301
    [0.131128]安全框架已初始化
    [0.135566]安装高速缓存散列表条目:1024 (顺序:0、4096字节)
    [0.142461]安装点缓存散列表条目:1024 (顺序:0、4096字节)
    [0.152797]正在初始化 cgroup Subsys IO
    [0.157176]正在初始化 cgroup Subsys 内存
    [0.161828]正在初始化 cgroup 子系统设备
    [0.166642]初始化 cgroup Subsys 冷冻柜
    [0.171367]正在初始化 cgroup Subsys perf_event
    [0.176379] CPU:测试写入缓冲区一致性:好的
    [0.182945] CPU0:线程-1、CPU 0、套接字-1、mpidr 0
    [0.188511]为0x80008340 - 0x800083b8设置静态标识映射
    [0.199486]带来了1个 CPU
    [0.202641] SMP:总共激活1个处理器(996.14 BogoMips)。
    [0.209266] CPU:所有 CPU 均在 SVC 模式下启动。
    [0.218007] devtmpfs:已初始化
    [0.259954] VFP 支持 v0.3:实施者41架构3第30部分版本 c 修订版3

    [0.316502] OMAP_hwmod:debugss:_wait_target_disable 失败

    [0.322836]未处理故障:在0xf9e3e078上的非线性蚀刻(0x1028)上的外部中止

    [0.330803] PgD = c0004000

    [0.333672][f9e3e078]* PgD=44e11452 (BAD)

    [0.337889]内部错误:1028 [#1] SMP ARM

    [0.342645]模块链接于:

    [0.345880] CPU:0 PID:1 Comm:swapper/0未被污染4.4.5.52-02808-g18c4fd5-mis很 脏#5

    [0.353932]硬件名称:通用 AM33XX (平展器件树)

    [0.360286]任务:de096d00 ti:de098000 task.ti:de098000

    [0.365943] PC 位于_update_sysc_cache+0x2C/0x94

    [0.370868] LR 位于_enable+0x254/0x2d4

    [0.374988] PC:[ ] LR:[ ] PSR:40000013

    [0.374988] sp:de099e98 IP:00000000 FP:c098b598

    [0.386971] R10:c09dd858 R9:c09dd83c R8:00000000

    [0.392432] r7:c0a225a0 r6:c0acb978 r5:00000000 r4:c0a21ce4

    [0.399232] r3:f9e3e078 r2:c0a22b54 r1:f9e3e000 r0:c0a21ce4

    [0.406035]标志:模式 SVC_32 ISA ARM 段无时 FIQ 上的 nZcv IRQ

    [0.413461]控制:10c5387d 表:80004019 DAC:00000051

    [0.419456]进程 swapper/0 (pid:1、栈限制= 0xde098218)

    [0.425720]堆栈:(0xde099e98至0xde09a000)

    [0.430289] 9e80: 00000000 c00276e4

    [0.438793] 9ea0:00000001 00000000 a0000013 c0a21ce4 00000001 c0a21d30 c0a09500 c0999418

    [0.447297] 9ec0:c098b598 c0a228fc c099975c 00000000 c0a21ce4 c099934c 00000000 c0027cf8

    [0.455801] 9ee0:00000000 c0a05db0 c0a05db0 de123f40 c0999e7c c0999eac 00000000 c00098a4

    [0.464304] 9f00:00000001 c00950b8 00000000 c0a40968 c098be00 de096d00 00000000 c00950b8

    [0.472808] 9f20:00000065 000000bf c0706740 c005e938 00000001 c08952a8 c0954550 00000000

    [0.481311] 9f40:00000001 00000001 c09f76f8 c09f7708 c09f7724 00000001 c0acb000 000000c0

    [0.489815] 9f60:c0acb000 c09dd858 c098b598 c098b8 00000001 00000000 c098b598

    [0.498318] 9f80:c06d39e8 00000000 c06d39e8 00000000 00000000 00000000 00000000 00000000 00000000 00000000

    [0.506820] 9fa0:00000000 c06d39f0 00000000 c000f850 00000000 00000000 00000000 00000000 00000000 00000000

    [0.515324] 9fc0:00000000 00000000 00000000 00000000 00000000 00000000 00000000

    [0.523826] 9fe0:00000000 00000000 00000000 000000000013 00000000 00000000 00000000 00000000 00000000

    [0.532336][ ](_update_sysc_cache)、来自[ ](_enable+0x254/0x2d4)

    [0.540491][ ](_enable)从[ ](_setup+0xCC/0x410)

    [0.54747476][ ](_setup)从[ ](omap_hwmod_for_each + 0x34/0x60)

    [0.555447][ ](omap_hwmod_for_each)从[ ](_omap_hwmod_setup_All+0x30/0x40)

    [0.564847][ ](__omap_hwmod_setup_all)从[ ](do_one _initcall+0x80/0x1e0)

    [0.573982][ ](多个_initcall)、来自[ ](kernel_init_freeed+0x208/0x2d8)

    [0.583025][ ](kernel_init_freable)从[ ](kernel_init+0x8/0xec)

    [0.591444][ ](kernel_init)、来自[ ](RET_FANK_F叉+0x14/0x24)

    [0.599321]代码:e3110c01 e590105c e6f13073 1a00000c (e5933000)

    [0.605723]--[结束线迹 b8da58537c2e4093 ]--

    [0.610674]内核严重错误-未同步:尝试终止初始化! exitcode=0x0000000b

    [0.610674]

    [0.620263]---[结束内核紧急状态-未同步:尝试终止初始化! exitcode=0x0000000b

    [0.620263]
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Yordan、

    我们把它超越了这个... 结果是未处理的故障:在0xf9e3e078的非线性获取(0x1028)上的外部中止是 RTC 寄存器的虚拟地址、在内核中 RTC 未被禁用。 e2e.ti.com/.../368679

    现在、我们一直在等待根设备/dev/mmcblk0p2、我打开 e2e.ti.com/.../579502 进行跟踪。

    此致、
    Brian
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Yordan、感谢您发帖。

    但是、我们昨天发现了问题、我们可以从 SD 卡引导到根文件系统、而无需连接 SD_CD 线路。

    事实证明、这是 MMC 设备树中的一个问题:

    此修补程序修复了它:
    mmc1{(&M)
    状态="正常";
    - vqmmc-supply =<&ldo3_reg>;
    VMMC-supply =<&ldo4_reg>;
    总线宽度=<0x4>;
    - pinctrl-names ="default";/*、"sleep";*/
    - pinctrl-0 =<&SD_CARD_PINS_DEFAULT>;
    -/*pinctrl-1 =<&SD_CARD_PINS_SLEEP>;*/
    -/*no-1-8-v;*/
    -/*broken-cd;*/
    - CD-GPIO =<&GPIO0 6 GPIO_ACTIVE_HIGH_>;
    };

    谢谢、此致、Brian