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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本帖最后由 Heaven_1 于 2022-9-15 17:54 编辑 9 r- _2 V" W- U4 m
2 P/ f5 ^+ A) L3 \' w2 y
在飞凌嵌入式OKMX8MQ-C开发板上有两个PCIe接口,对应着两个PCIe差分时钟,两路PCIe分别用作了M.2接口卡槽KEYE(P37)和KEYM(P34)。
: F# V  e* r' j9 \2 ?3 f
1 B% ~2 @  p7 n0 I很多使用FETMX8MQ-C核心板的用户在自制底板时会不做PCIe部分,故而不会焊PCIe的差分时钟,等到使用出厂镜像验证底板时发现会出现无法正常启动的问题。( y9 D0 U3 u6 V7 W! {6 F
今天,小编将总结常见的2种自制底板无PCIe导致的问题及其对应解决办法以供大家参考。7 _  d& c% g7 t0 S+ o
1.“使用出厂镜像启动时发现无法正常启动”  ?$ q( ^7 z* q8 ^" J2 q/ w# l9 l
问题描述——
3 x/ B9 A& i. l* h5 K5 ]4 l0 u& k& F/ {
客户自制底板去掉PCIe烧录出厂镜像,启动时出现的卡死信息:5 }- Y* e# [$ f# z9 J! A
9 G3 G' {; Q* v! @& Y2 H( j: g0 W# b

! d8 m4 a& f. y6 Q4 D3 d8 H* r* g9 R0 L& q  N
( k" w9 B* U, G" F/ o' j8 a
[backcolor=rgba(18, 18, 18, 0.5)]​' s0 C( Z6 ]2 K
0 S2 I0 H5 m& ?& ]3 B  O

  w1 H3 }. p+ X5 }  z" T; n3 J" G& g8 u3 N

+ M8 W) I) r9 [! l& @1 v编辑切换为居中
- h* g4 q% E4 f, x1 q6 ]8 f/ y! T# K4 E7 Z

