你好,
软件环境为:ti-processor-sdk-linux-rt-am335x-evm-03.01.00.0
硬件:基于am3358定制板子
系统引导如下:
问题1:uboot引导内核启动卡在Staring kernel该怎么分析原因?
U-Boot SPL 2016.05 (Mar 29 2017 - 12:14:35)
spl_boot_list[0] = 0xb
spl -> board_init_r()
Trying to boot from SPI
spl -> board_init_r() 2.
spl_image.size = 0x5a0cc
spl_image.os = 0x11
U-Boot 2016.05 (Mar 29 2017 - 12:14:35 +0800)
Watchdog enabled
I2C: ready
DRAM: 256 MiB
board_r -> board_init_r
dm_init() success: 0
MMC: OMAP SD/MMC: 0, OMAP SD/MMC: 1
SF: Detected W25Q64CV with page size 256 Bytes, erase size 4 KiB, total 8 MiB
Net: cpsw, usb_ether
run_main_loop
bootdelay_process, bootdelay: 2
Hit any key to stop autoboot: 2 abort_0 = 0 0
abort = 0
SF: Detected W25Q64CV with page size 256 Bytes, erase size 4 KiB, total 8 MiB
device 0 offset 0x100000, size 0x400000
SF: 4194304 bytes @ 0x100000 Read: OK
device 0 offset 0x80000, size 0x20000
SF: 131072 bytes @ 0x80000 Read: OK
device 0 offset 0x500000, size 0x200000
SF: 2097152 bytes @ 0x500000 Read: OK
## Booting kernel from Legacy Image at 82000000 ...
Image Name: Linux-4.4.19-rt25
Created: 2017-03-29 6:19:45 UTC
Image Type: ARM Linux Kernel Image (uncompressed)
Data Size: 3135440 Bytes = 3 MiB
Load Address: 80008000
Entry Point: 80008000
Verifying Checksum ... OK
## Loading init Ramdisk from Legacy Image at 88000000 ...
Image Name: ramdisk
Created: 2017-03-28 12:16:55 UTC
Image Type: ARM Linux RAMDisk Image (uncompressed)
Data Size: 1003882 Bytes = 980.4 KiB
Load Address: 88080000
Entry Point: 88080000
Verifying Checksum ... OK
## Flattened Device Tree blob at 83000000
Booting using the fdt blob at 0x83000000
Loading Kernel Image ... OK
Loading Ramdisk to 8ee3a000, end 8ef2f16a ... OK
Loading Device Tree to 8ee2d000, end 8ee39709 ... OK
Starting kernel ...
系统运行过程中卡在了此处,无法继续。。。。。。。。。。
请帮忙分析是什么原因引起的,,谢谢:
状态信息如下:
=> printenv bootargs
bootargs=mem=256M console=ttyO0,115200n8
=> bdinfo
arch_number = 0x00000E05
boot_params = 0x80000100
DRAM bank = 0x00000000
-> start = 0x80000000
-> size = 0x10000000
eth0name = cpsw
ethaddr = 88:c2:55:48:ff:3a
eth1name = usb_ether
eth1addr = 88:c2:55:48:ff:3c
current eth = cpsw
ip_addr = <NULL>
baudrate = 115200 bps
TLB addr = 0x8FFF0000
relocaddr = 0x8FF51000
reloc off = 0x0F751000
irq_sp = 0x8EF30EC0
sp start = 0x8EF30EB0
=>
测试过程:
通过CCS跟踪调试,发现程序在运行至下图中红框标注的c07f16a8: ebe2ba57 bl c00a000c <printk>后出现异常,,
该位置对应linux 源码为:
start_kenerl -> setup_arch(&command_line) -> setup_processor(); -> cacheid_init()的如下函数pr_info时发生了异常中断
如果把pr_info 函数注释掉,程序还可以继续运行,但是程序运行到下一个调用printk函数时,仍会出现异常
请问该问题产生原因是什么??该如何解决??
问题2:
调试过程中还遇到了另外一个问题,就是在linux4.4.19中make menuconfig 打开配置early_printk,试图采用该功能进行打印,但是选择该功能项后,并在bootargs 配置为bootargs=mem=256M console=ttyO3,115200n8 earlyprintk,但是仍然无效,
问题3 在问题2中测试的基础上,采用am3359ICEV2工业引擎开发板做early_printk功能测试,发现在启用该功能后,能够正常运行的内核,也没有打印了,这是什么原因????


