工具/软件:Linux
您好!
我们目前正在尝试在新开发的基于 AM3358的平台上启动最小的 Linux 系统。 我们使用具有 Linaro 5.4编译器和 CCS7的 ti-processor-sdk-linux-am335x-evm-04.03.00.09进行调试。 虽然 IRAM 中的第一级引导加载程序和 DDR3 RAM 中的 U-Boot 运行正常、但 Linux 在初始化阶段失败、某些奇数地址出现数据中止异常。 请在[0.185312]时间戳查看以下日志。 违规地址似乎属于 vmalloc 范围(0xf0800000 < 0xf9e3e078 < 0x800000)、并从不属于 CM DDR 配置/控制寄存器的寄存器0x44e11452中读取。 我们不确定问题可能是什么、因为我们无法使用 OMAP-hwmod_setup_all 函数中的 CCS7和 XDS100v2 "中断"硬件断点。 我们可以在 arch/arm/mm/fault.c 中的 DataAbort 异常处理程序中中断、但没有足够的信息说明导致异常的原因。
我们用于引导 Linux 的器件树非常小、仅包含基本的 AM335x.dtsi、如下所示。
请提供任何帮助。 如果您有任何疑问或需要更多数据、请告诉我。
正在启动内核...
[0.000000]在物理 CPU 0x0上引导 Linux
[0.000000] Linux 版本4.9.59-ga75d8e9305 (rronge@horus)(gcc 版本5.4.0 20160609 (ubuntuo/Linaro 5.4.5.4-6ubuntu1~16.04.4))#4抢先于2018年2月8日21:36:40 EST
[0.000000] CPU:ARMv7处理器[413fc082]修订版2 (ARMv7)、CR=10c5387d
[0.000000] CPU:PIPT/VIPT 非混叠数据高速缓存、VIPT 别名指令高速缓存
[0.0000M]、共个:FDT:机器模型:TI AM335x CSYSOBC
[0.000000]引导控制台[earlycon0]已启用
[0.000000] EFI:从 FDT 获取 EFI 参数:
[0.000000] EFI:未找到 UEFI。
[0.000000] CMA:在 bbd000000处保留48 mib
[0.000000]内存策略:数据高速缓存写回
[0.000000] CPU:所有 CPU 均在 SVC 模式下启动。
[0.000000] AM335X ES2.1 (SGX NEON)
[0.000000]在区域顺序和移动分组中构建了1个区域列表。 总页数:260416
[0.000000]内核命令行:earchk console=ttyS0、115200n8;
[0.000000] PID 哈希表条目:4096 (顺序:2、16384字节)
[0.000000]条目高速缓存散列表条目:131072 (顺序:7、524288字节)
[0.000000] inode 高速缓存散列表条目:65536 (顺序:6、262144字节)
[0.000000]内存:979496K/1048576K 可用(6144K 内核代码、233K rwdata、1856K rodata、1024K init、265K BSS、 19928K 保留、49152K CMA 保留、212992K HIGHMEM)
[0.000000]虚拟内核内存布局:
[0.000000]矢量:0xff0000-0xff1000 (4KB)
[0.000000] fixmap:0xc00000 - 0xc00000 (3072 KB)
[0.000000] vmalloc:0xf0800000 - 0x800000 (240 MB)
[0.000000]低内存:0xC0000000 - 0xf0000000 (768 MB)
[0.000000] pkmap:bbfe00000 - 0xC0000000 (2 MB)
[0.000000]模块:bbf000000 - bbbfe00000 (14 MB)
[0.000000].text:0xc0008000 - 0xc0700000 (7136 KB)
[0.000000].init:0xc0900000 - 0xc0a00000 (1024KB)
[0.000000].data:0xc0a00000 - 0xc0a3a460 (234KB)
[0.000000].bss:0xc0a3a460 - 0xc0a7cb74 (266 KB)
[0.000000] slub:HWalign=64、order=0-3、MinObjects=0、CPU=1、Nodes=1
[0.000000]可抢占的分层 RCU 实现。
[0.000000]叶扇出的生成时间调整为32。
[0.000000] NR_IRQ:16 nr_IRQ:16 16.
[0.000000] IRQ:在0xfa200000 (修订版5.0)处找到具有128个中断的 INTC
[0.000000] OMAP 时钟事件源:timer2为24000000 Hz
[0.000013] sched_clock:24MHz 时为32位、分辨率为41ns、每89478484971ns 换行一次
[0.008162]时钟源:Timer1:屏蔽:0xFFFFFFFF max_cycles:0xFFFFFFFF、max_idle_ns:79635851949 ns
[0.017730] OMAP 时钟源:Timer1为24000000 Hz
[0.022946] clocksource_probe:未找到匹配的时钟源
[0.029180]控制台:彩色虚拟设备80x30
[0.033878]校准延迟环路... 996.14茂物剪(lpj=4980736)
[0.076484] pid_max:默认值:32768最小值:301
[0.081424]安装高速缓存散列表条目:2048 (顺序:1、8192字节)
[0.088331]安装点缓存散列表条目:2048 (顺序:1、8192字节)
[0.0964470] CPU:测试写入缓冲区一致性:好的
[0.101915]为0x80100000 - 0x80100060设置静态标识映射
[0.109509] EFI 服务将不可用。
[0.115550] devtmpfs:已初始化
[0.127549] VFP 支持 v0.3:实施者41架构3第30部分版本 c 修订版3
[0.135931]时钟源:Jiffies:MASK:0xFFFFFFFF max_cycles:0xFFFFFFFF、max_idle_ns:19112604462750000 ns
[0.146165] futex 散列表条目:256 (顺序:-1、3072字节)
[0.155894] pinctrl 内核:已初始化 pinctrl 子系统
[0.162535] NET:注册协议系列16.
[0.168780] DMA:为原子相干分配预分配256 K2B 池
[0.185312]未处理故障:在0xf9e3e078上的非线性蚀刻(0x1028)上的外部中止
[0.193288] PgD = c0004000
[0.196154][f9e3e078]* PgD=44e11452 (BAD)
[0.200371]内部错误:1028 [#1]抢占 ARM
[0.205471]模块链接于:
[0.208703] CPU:0 PID:1 Comm:swapper 未被污染4.9.59-ga75d8e9305 #4
[0.215767]硬件名称:通用 AM33XX (平展器件树)
[0.222118]任务:ee860000 task.stack:ee864000
[0.226881] PC 位于_update_sysc_cache+0x64/0x90
[0.231805] LR 位于_enable+0x208/0x2d8
[0.235924] PC:[ ] LR:[ ] PSR:40000013
[0.235924] sp:ee865e58 IP:ee865e68 FP:ee865e64
[0.247904] R10:c0938838 R9:00000003 R8:00000000
[0.253358] r7:c0a0af84 r6:c0a3aa18 r5:00000000 r4:c0a0a8d0
[0.260157] r3:f9e3e078 r2:c0a0b448 r1:f9e3e000 r0:c0a0a8d0
[0.266959]标志:模式 SVC_32 ISA ARM 段无时 FIQ 上的 nZcv IRQ
[0.274379]控制:10c5387d 表:80004019 DAC:00000051
[0.280371]进程交换器(pid:1、栈限制= 0xee864208)
[0.286453]堆栈:(0xee865e58至0xee866000)
[0.291020] 5e40:ee865e8c ee865e68
[0.299519] 5e60:c011b3d8 c011a534 c0a0a8d0 00000001 c0a0a8d0 00000002 c0a0a91c c0938820
[0.308017] 5e80:e865ebc e865e90 c090d1e4 c011b1dc c083c7a0 c0a07808 c0a07808 c0a07868
[0.316518] 5ea0:ee865ebc c0a0a8d0 c0a07868 c0a3a480 ee8654 ee865ec0 c090d6e8 c090d114
[0.325017] 5ec0:ffe000 c090d5ec e865f4c e865ed8 c0101804 c090d5f8 c0900534 c03b04d0
[0.333519] 5ee0:efffc64c c071f1b8 ee865f00 e865ef8 c0147394 c0900524 00000000 c08438bc
[0.342020] 5f00:c0843908 c084318c 00000002 00000002 00000000 c08cebcc c0839b18 00000000
[0.350521] 5f20:00000000 c08cebcc c0a3a480 c08cebcc c09462a8 c0a3a480 c0938820 c0a3a480
[0.359019] 5f40:ee865f94 ee865f50 c0900e94 c0101754 00000002 00000002 00000000 c0900518
[0.367520] 5f60:c0900518 00000087 5ffdfff5 00000000 c06b4dc8 00000000 00000000 00000000 00000000
[0.376021] 5f80:00000000 00000000 e865fafer 865f98 c06b4dd8 c0900d5c 00000000 c06b4dc8
[0.384519] 5fa0:00000000 ee865fb0 c0107d38 c06b4dd4 00000000 00000000 00000000 00000000
[0.393016] 5fc0:00000000 00000000 00000000 00000000 00000000 00000000 00000000
[0.401512] 5fe0:00000000 00000000 00000000 00000000 00000013 00000000 ff7fb79f fbfef6eb
[0.410006]回扫:
[0.412614][ ](_update_sysc_cache)、来自[ ](_enable+0x208/0x2d8)
[0.420767][ ](_enable)从[ ](_setup.constprop.6+0xdc/0x410)
[0.428818] r7:c0938820 R6:c0a0a91c R5:00000002 R4:c0a0a8d0
[0.434726][ ](_setup.constprop.6)、来自[ ](_omap_hwmod_setup_All+0xFC/0x120)
[0.444115] R6:c0a3a480 R5:c0a07868 R4:c0a0a8d0
[0.448952][ ](__omap_hwmod_setup_all)从[ ](do_One_initcall+bc/0x174)
[0.458074] R5:c090d5ec R4:ffe000
[0.461847][ ](多个_initcall)、来自[ ](kernel_init_freeede+0x144/0x1e0)
[0.470881] R8:c0a3a480 r7:c0938820 R6:c0a3a480 R5:c09462a8 R4:c08cebcc
[0.477875][ ](kernel_init_freable)从[ ](kernel_init+0x10/0x118)
[0.486465] R10:00000000 R9:00000000 R8:00000000 r7:00000000 R6:00000000 R5:c06b4dc8
[0.494600] R4:00000000
[0.497296][ ](kernel_init)、来自[ ](RET_FANK_F叉+0x14/0x3c)
[0.505166] R5:c06b4dc8 R4:00000000
[0.508928]代码:0a000002 e1d330b0 e6ff3073 ea000000 (e5933000)
[0.515296]--[结束线迹 a9ab14e0c1b108c7 ]--
[0.520211]内核严重错误-未同步:尝试终止初始化! exitcode=0x0000000b
[0.520211]
[0.529783]--[结束内核紧急状态-未同步:尝试终止初始化! exitcode=0x0000000b
[0.529783]
[2.903593] random:快速初始化完成
…
AM335x-OBC.DTS:
/*
*基本 OBC DTS
*
/DTS-v1/;
#include "am33xx.dtsi"
/*#include "am335x-bone-common.dtsi"*
/{
型号="TI AM335x CSYSOBC";
兼容="ti、am335x-opbC"、"ti、am33xx";
内存@80000000{
DEVICE_TYPE ="存储器";
REG =<0x8000000000 0x40000000>;/* 256 MB */
};
};
WDT2{_WDT2}
STATUS ="禁用";
};
时间器3{(&T)
STATUS ="禁用";
};
时间4{(&T)
STATUS ="禁用";
};
&timer5{
STATUS ="禁用";
};
&timer6{
STATUS ="禁用";
};
&timer7{
STATUS ="禁用";
};
RTC{(&R)
时钟=<&clk_32768_ck>、<&clkdiv32k_ick>;
时钟名称="ext-clk"、"int-clk";
系统功率控制器;
};
CPU0_OPP_TABLE{
硝基- 1000000000{
opp-supported-HW =<0x06 0x0100>;
};
};