1 Z  b: J5 m' R5 _* m5 _
/ t; [; t7 h* n  I+ }+ ^
( I/ k( {; y( {* @0 D" v7 v  C% a4 M添加图片注释,不超过 140 字(可选)0 E: g" @: c  N, c; M6 M' n
3 x! E7 k# T+ r: b2 H: K7 a
产生原因——1 Z5 \5 U8 g8 |$ ?0 n( U# G, A
( e5 A, a" e( |! q. v/ E% v! u& m
PCIe影响了启动,需要在设备树里把跟PCIe有关的功能关闭。
& w5 |1 y- E$ K$ {; Q1 u( p- E# E8 k8 m$ r0 {, J5 \+ e
解决办法——" H* y$ r6 r9 I" W! g
# l% z! Z" i* i6 D4 Y% ]
修改内核设备树:3 Z/ T  r5 X0 s" T
/ g) w5 o  T: P: R1 @! N2 t: g
viOK8MQ-linux-kernel/arch/ARM64/boot/dts/freescale/ok8mq-evk.dts1 Q8 K/ E, ?7 A" Z) k

* s; l/ e9 J9 u7 K" [: ]! m- N
+ g1 ]; z6 d  A* }; ]% T
* K8 ~, ~  e; F! Z7 C' N& S+ ~0 ]6 I
[backcolor=rgba(18, 18, 18, 0.5)]​. T7 U8 P2 w; }4 x& K
. b! n: ^  i, D+ U
* i5 g* c3 R6 i  s$ e# r! O7 c
! M- N! T6 N; H, s
( b, g; ^8 b# i
编辑切换为居中! S. {, \. Y0 C6 t% D
添加图片注释,不超过 140 字(可选)
) Z+ Q# a: N6 e) ?( z: N) m9 Y/ w将设备树中的PCIe全部从“okay”改为“disabled”,重新编译。编译后会在/OK8MQ-linux-sdk/images/boot下生成ok8mq-evk.dtb。
) t  w) g) F, C3 @$ ?4 N% J完成上述修改后重新编译并用新的镜像进行烧写。, q% S# J) i( {. V
正常启动后打印信息如下(红框中是在上述卡住位置向后继续启动的打印信息):
6 A9 O7 g* |' E) h* d- u
6 |, X/ b, _/ B3 j) t& l4 ?* }
[backcolor=rgba(18, 18, 18, 0.5)]​( c7 P# C& O/ h9 X) \7 d% q- k

- `7 R% g) }: Z7 K
编辑切换为居中) E/ L$ w' ~" h: ?# a  a4 T- q
添加图片注释,不超过 140 字(可选)
! L- ^8 _7 v- n1 I) s, c$ y5 S注意:飞凌目前提供的最小系统方案也是没有设计PCIe的,故用户如果使用了飞凌的最小系统方案,也需要按照上述方法进行修改。
" S4 e& a* L; A" Y" h9 V7 Z+ l1 [2.“使用TF卡进行烧写时发现烧写一半卡住”1 B+ @. ?, b: T8 }

" [3 D0 X& n) B( U+ H' a, ?) `; i问题描述——2 U1 o6 w0 s+ e

4 f8 y0 V" X$ }' C客户自制底板去掉PCIe,使用TF卡烧写时看到命令行打印信息在下述位置卡住:0 C5 x3 W  I1 @  D' v' G! F' r( j
: ]* Y; D, W; K! ]3 \
$ m, {" N% }! ?$ b6 c% K. V1 A/ J

8 b8 y$ Z0 I" o, v+ p  h
- x$ I( y! A! W7 L/ o' t
[backcolor=rgba(18, 18, 18, 0.5)]​
9 ?! Q1 \( ~0 H$ ?* z% v, n  l& s1 Y3 `: j' k0 m6 W6 U7 F. {
编辑切换为居中& b* M9 d8 B" _: l/ G
添加图片注释,不超过 140 字(可选)
- p* E+ V& ?: t1 U2 H& K+ ~7 \5 M注意:并不一定就卡在上述位置,但一定在上述打印信息附近,不会太远。! T/ F, l- O& e7 O
产生原因——8 m5 N8 s1 Z2 c, i' z* j
! g1 P+ T8 x9 t% J7 [; X, h
烧写引导镜像中的PCIe的启动影响了烧写,需要替换烧写工具中的内核阶段引导镜像。
* q3 w% q$ X9 J, g% E8 `解决办法——
) x# M' M: j$ {8 V, R* C5 o  S* k% @
首先按照问题中的方法修改内核设备树并编译。进入“OK8MQ-linux-sdk/tools/update”路径,可看到该路径下有很多dtb文件:
# m; g$ N( D. }* C" K) j8 H7 n3 {- O' o' X& M. d3 v
% z. H: A& v+ ~* ~5 a' M! O
[backcolor=rgba(18, 18, 18, 0.5)]​
. R4 I% s9 d7 f) Q/ e& y% x7 V% Y3 v( K$ k
编辑切换为居中/ A7 k4 x) V& W6 g% j+ b" E
添加图片注释,不超过 140 字(可选)
1 d8 w6 `8 z0 j1 W用编译生成的“images/boot”路径下的ok8mq-evk.dtb替换掉当前路径下的ok8mq-evk.dtb。& u! d; _4 s  {8 `; w
执行编译命令,生成新的烧写工具:' o4 e1 j! n& d! Q. @% e

; N/ ]1 E' c9 \- S
[backcolor=rgba(18, 18, 18, 0.5)]​# _' X5 d# u+ K; O) h/ X  @! o
' U+ c, A2 A& U1 n/ _/ z
编辑切换为居中
6 u4 j- E, v) J$ F8 ?2 \4 e2 W添加图片注释,不超过 140 字(可选)
5 ~$ Z9 O) W8 V7 x. z- D. r使用新生成的update.itb替换掉完成制卡后TF卡中的update.itb,正常进行TF卡烧写。* N! h- y) e& z) ?3 b4 F
# ~9 v) p0 w" l: Q: f/ n
进入OK8MQ-linux-sdk/tools/sdfuse路径,可看到新生成的烧写工具update.itb。
, @1 Y2 @! u! p) G4 Z注意:$ ?8 h% C( }2 H$ q

) T) s' ?8 Z! Y8 Y+ \3 s: x
  • 我们的烧写工具部分源码是不开源的,若您确实需要做相应更改请联系您的对接销售,由我们帮您修改。
  • OTG烧写不会因没有PCIe而受到影响。
    , o& w; v' n+ M, g
上述的两个问题就是用户在自制底板去掉PCIe时可能会遇到的两种问题。
; ?8 o5 g' X( l2 j当然,只设计了一路PCIe的情况也需要注意:2 y/ ~/ _# X! X& M# T
7 s8 |, r' U+ c
如果自制底板只做了一路PCIe,只焊了一个时钟芯片,也是会影响启动的。那么也需要修改设备树,关闭未做出的那一路PCIe;
) {) N; P1 n( H: V2 A( A9 ?3 f9 I/ P  ^6 A6 T# y6 P7 e3 Y4 H9 I* e
如果自制底板只做了一路PCIe,而差分时钟焊的不是与接口对应的,那在命令行用lspci命令查询就会找不到设备。, \7 b1 T/ ]2 }0 O
7 `$ ]. i0 h& S- c3 W! W
以上就是OKMX8MQ-C平台目前针对底板去掉PCIe存在的问题提出的解决办法,可供大家在设计i.MX8MQ的底板时参考。  N3 h/ t/ \4 _
9 ^: `* c) E9 X4 P: Z  V
6 V4 _% ~$ C! A( v1 U$ u& E$ ?

该用户从未签到

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

点评

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

该用户从未签到

3#
 楼主| 发表于 2022-10-9 10:49 | 只看该作者
Crash 发表于 2022-9-15 17:58, [' H  o9 H1 Z/ g5 {8 \+ |* O
没有完全看懂,等以后,再慢慢研究和学习了。
4 f# d: a: j" n, C% m$ _
多多学习 1 @* \" h: c4 I8 k* y; v" R4 s
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-9-11 05:09 , Processed in 0.109375 second(s), 27 queries , Gzip On.

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

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

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