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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本帖最后由 Heaven_1 于 2022-9-15 17:54 编辑 " f6 S, M  a; d

6 @8 a; J: p) |7 M! d( i在飞凌嵌入式OKMX8MQ-C开发板上有两个PCIe接口,对应着两个PCIe差分时钟,两路PCIe分别用作了M.2接口卡槽KEYE(P37)和KEYM(P34)。, V& k" @" [  o; q* y% S$ f

' K, G" ~- T, P( r0 @很多使用FETMX8MQ-C核心板的用户在自制底板时会不做PCIe部分,故而不会焊PCIe的差分时钟,等到使用出厂镜像验证底板时发现会出现无法正常启动的问题。  ]" Q4 O  h0 j- l
今天,小编将总结常见的2种自制底板无PCIe导致的问题及其对应解决办法以供大家参考。
* T  s8 D& D/ v( }$ |3 V1.“使用出厂镜像启动时发现无法正常启动”
" Q2 f* Q! _& e* U) L5 a0 ]) e问题描述——
& p* Q( {1 ~3 Z" d! d
0 d, O$ Z, H% B6 T: L客户自制底板去掉PCIe烧录出厂镜像,启动时出现的卡死信息:
  p6 }. f2 U" ^; O8 _
* f( E) H7 m4 [% P0 L
$ I- _. q7 H. y' a% Q( k
& ^# t) g3 y0 n/ F2 P9 d0 p' f2 U
# ^. R8 @. y% x1 n5 W8 Q
[backcolor=rgba(18, 18, 18, 0.5)]​& R) d; z0 x! n4 v$ c' |

/ t- [$ _7 C% P- ^$ w: y

& |; d+ s7 H6 v2 N4 f# j& V
# [; \* {7 \" l8 @3 F
4 a1 x3 Z/ i6 `/ a( B编辑切换为居中' X0 ]2 Q. ^) q9 \$ Z; {0 N

) ]& h; ]1 e9 S. V
% r& O7 W. k+ U6 D: O) q) k, B/ |: p
* P0 l$ x1 Q# R/ u% b' H+ j
添加图片注释,不超过 140 字(可选)) B+ T  r/ U# c4 x
! T2 c/ \% t6 m4 g6 ^
产生原因——1 D3 e# u. C, o, d

( I& V" u/ S2 X* j  R/ bPCIe影响了启动,需要在设备树里把跟PCIe有关的功能关闭。6 Q: |, V0 o0 e$ a5 Z
1 L9 D* t8 J1 y" ^1 ]3 B. ?
解决办法——
& E5 ~& \5 P1 {/ w* ?/ S; c' a' g
修改内核设备树:
' C$ f; s) v+ N' R
; Q9 E/ T% E7 S$ U7 UviOK8MQ-linux-kernel/arch/ARM64/boot/dts/freescale/ok8mq-evk.dts* Q, J: T" _* g3 ]4 n5 m
: s9 F% w4 [! R  {1 f

9 F4 P. A) G& @/ i' [; ?; K4 b& J- j5 M: o/ w) E* ^

- J6 v4 l' @# J9 C* w; r8 @
[backcolor=rgba(18, 18, 18, 0.5)]​& n: H- F7 S5 N. h
/ d" c. X5 j4 R  m% u0 f' Y/ e; f
- o$ C' L5 C( d( z
, [' a9 w) J. v
8 p# z$ [1 \& E
编辑切换为居中
3 t% M6 E+ E6 Y# S8 q添加图片注释,不超过 140 字(可选)9 `0 Q: e# n6 W' M3 W
将设备树中的PCIe全部从“okay”改为“disabled”,重新编译。编译后会在/OK8MQ-linux-sdk/images/boot下生成ok8mq-evk.dtb。
, M; }) L- w/ g7 y0 v; p完成上述修改后重新编译并用新的镜像进行烧写。- L! D/ L$ N% ~9 ]  p& t
正常启动后打印信息如下(红框中是在上述卡住位置向后继续启动的打印信息):
3 y' s7 R2 e, T6 K' V4 b8 O$ Z5 \1 C% Z5 N
[backcolor=rgba(18, 18, 18, 0.5)]​9 l0 n+ R% ^" |! i8 K9 [
7 Y9 ?/ O8 @& l+ a4 M
编辑切换为居中
6 X( ]+ `5 n1 z  @添加图片注释,不超过 140 字(可选); Y8 K/ [% v' j7 Y& {8 ?
注意:飞凌目前提供的最小系统方案也是没有设计PCIe的,故用户如果使用了飞凌的最小系统方案,也需要按照上述方法进行修改。5 J( s' f0 @* K' [: O6 }$ d
2.“使用TF卡进行烧写时发现烧写一半卡住”
9 t" u8 }  C* ~4 M0 J; H
* v2 ]2 T; s6 j' {: i7 p0 b. r问题描述——* U" j' r8 X5 d% \% |  z2 S. Z
/ C: g; Y2 T( {+ B. C; p0 C, P4 X; t
客户自制底板去掉PCIe,使用TF卡烧写时看到命令行打印信息在下述位置卡住:3 j5 G4 V  i% I/ I" Q; l* L# e  x

8 Q" d, d1 b+ w% S* F& Q
# w9 Y- ^+ W4 Q. N( s8 W6 \
+ W" U4 B) P! m( Q. {& l3 D$ I% B
6 n$ R2 D* \$ y" ^  C  z
[backcolor=rgba(18, 18, 18, 0.5)]​: }/ q# ]" c7 o7 P/ m- I
8 h0 @5 l8 h: y% D0 s
编辑切换为居中
# g5 }  E+ u* a* f8 l添加图片注释,不超过 140 字(可选)
9 C4 f+ c3 v* C4 V- M+ A# s# u% t注意:并不一定就卡在上述位置,但一定在上述打印信息附近,不会太远。+ J1 x% X8 g' ~  n
产生原因——
  V' U8 L* J  A. y, p2 J8 m
, k1 w# L0 C4 l$ ^( {烧写引导镜像中的PCIe的启动影响了烧写,需要替换烧写工具中的内核阶段引导镜像。
* s3 e; x4 ^, B; T' i8 U. M3 ~  O! G解决办法——
0 M% j8 P1 B* j, D( Q2 s: r% L8 P; N" [; Z7 I3 u( E
首先按照问题中的方法修改内核设备树并编译。进入“OK8MQ-linux-sdk/tools/update”路径,可看到该路径下有很多dtb文件:+ O* ^$ Q) c( ?& \0 _7 `" S' E
1 c5 L; [4 }- q6 O# |3 b' o

# o/ U% T" Z8 @7 r6 f) J6 c
[backcolor=rgba(18, 18, 18, 0.5)]​# Z1 w1 R( B* Y+ J& ~
. ^: ^" Y6 w' J! i! U9 ?
编辑切换为居中  `0 o5 f! T' P
添加图片注释,不超过 140 字(可选)5 s0 j: O, u4 f3 M7 L# h
用编译生成的“images/boot”路径下的ok8mq-evk.dtb替换掉当前路径下的ok8mq-evk.dtb。
$ L2 x( q* M2 X& C执行编译命令,生成新的烧写工具:
  X! r* r3 e2 r: c3 G. N3 g5 N# x; ^2 Z: ~/ N1 f! P& G
[backcolor=rgba(18, 18, 18, 0.5)]​# g. k3 M, H3 C' K
, n% x! c$ J1 P, l: \
编辑切换为居中
( ]1 U% j1 W, }7 ?& C添加图片注释,不超过 140 字(可选)
- y% D* S; r' F, n使用新生成的update.itb替换掉完成制卡后TF卡中的update.itb,正常进行TF卡烧写。- s; z. ~& e, |# G* O: U8 c

3 w2 m$ j8 W7 e: N. y2 @进入OK8MQ-linux-sdk/tools/sdfuse路径,可看到新生成的烧写工具update.itb。
$ H, C- k2 y+ O; [+ a注意:3 i" q- A5 c6 Q7 `, J; |

" D, @9 j# m1 k! i/ ~' ^. |1 c
  • 我们的烧写工具部分源码是不开源的,若您确实需要做相应更改请联系您的对接销售,由我们帮您修改。
  • OTG烧写不会因没有PCIe而受到影响。2 C! R7 ?5 d6 U6 ^
上述的两个问题就是用户在自制底板去掉PCIe时可能会遇到的两种问题。, q. F7 J) _4 }
当然,只设计了一路PCIe的情况也需要注意:
- k! N. X/ {6 q, T' n& R' X
7 }- J& C8 W) M2 x/ l如果自制底板只做了一路PCIe,只焊了一个时钟芯片,也是会影响启动的。那么也需要修改设备树,关闭未做出的那一路PCIe;
% f% u" [, J% v3 ?
7 ]7 D. Y3 w; ~: T% I% S# m如果自制底板只做了一路PCIe,而差分时钟焊的不是与接口对应的,那在命令行用lspci命令查询就会找不到设备。
  q$ n8 z* \8 {+ f& Z3 _/ W4 d0 P
" d# i$ C4 M5 m- @2 f% E- _( ?以上就是OKMX8MQ-C平台目前针对底板去掉PCIe存在的问题提出的解决办法,可供大家在设计i.MX8MQ的底板时参考。
1 g, D: b" w: x& N0 ?  E  }
0 Q' Z; d: y! t  G2 ?  n; E9 g" Q( D- G6 S) Q) [( h

该用户从未签到

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

点评

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

该用户从未签到

3#
 楼主| 发表于 2022-10-9 10:49 | 只看该作者
Crash 发表于 2022-9-15 17:58
4 H; ?& B8 r) y, h, t1 ^7 V没有完全看懂,等以后,再慢慢研究和学习了。
% r$ ?+ G" l4 Z- ~$ b
多多学习 $ e' o* {, P+ {! F  f# L6 g- D! r
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-6-17 06:28 , Processed in 0.078125 second(s), 27 queries , Gzip On.

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

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

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