EDA365电子论坛网
标题: i.MX8MQ自制底板无PCIe问题详解 [打印本页]
作者: 罗罗诺亚 时间: 2022-9-15 17:02
标题: i.MX8MQ自制底板无PCIe问题详解
本帖最后由 Heaven_1 于 2022-9-15 17:54 编辑
8 z0 A2 ~2 A" b6 p. a1 h' X
1 |4 s5 Z% u5 d9 \: Y- |0 X8 ~在飞凌嵌入式OKMX8MQ-C开发板上有两个PCIe接口,对应着两个PCIe差分时钟,两路PCIe分别用作了M.2接口卡槽KEYE(P37)和KEYM(P34)。
0 ~; r! U! \4 a* y4 f. ?" I, @* w* o
很多使用FETMX8MQ-C核心板的用户在自制底板时会不做PCIe部分,故而不会焊PCIe的差分时钟,等到使用出厂镜像验证底板时发现会出现无法正常启动的问题。- @6 _- z8 E7 U9 ]7 Y& e
今天,小编将总结常见的2种自制底板无PCIe导致的问题及其对应解决办法以供大家参考。
; l) A, B f: Q1.“使用出厂镜像启动时发现无法正常启动”
# l2 |& k# N) G0 y. ?问题描述——
3 J* p0 e) T- c' M( x4 h# x) }7 C4 L4 n6 K
客户自制底板去掉PCIe烧录出厂镜像,启动时出现的卡死信息:. z( X7 u0 a5 c; N" c7 S
( L: L7 t7 p8 m9 Y5 v: ]
* y6 H L* j; L# v8 y# C( M
9 w7 f& h. j+ ^6 [
3 b- v( F e% p
[backcolor=rgba(18, 18, 18, 0.5)]
; H1 G8 @2 U7 Y! k3 v- D6 `# _9 U" L( Y8 S Z. ~6 t; C
6 [1 c, M# V2 U1 s6 E
$ A% M6 h& z6 ~% Q9 l" i* l
' i6 y+ L3 W$ r- E2 w7 A. S3 q编辑切换为居中3 ^5 b6 [3 m8 X) O3 U% [5 `6 a% p$ f
7 f: Y: [* l; X2 E& C8 A. f3 f9 g% t
% G7 E# s4 k3 ?5 `/ `8 y& R
% ?, p: g/ n2 j, n/ o
添加图片注释,不超过 140 字(可选)
+ y3 {$ K" ?2 [' p3 L- ~3 N, p0 ~1 S7 E5 t$ [2 V
产生原因——1 l: _/ |( D7 ^( r7 h8 g
4 A5 u: W: R8 d1 x2 T: ]" x$ M# pPCIe影响了启动,需要在设备树里把跟PCIe有关的功能关闭。
) H& ^7 P5 X/ A+ _! y0 a
! v5 v7 h, r/ g6 A' z解决办法——6 I; K3 }! |4 n% A
* p) k1 ~% g, n( Y
修改内核设备树:5 m' m# G$ }* f% p* e: {4 q% Q
$ W) z( i8 p8 e) v" O
viOK8MQ-linux-kernel/arch/arm64/boot/dts/freescale/ok8mq-evk.dts
8 ]& C y3 m* m$ b& K, |% ` P1 v. g/ z9 L: N& F
l7 V" T: A$ a% x# @ y
7 v ^5 H) {3 [4 Q0 C" b
8 Q8 X- {( H8 M* b
[backcolor=rgba(18, 18, 18, 0.5)]
! }0 G- j* p/ c$ L! H9 A3 k1 ?- T
; W+ v- W) L6 Q. \
( d, M- q0 P0 [! w4 S: |1 Y8 D8 F- ~5 j5 d8 P, ]5 q: l( t& \
, B. R+ `, _! v7 T编辑切换为居中
0 ~+ x; P& N; T6 b7 G3 A添加图片注释,不超过 140 字(可选)
, M! U$ B c, E4 p1 }+ w. a# w3 j将设备树中的PCIe全部从“okay”改为“disabled”,重新编译。编译后会在/OK8MQ-linux-sdk/images/boot下生成ok8mq-evk.dtb。4 m8 O) ^, z" [( ?6 D
完成上述修改后重新编译并用新的镜像进行烧写。 t+ M5 ]% U" Y* z
正常启动后打印信息如下(红框中是在上述卡住位置向后继续启动的打印信息):
/ u* s/ N Y' _; R* d, V& q3 f. A+ I/ m8 z" Q- S

[backcolor=rgba(18, 18, 18, 0.5)]
9 q, S& B% b' t8 W
f7 m+ e( r8 {# e% y" `: D
编辑切换为居中
' S4 |5 P h$ I/ O: X添加图片注释,不超过 140 字(可选)# B6 T7 T9 f1 U" ?9 j
注意:飞凌目前提供的最小系统方案也是没有设计PCIe的,故用户如果使用了飞凌的最小系统方案,也需要按照上述方法进行修改。- L0 G! n( U7 d: y7 l2 N/ b
2.“使用TF卡进行烧写时发现烧写一半卡住”
% _8 s1 T+ u$ M7 C2 G
+ ]1 S& a# G: o% @4 d5 h+ x2 D问题描述——
* A; k* V: B( B3 [5 ]* G5 @- a. n4 V- g) j! H
客户自制底板去掉PCIe,使用TF卡烧写时看到命令行打印信息在下述位置卡住:
( B% F% L/ L C. W, {
' A( S3 N$ l8 m* f
3 S$ Q8 Y! _6 g3 s; w% H v
P2 Q$ C4 o' e
7 s. _1 O. H* y
[backcolor=rgba(18, 18, 18, 0.5)]
( Y7 n' P; a, E6 \8 }
' U9 Z; |- Y& [3 Z% e& [ 编辑切换为居中+ |& o2 v1 H: C2 T* C
添加图片注释,不超过 140 字(可选)/ a3 l3 F5 c8 |. L$ r
注意:并不一定就卡在上述位置,但一定在上述打印信息附近,不会太远。
4 r" X3 e' U; q产生原因——5 i: w5 A) d) _
, e9 l6 V4 |4 |) X- T' k
烧写引导镜像中的PCIe的启动影响了烧写,需要替换烧写工具中的内核阶段引导镜像。
4 M x( ]" i' X: o; [7 d解决办法——7 T; C. p$ _- j0 Q* W) F
9 i; F+ [9 I# Q G0 a ~2 R
首先按照问题中的方法修改内核设备树并编译。进入“OK8MQ-linux-sdk/tools/update”路径,可看到该路径下有很多dtb文件:7 _# M0 `+ q- D
( f5 R# }9 ~. D
, @* C; l5 d8 T* y6 f' V
[backcolor=rgba(18, 18, 18, 0.5)]
+ b u6 o! K" @" |; o# R
, m$ \+ Q e4 x9 d: j+ H# L4 D 编辑切换为居中3 M/ k7 g' W$ ` D+ w8 u
添加图片注释,不超过 140 字(可选)
/ N. z3 V7 b. l! P& q用编译生成的“images/boot”路径下的ok8mq-evk.dtb替换掉当前路径下的ok8mq-evk.dtb。( M5 n, s% L4 P3 S
执行编译命令,生成新的烧写工具:5 i# z1 u4 V7 e2 R2 ]
! l& t9 Z& E7 y: r' y' [" O
[backcolor=rgba(18, 18, 18, 0.5)]
+ B, j: u* N+ U
& j; v! J+ X* s. |: X& L- n 编辑切换为居中) Y) {3 ]5 G, f
添加图片注释,不超过 140 字(可选)
2 {6 g! n- S" a3 ^" k3 W: S使用新生成的update.itb替换掉完成制卡后TF卡中的update.itb,正常进行TF卡烧写。
+ C0 e5 N" s8 S, C' V' A8 q1 y( l' Y+ i. T
进入OK8MQ-linux-sdk/tools/sdfuse路径,可看到新生成的烧写工具update.itb。% u6 Z+ y( y: ]
注意:" O c6 ^7 @" F; l: L
% a0 X) u4 X( [2 J* w
- 我们的烧写工具部分源码是不开源的,若您确实需要做相应更改请联系您的对接销售,由我们帮您修改。
- OTG烧写不会因没有PCIe而受到影响。
/ `4 ^7 x) H f
上述的两个问题就是用户在自制底板去掉PCIe时可能会遇到的两种问题。. G4 x. d" a8 ]& i6 \8 g k* h
当然,只设计了一路PCIe的情况也需要注意:
( s7 G$ D7 e) p8 |" l8 L* k* {& K6 b5 {0 _1 D6 W
如果自制底板只做了一路PCIe,只焊了一个时钟芯片,也是会影响启动的。那么也需要修改设备树,关闭未做出的那一路PCIe;
$ @" f# f. \. B+ i3 W; C4 t* t' j$ Z; M* ]
如果自制底板只做了一路PCIe,而差分时钟焊的不是与接口对应的,那在命令行用lspci命令查询就会找不到设备。
: g5 j3 u8 f; ]9 G! R8 S8 n+ D0 x. R
以上就是OKMX8MQ-C平台目前针对底板去掉PCIe存在的问题提出的解决办法,可供大家在设计i.MX8MQ的底板时参考。
: A9 n# ]6 V' N* x5 B% Q1 ~) b7 v; `: i+ w
- A. o- J% l) X `
作者: Crash 时间: 2022-9-15 17:58
没有完全看懂,等以后,再慢慢研究和学习了。
作者: 罗罗诺亚 时间: 2022-10-9 10:49
) E% ], R% c5 f' p, O多多学习 
5 \- Z6 u2 j) ]+ n7 n
| 欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) |
Powered by Discuz! X3.2 |