|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 Heaven_1 于 2022-9-15 17:54 编辑
/ E- w9 Z( g, s6 m2 @% A" E4 G8 K: Q) E3 w0 C
在飞凌嵌入式OKMX8MQ-C开发板上有两个PCIe接口,对应着两个PCIe差分时钟,两路PCIe分别用作了M.2接口卡槽KEYE(P37)和KEYM(P34)。
7 D0 O/ {4 G; F6 ]1 f5 j! Q
* b7 i! E8 p9 ~/ o! b; A很多使用FETMX8MQ-C核心板的用户在自制底板时会不做PCIe部分,故而不会焊PCIe的差分时钟,等到使用出厂镜像验证底板时发现会出现无法正常启动的问题。0 F' c) k; x' ]' F3 m/ @
今天,小编将总结常见的2种自制底板无PCIe导致的问题及其对应解决办法以供大家参考。5 U2 Q: `, z1 s: K. y. F- j) [
1.“使用出厂镜像启动时发现无法正常启动”
; y; Z' z7 |5 F问题描述——
" p- O4 a: u5 a: J9 M7 m, g( h. O
6 y4 U. _+ X7 q3 M/ _& H; l客户自制底板去掉PCIe烧录出厂镜像,启动时出现的卡死信息:8 L Y9 r. v5 Z% p8 Z8 L4 z/ d/ r
9 R- }1 c. @5 T X4 P
9 G& X0 a# G; E/ r0 `" i: J9 y' ?+ v$ O# J
: K8 @% V3 m5 W+ S8 Y3 r ]$ f1 q* c6 v![]() [backcolor=rgba(18, 18, 18, 0.5)]
* X2 `# Q1 L2 M! r& {1 L& V5 L8 e; W2 M/ E) D
& o6 F1 B5 y( \0 F+ M: ?
5 y: }% K" X: f( M% `* b
: n' z* z; `# P9 |: D" x2 j$ d编辑切换为居中4 e0 V1 Y% O3 u8 f& ~- Y. ~
6 t5 `- d+ h% e9 n" y3 u
* v7 b- ]6 g \
/ w+ ]) s5 v- W
0 e. C3 _! r. Z/ Q7 d# d
添加图片注释,不超过 140 字(可选)
2 a; H% f" o" q" [6 d; d- r+ F6 D5 H) f H, f7 i1 @: K
产生原因——
/ n) L' O$ }* t4 }; C$ E( F' E' a# \# D
PCIe影响了启动,需要在设备树里把跟PCIe有关的功能关闭。
5 l* J7 p* L$ Q; u! H- O4 C( y. U9 o0 e
解决办法——. J4 ~. Z# _8 E# d4 C6 V
+ M4 z8 s9 Z$ v* C6 w
修改内核设备树:$ `# K- t* U5 c7 t$ T8 \
0 R J) R s1 OviOK8MQ-linux-kernel/arch/ARM64/boot/dts/freescale/ok8mq-evk.dts2 v1 }: B' [* y8 J
/ _- F4 P% T0 Z8 H$ H) J5 u' k) \7 w$ H
k0 |" d0 h! O0 f4 O5 k0 @, u! _
; M& u2 B! K- m2 z! j![]() [backcolor=rgba(18, 18, 18, 0.5)]
- g, ^' h. i; C' _1 t; d6 l* U$ g/ O: I3 @: }
" u! U3 r4 j: B8 H! e
( ~ V. E; x2 O9 h( r7 y: I$ G8 \& L
编辑切换为居中
& K& j& a+ c; F$ W$ a添加图片注释,不超过 140 字(可选)
3 B% f) K# I9 l' N将设备树中的PCIe全部从“okay”改为“disabled”,重新编译。编译后会在/OK8MQ-linux-sdk/images/boot下生成ok8mq-evk.dtb。
7 P7 [1 Y! M) P完成上述修改后重新编译并用新的镜像进行烧写。2 z: C" U1 t/ `/ ?# Q. t/ y8 l
正常启动后打印信息如下(红框中是在上述卡住位置向后继续启动的打印信息):
7 _ e+ q$ r- B6 K$ n! w: O- o
; V# M) T3 q8 u \![]() [backcolor=rgba(18, 18, 18, 0.5)] * S' Z5 A1 z, P
( S; x" t9 e- b: _0 m4 e0 W
编辑切换为居中
; U- r H4 A" J6 m& g) m, R添加图片注释,不超过 140 字(可选)9 e0 u" \# H d; W# o* k3 Y
注意:飞凌目前提供的最小系统方案也是没有设计PCIe的,故用户如果使用了飞凌的最小系统方案,也需要按照上述方法进行修改。2 @0 H$ |4 y' o4 _2 _4 H
2.“使用TF卡进行烧写时发现烧写一半卡住”' t# W3 T! o Q# N5 z3 w
2 ]- C! r7 X) t$ V
问题描述——. }: k f/ y0 L4 B) |' z. k- [/ d9 P
1 s6 |" W. s9 E) P& y: v
客户自制底板去掉PCIe,使用TF卡烧写时看到命令行打印信息在下述位置卡住:( m8 M9 J! ]3 s
+ J4 p0 B8 m6 Z' I# l5 `7 F
7 \% b: U! i1 @1 T3 H& l
! a7 U% [% q, P7 n
- c0 W4 p# a7 r# E7 J- k- R C![]() [backcolor=rgba(18, 18, 18, 0.5)] / {0 Y: a) [2 G
1 T: |( u) X8 A) z 编辑切换为居中* ^) X; W" S* z4 {* p# [. U3 A
添加图片注释,不超过 140 字(可选)' A; |5 a" u8 O# N$ M* e
注意:并不一定就卡在上述位置,但一定在上述打印信息附近,不会太远。
% y6 R0 X. J! J/ p产生原因——# G" v; \; K4 T7 a% e3 [ e
, G) R) g8 f1 X, l% j& J
烧写引导镜像中的PCIe的启动影响了烧写,需要替换烧写工具中的内核阶段引导镜像。
' q2 i8 L3 G" \解决办法——2 y/ ^- o/ m. n9 h. ^0 y6 K
, C8 C4 f/ d( P4 O9 J首先按照问题中的方法修改内核设备树并编译。进入“OK8MQ-linux-sdk/tools/update”路径,可看到该路径下有很多dtb文件:; V. B7 J# [4 d) }/ ]+ N
! K& S; ~* z1 `) a; T _& Z( U
: e. L8 P9 I5 Y6 s9 J8 g
![]() [backcolor=rgba(18, 18, 18, 0.5)]
9 `# X6 r! {5 q' P. Q V* {" M8 k, o+ [, Z2 l& V+ x7 F$ r
编辑切换为居中
' |' x8 O& G' c& H: S6 Z添加图片注释,不超过 140 字(可选)
% X) ~/ R) F3 U1 I2 k用编译生成的“images/boot”路径下的ok8mq-evk.dtb替换掉当前路径下的ok8mq-evk.dtb。* c9 _) n$ `7 H; {. O4 ^" ~
执行编译命令,生成新的烧写工具:
! g$ g: B. g2 H* W" j. c" {7 A. {" {
" T* X! y7 s. E( J/ U" W![]() [backcolor=rgba(18, 18, 18, 0.5)] 3 @; A4 l9 x' F
0 x* j4 R+ r, C- T+ `7 L! U
编辑切换为居中
* T9 y7 r( F: P6 V) m0 a添加图片注释,不超过 140 字(可选)$ N4 B/ A, Z1 q/ ~& ]
使用新生成的update.itb替换掉完成制卡后TF卡中的update.itb,正常进行TF卡烧写。9 [1 w' G$ N# E% y4 l6 S
* O. m& s$ f( h: q, u进入OK8MQ-linux-sdk/tools/sdfuse路径,可看到新生成的烧写工具update.itb。
$ @! _5 T8 d) o8 X9 c注意:
2 r% z9 f$ g6 E- Y ~, n" E# R+ c1 x l2 \+ n8 c9 C5 C+ A
- 我们的烧写工具部分源码是不开源的,若您确实需要做相应更改请联系您的对接销售,由我们帮您修改。
- OTG烧写不会因没有PCIe而受到影响。
$ r4 h( C9 |% x* M' j* m/ P 上述的两个问题就是用户在自制底板去掉PCIe时可能会遇到的两种问题。! c& ~6 ^3 r, r; Z* Y. j
当然,只设计了一路PCIe的情况也需要注意:2 P; v0 ?0 q2 J: L
; ?: H( @/ ^" |( F; G如果自制底板只做了一路PCIe,只焊了一个时钟芯片,也是会影响启动的。那么也需要修改设备树,关闭未做出的那一路PCIe;2 M1 r. V D( j$ P' D
. i) b& z6 K7 u* G6 m) T4 p. O
如果自制底板只做了一路PCIe,而差分时钟焊的不是与接口对应的,那在命令行用lspci命令查询就会找不到设备。5 U6 n! C2 V+ a( R6 A+ K
! }; _: j* p# x7 \' S
以上就是OKMX8MQ-C平台目前针对底板去掉PCIe存在的问题提出的解决办法,可供大家在设计i.MX8MQ的底板时参考。
! A. ]5 F" H& F! h* L: e& V1 m$ W, p/ ]5 u5 U" D
' b2 f8 R) H, A0 Y' G: `
|
|