EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
在飞凌嵌入式OKMX8MQ-C开发板上有两个PCIe接口,对应着两个PCIe差分时钟,两路PCIe分别用作了M.2接口卡槽KEYE(P37)和KEYM(P34)。 + P2 r+ t! v7 Z) R, o
很多使用FETMX8MQ-C核心板的用户在自制底板时会不做PCIe部分,故而不会焊PCIe的差分时钟,等到使用出厂镜像验证底板时发现会出现无法正常启动的问题。
( G. Z m' z4 y7 q$ J3 F
今天,小编将总结常见的2种自制底板无PCIe导致的问题及其对应解决办法以供大家参考。 6 I9 g) a: X; A2 v9 I: m
4 c0 w* e9 D7 y3 b* K$ Y
1.“使用出厂镜像启动时发现无法正常启动”2 r; N* q; I0 [! O' Z2 N1 s9 c* S
9 M7 g' Q4 q2 C- I; d: I
问题描述—— 客户自制底板去掉PCIe烧录出厂镜像,启动时出现的卡死信息: ![]()
3 V. e/ G. f* S4 T+ i' |7 n; {1 [& R! J
产生原因—— PCIe影响了启动,需要在设备树里把跟PCIe有关的功能关闭。 3 ~, S2 P) M% b# k2 N. N
解决办法—— 修改内核设备树: viOK8MQ-linux-kernel/arch/ARM64/boot/dts/freescale/ok8mq-evk.dts ![]()
3 @+ P! Y7 |9 B1 V4 ~( Y1 Q0 R5 ?
, _# J, B# ~0 l+ S, R) X' c0 S5 h将设备树中的PCIe全部从“okay”改为“disabled”,重新编译。编译后会在
" ?& n3 j' Z! w6 |8 f/OK8MQ-linux-sdk/images/boot下生成ok8mq-evk.dtb。
/ N! v4 E6 q- G6 q9 n" {5 J
完成上述修改后重新编译并用新的镜像进行烧写。正常启动后打印信息如下(红框中是在上述卡住位置向后继续启动的打印信息): + }& R0 ?5 m3 v, u" a
! ^: Q( R4 e) J7 X: G" X7 R& \7 _" ^4 P; H" R v) j( v
注意:飞凌目前提供的最小系统方案也是没有设计PCIe的,故用户如果使用了飞凌的最小系统方案,也需要按照上述方法进行修改。
. l- s8 o2 ^7 ~ P * y2 ]5 [* C* P6 T) h" G5 q
2.“使用TF卡进行烧写时发现烧写一半卡住”7 z h$ \* X7 c& Z/ `
问题描述—— 客户自制底板去掉PCIe,使用TF卡烧写时看到命令行打印信息在下述位置卡住: ![]()
7 j4 E$ x6 ?" V" N2 _0 R" o/ I7 W H9 [- |7 L# ]$ e' K
注意:并不一定就卡在上述位置,但一定在上述打印信息附近,不会太远。 产生原因—— 烧写引导镜像中的PCIe的启动影响了烧写,需要替换烧写工具中的内核阶段引导镜像。
5 v6 Z, r) ~ J7 ?; J# A6 u
解决办法—— 首先按照问题中的方法修改内核设备树并编译。进入“
/ F! F# D+ f3 O" _" [, O* MOK8MQ-linux-sdk/tools/update”路径,可看到该路径下有很多dtb文件: 2 N# p, i0 `8 W! C
0 k# P- x! `+ Z. q
用编译生成的“images/boot”路径下的ok8mq-evk.dtb替换掉当前路径下的ok8mq-evk.dtb。 执行编译命令,生成新的烧写工具: ![]()
7 e, y& P5 V' v6 a1 E! o5 s n( R" B3 _8 B! v3 |" O4 l4 g+ M$ q+ r& Q
9 u( ?! S" q* a: R, b
使用新生成的update.itb替换掉完成制卡后TF卡中的update.itb,正常进行TF卡烧写。
: ?; T D0 e6 |1 W( C. a7 W. Q( {
进入OK8MQ-linux-sdk/tools/sdfuse路径,可看到新生成的烧写工具update.itb。 注意: - (1)我们的烧写工具部分源码是不开源的,若您确实需要做相应更改请联系您的对接销售,由我们帮您修改。
- (2)OTG烧写不会因没有PCIe而受到影响。% r/ H: s3 c9 ], {0 x O% h
5 r; g; C8 X" ^/ F4 Q1 [
上述的两个问题就是用户在自制底板去掉PCIe时可能会遇到的两种问题。当然,只设计了一路PCIe的情况也需要注意: 如果自制底板只做了一路PCIe,只焊了一个时钟芯片,也是会影响启动的。那么也需要修改设备树,关闭未做出的那一路PCIe; 如果自制底板只做了一路PCIe,而差分时钟焊的不是与接口对应的,那在命令行用lspci命令查询就会找不到设备。 . E4 I; S) s! A
以上就是OKMX8MQ-C平台目前针对底板去掉PCIe存在的问题提出的解决办法,可供大家在设计i.MX8MQ的底板时参考。 " l% A7 G" g3 t; h) N( L$ v
|