找回密码
 注册
关于网站域名变更的通知
查看: 292|回复: 2
打印 上一主题 下一主题

i.MX8MQ自制底板无PCIe问题详解

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2022-9-15 17:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 Heaven_1 于 2022-9-15 17:54 编辑
7 K) Q' _5 h0 @7 W2 d# c9 h! y* _7 @7 ^( D6 [! i2 S
在飞凌嵌入式OKMX8MQ-C开发板上有两个PCIe接口,对应着两个PCIe差分时钟,两路PCIe分别用作了M.2接口卡槽KEYE(P37)和KEYM(P34)。
! Y5 [6 _7 b8 w' L7 H
# }: O1 v: d& w很多使用FETMX8MQ-C核心板的用户在自制底板时会不做PCIe部分,故而不会焊PCIe的差分时钟,等到使用出厂镜像验证底板时发现会出现无法正常启动的问题。
* L8 l* i, y+ S$ `今天,小编将总结常见的2种自制底板无PCIe导致的问题及其对应解决办法以供大家参考。2 @. L: a5 O9 f/ n$ K' }% N! Z$ N6 g
1.“使用出厂镜像启动时发现无法正常启动”
) _: n3 I: T/ t3 U$ e* G问题描述——
# `" v6 u$ l5 p
& j: {& D1 a4 ~7 Q5 P. W2 S8 z, f3 w客户自制底板去掉PCIe烧录出厂镜像,启动时出现的卡死信息:: ?) [1 y$ M# X- j. m1 i

4 D5 P  p8 k4 N+ }3 r7 C# R6 h( U% n+ _' }, I3 i- [/ y

+ F1 {$ Y2 ^1 [8 ?' f; \0 G$ Y4 h9 k9 O4 w
[backcolor=rgba(18, 18, 18, 0.5)]​0 b% ]3 J; F9 c% E9 J! j5 n& K5 P
" G5 `3 u" |9 o" d" v* \6 Q, e
& B, p# F9 C; b6 ~( e

3 w8 i3 [2 J7 y1 T  k. @9 R+ f+ U, Y8 w& L6 w  `/ O
编辑切换为居中
: V0 X. l* D( s) H( r$ y( E+ J2 f* N. V
3 F  Y2 V7 ?9 g* t8 o4 x! i7 t
- V# b7 p6 U/ @+ {( N, H

! j2 k6 Z# x4 M/ y& i, a0 D: o添加图片注释,不超过 140 字(可选)9 y$ M8 L! n0 d$ o' I0 A" |

5 ^# k) h* e8 W4 S0 g( z0 L产生原因——
2 Y/ c. B- [( X4 O/ r4 |* t; i. r+ x1 A. Z; j" S. E; p; M) F
PCIe影响了启动,需要在设备树里把跟PCIe有关的功能关闭。' P9 v& I( a8 K& }9 M
; [( i6 p' u% m0 P
解决办法——& Q! j0 p5 i6 y: H# P  E, g% f4 Z
& o/ c  |* f% w  h, d
修改内核设备树:
- H6 G( T9 D4 ]* E. x$ L: ?1 @' t( ], c- N3 `- c2 ]
viOK8MQ-linux-kernel/arch/ARM64/boot/dts/freescale/ok8mq-evk.dts
: @$ S7 Z2 a& o! T) D
1 x" `6 \; B: W7 s6 q* m1 I- ?- ~6 m9 K" Z$ Q  u- i( m! V' l
7 g$ A  ], ?% Y* t8 b+ \+ K

3 [$ i% w- Y, f" Z
[backcolor=rgba(18, 18, 18, 0.5)]​
2 O: D7 u' Z: C8 B- N- w) ^2 W0 s+ u; {) u9 s
3 k' e6 G: h& Q& F" z. U, X
- B# I# V1 f, P! h* f9 q( K
+ ?7 a9 f' s6 p/ J+ v
编辑切换为居中
/ Z1 [0 E$ _  l% T添加图片注释,不超过 140 字(可选)
/ j4 O- Z% V, ^: l: q& S将设备树中的PCIe全部从“okay”改为“disabled”,重新编译。编译后会在/OK8MQ-linux-sdk/images/boot下生成ok8mq-evk.dtb。3 I5 o9 v: C- q1 k9 n( @) R
完成上述修改后重新编译并用新的镜像进行烧写。
3 |4 c7 x% P' i  o4 L- y. c正常启动后打印信息如下(红框中是在上述卡住位置向后继续启动的打印信息):5 W3 g) o" N4 y+ V8 d& @$ b7 Y
) i. ^7 J) [! T
[backcolor=rgba(18, 18, 18, 0.5)]​
. Y# |2 u7 ?  {9 p- t& o$ u* |$ E% M
编辑切换为居中
! p8 K2 M" }. c& \, _  [添加图片注释,不超过 140 字(可选)
" S+ `& b/ d. U3 \6 ]注意:飞凌目前提供的最小系统方案也是没有设计PCIe的,故用户如果使用了飞凌的最小系统方案,也需要按照上述方法进行修改。
: E8 A& T' n3 U" ^) w. J  u2.“使用TF卡进行烧写时发现烧写一半卡住”* i, Y4 Y8 z& V( p# d1 |

& U" ]1 v; ?0 E7 w问题描述——7 F4 Y" Y9 V) D: Y0 Q0 ^# w

( K6 ]8 a7 ]7 X2 {客户自制底板去掉PCIe,使用TF卡烧写时看到命令行打印信息在下述位置卡住:
7 _- T( v2 r. X" p0 V  `
; a; r* u" v- g" S" X/ M6 K6 e% ~( d+ ]0 F
8 p! V* ]7 X! H9 a# f1 ^* g0 J

; N2 c9 |  e: `% E
[backcolor=rgba(18, 18, 18, 0.5)]​. ^3 t4 Z# I6 O  z& x

6 T% G6 N' ~+ }+ u& F9 Z
编辑切换为居中0 U1 a" Y7 Z6 R2 \1 P
添加图片注释,不超过 140 字(可选)
: \7 W/ E+ L) {8 D& H注意:并不一定就卡在上述位置,但一定在上述打印信息附近,不会太远。/ H, n& e# V; q( T( |' w
产生原因——" B9 |: R+ s$ X

& U3 ?2 U; s1 J4 C; \% x2 B烧写引导镜像中的PCIe的启动影响了烧写,需要替换烧写工具中的内核阶段引导镜像。9 O% V$ R+ N! F9 i# H
解决办法——
% G2 O1 ?4 d. Y- v0 R# V/ J7 Z: e' `" Y
首先按照问题中的方法修改内核设备树并编译。进入“OK8MQ-linux-sdk/tools/update”路径,可看到该路径下有很多dtb文件:
7 J! z- a& Z  `( c; q# c
& b8 Y' ~( P9 v. i0 u. L9 Q" e; F4 x$ I0 b1 F* _1 i0 B
[backcolor=rgba(18, 18, 18, 0.5)]​- R: V8 ?: P% u* H
: L+ O$ G7 Q( C$ l
编辑切换为居中! |/ W* b' i, Z( m
添加图片注释,不超过 140 字(可选)
7 b. ]! D$ t1 B用编译生成的“images/boot”路径下的ok8mq-evk.dtb替换掉当前路径下的ok8mq-evk.dtb。
7 Q! j% D6 ?  b执行编译命令,生成新的烧写工具:
& G' w- F8 {( ^  O: X# V
0 J. x- v( K* `! V, p+ s
[backcolor=rgba(18, 18, 18, 0.5)]​3 A  j5 N1 e( i+ \- ?

0 A6 y8 f5 |4 S. G
编辑切换为居中
& T) D' d7 {  f/ S4 [& l) k添加图片注释,不超过 140 字(可选)
/ J* ~  N$ C% C& R& c5 F使用新生成的update.itb替换掉完成制卡后TF卡中的update.itb,正常进行TF卡烧写。) u1 P! ], i! [& g1 b
2 Q/ X7 \6 e0 j  U
进入OK8MQ-linux-sdk/tools/sdfuse路径,可看到新生成的烧写工具update.itb。# ~- l- P' k  z3 A7 b7 E
注意:
8 ^% n- c6 `" }2 v, c  Y1 e
9 H& c% |+ r$ [( @
  • 我们的烧写工具部分源码是不开源的,若您确实需要做相应更改请联系您的对接销售,由我们帮您修改。
  • OTG烧写不会因没有PCIe而受到影响。
    " i$ H5 {! t8 Q5 Q7 Z
上述的两个问题就是用户在自制底板去掉PCIe时可能会遇到的两种问题。  U. j, z; ?/ ^' c! y" x* d1 v: V
当然,只设计了一路PCIe的情况也需要注意:
" c6 s9 Z& D4 C$ t% x# [: I. z6 y' G+ C9 O6 j' R
如果自制底板只做了一路PCIe,只焊了一个时钟芯片,也是会影响启动的。那么也需要修改设备树,关闭未做出的那一路PCIe;4 D% f. a4 Q9 b7 ~5 C* s

& M& z6 l1 [0 K如果自制底板只做了一路PCIe,而差分时钟焊的不是与接口对应的,那在命令行用lspci命令查询就会找不到设备。1 P3 G# V( P8 V2 I9 d

1 @4 X) _/ C' T, ]8 G. v以上就是OKMX8MQ-C平台目前针对底板去掉PCIe存在的问题提出的解决办法,可供大家在设计i.MX8MQ的底板时参考。, ~  k# c0 g4 h2 L& w
, f9 y3 ^% s3 V6 g+ Y

, q& H" p! a3 {$ x  o3 ^8 X& E1 W

该用户从未签到

2#
发表于 2022-9-15 17:58 | 只看该作者
没有完全看懂,等以后,再慢慢研究和学习了。

点评

多多学习  详情 回复 发表于 2022-10-9 10:49

该用户从未签到

3#
 楼主| 发表于 2022-10-9 10:49 | 只看该作者
Crash 发表于 2022-9-15 17:58
# G2 L9 Q+ w) n1 {& y7 T  s没有完全看懂,等以后,再慢慢研究和学习了。
3 u/ M7 T' s% P" {4 R$ {
多多学习 % s. {5 n" T& t1 Z6 b& l
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-23 17:49 , Processed in 0.171875 second(s), 24 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表