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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本帖最后由 Heaven_1 于 2022-9-15 17:54 编辑
- g' X  ^; g& o! r7 Z; Q* P  f- y6 h( d+ _' Z3 c
在飞凌嵌入式OKMX8MQ-C开发板上有两个PCIe接口,对应着两个PCIe差分时钟,两路PCIe分别用作了M.2接口卡槽KEYE(P37)和KEYM(P34)。8 c' ?8 c1 [8 ~# v& m1 r2 l
% ?0 b( ?5 o# l$ O5 X; U& p) t* _: m
很多使用FETMX8MQ-C核心板的用户在自制底板时会不做PCIe部分,故而不会焊PCIe的差分时钟,等到使用出厂镜像验证底板时发现会出现无法正常启动的问题。$ K0 z+ k5 Y: n/ B6 K* n" L8 [( J
今天,小编将总结常见的2种自制底板无PCIe导致的问题及其对应解决办法以供大家参考。
  m( Z/ r0 g9 k& x1.“使用出厂镜像启动时发现无法正常启动”& s% [9 ~+ {3 g! q* [8 ?
问题描述——
4 E+ B8 J) I+ G2 C6 o$ Z
  I: I) r; q; Q- R# z0 A+ y客户自制底板去掉PCIe烧录出厂镜像,启动时出现的卡死信息:& K& X+ s" a; p" B# n0 q

9 d2 T( C4 k( q; x. J0 |5 a7 y9 v8 ^6 V/ [  H

$ I' [, |9 m: X& u8 C) `) M0 M6 ]: l. x8 _4 C9 |/ K9 P
[backcolor=rgba(18, 18, 18, 0.5)]​3 O# ~- i& O6 ^) Q) N
9 S! s. D: H$ W% H

8 G* C/ w2 p! T' v9 A
. e+ l) q; L  F7 ~- N9 _5 K) B" Q( _, w, s- p; e0 }4 O
编辑切换为居中
6 B% L4 r& f  i8 C1 x, ~" k( z$ L$ r% |( l: L- Q8 [% h, l6 C" R
. W( V) X0 ^$ x4 s7 s- x& l
: M9 d$ X) p" g

8 [& ?! f. H  s0 H' S添加图片注释,不超过 140 字(可选)
9 j7 j. e' x8 g) r4 p& a4 a+ ~9 D/ V" c; l0 ^- A+ S1 T2 E- |- D
产生原因——) |/ ?$ I9 s' a- k/ w; g$ `

* p2 {  _' x5 r/ Y: \PCIe影响了启动,需要在设备树里把跟PCIe有关的功能关闭。0 E, y7 J5 D+ y1 y3 H( J. U
: [$ d8 T0 B" X2 @6 L& D
解决办法——8 D- r* G6 u# C- p1 Y. T, C
, Y  j% O' Z& x! V# j1 T+ Y
修改内核设备树:/ n" e$ `$ g% |8 r' X* D
5 ]3 w2 [) e2 D- e
viOK8MQ-linux-kernel/arch/ARM64/boot/dts/freescale/ok8mq-evk.dts$ b7 l  K) [) o" m: u3 P/ G# I

% z' \4 f8 j1 n/ @9 \/ X
/ K* }6 e7 E) p
* i0 l3 w% J! k6 N+ v
0 z4 t' K+ A* v; g8 R
[backcolor=rgba(18, 18, 18, 0.5)]​
5 k, H, C8 d7 V$ o
+ c7 S, ]5 n& z9 O$ M$ J( b
/ w" n2 \; w" @2 `0 e$ i

/ T! q6 v% s6 y$ c+ t* T
4 f8 O3 g& D, y: m) \编辑切换为居中
9 v. ?: ?- L/ A$ l1 z  t  h/ I5 u添加图片注释,不超过 140 字(可选). j& Z" L( _$ e  d* |
将设备树中的PCIe全部从“okay”改为“disabled”,重新编译。编译后会在/OK8MQ-linux-sdk/images/boot下生成ok8mq-evk.dtb。' y+ C: ]7 \  Q
完成上述修改后重新编译并用新的镜像进行烧写。
& k# O) a8 `0 a- m* U( K正常启动后打印信息如下(红框中是在上述卡住位置向后继续启动的打印信息):
3 z6 \- Q) H+ h8 _& D4 l
2 B" f2 j# |. Y+ D
[backcolor=rgba(18, 18, 18, 0.5)]​
( V: K6 t8 {7 o; I$ ^
: M/ }2 \/ K) F9 ?/ D
编辑切换为居中1 u2 ~" p# _  R4 p, t. {( ^$ |5 r
添加图片注释,不超过 140 字(可选)
  x2 t! F$ u1 ]( _# a注意:飞凌目前提供的最小系统方案也是没有设计PCIe的,故用户如果使用了飞凌的最小系统方案,也需要按照上述方法进行修改。! U: U2 u/ J4 ^! }
2.“使用TF卡进行烧写时发现烧写一半卡住”
  K2 \6 u' e: ?! z  ?
. S2 U6 H4 L6 F3 P& c- |问题描述——
5 R" D& i; J" w/ y* L
# O% O- O# S5 v" U5 @客户自制底板去掉PCIe,使用TF卡烧写时看到命令行打印信息在下述位置卡住:6 h5 d+ h/ a: |6 L
5 i8 d* W4 W7 k) l7 M- X0 t( U

1 P0 @$ |) H# ]% @0 o. I7 l4 S4 A4 k# W& s* i! ~# [5 t6 ~' t

% o  l' A6 Z' Z. m) C9 L  V
[backcolor=rgba(18, 18, 18, 0.5)]​3 n0 p2 w. l+ Z- a8 ]0 M

2 F  A) i2 K5 M
编辑切换为居中, Q5 T4 L; ^+ B
添加图片注释,不超过 140 字(可选)
' j; N$ P5 P" D- V1 {注意:并不一定就卡在上述位置,但一定在上述打印信息附近,不会太远。/ e7 ?1 H1 k( \
产生原因——
/ K& B. e& R# o1 ?& X$ q& T+ w
5 g  Z2 E9 {6 ?7 h3 U2 T9 Y2 }1 ^烧写引导镜像中的PCIe的启动影响了烧写,需要替换烧写工具中的内核阶段引导镜像。
8 q' t! E) A1 I解决办法——
6 g" O& X$ l- b0 `+ c- R3 T2 N
- r7 A- N" L, z& M5 a首先按照问题中的方法修改内核设备树并编译。进入“OK8MQ-linux-sdk/tools/update”路径,可看到该路径下有很多dtb文件:
7 U/ K/ U  h5 r2 }/ V/ A. G1 }! ^* j" S
8 b9 V: @. u3 U) f
( `- U  x" y. P- I" B
[backcolor=rgba(18, 18, 18, 0.5)]​& `$ K1 P# C' t  o& Q- Z
0 ^/ J' t# H- B4 L( ^
编辑切换为居中
- ]. S$ W1 a3 e* U添加图片注释,不超过 140 字(可选), K/ a# D! `" A6 X
用编译生成的“images/boot”路径下的ok8mq-evk.dtb替换掉当前路径下的ok8mq-evk.dtb。! ~; N$ g# k! R. I% S& L
执行编译命令,生成新的烧写工具:
" y% C# w) E* A  k# r3 |( A
# ^! o9 N: x- b1 {
[backcolor=rgba(18, 18, 18, 0.5)]​
: }9 h  j+ a4 a7 Y- W
3 q, F4 A& j7 t* n" C6 p+ r
编辑切换为居中8 r6 ]3 J& J0 e2 O
添加图片注释,不超过 140 字(可选)
% {' o( ~8 y% p' n+ r使用新生成的update.itb替换掉完成制卡后TF卡中的update.itb,正常进行TF卡烧写。
; o) r8 P2 y# D  i5 `$ |# ?3 |" r/ \) o( q; o  m* Z) T+ K0 p
进入OK8MQ-linux-sdk/tools/sdfuse路径,可看到新生成的烧写工具update.itb。1 ?, m" a6 r2 w
注意:
- P2 Q+ X* @9 u& ~2 M5 ^7 ^4 F1 a4 c' d. k
  • 我们的烧写工具部分源码是不开源的,若您确实需要做相应更改请联系您的对接销售,由我们帮您修改。
  • OTG烧写不会因没有PCIe而受到影响。
    7 G: R; j% {7 x
上述的两个问题就是用户在自制底板去掉PCIe时可能会遇到的两种问题。
# Q+ }' N0 |! c/ J4 I7 |当然,只设计了一路PCIe的情况也需要注意:3 Q% Z9 B) x$ e" q

$ U) G( c) ]9 d2 v& |! h2 c如果自制底板只做了一路PCIe,只焊了一个时钟芯片,也是会影响启动的。那么也需要修改设备树,关闭未做出的那一路PCIe;
2 D) R) @0 a* |- R/ C8 L( f) `4 t3 o+ k3 k4 K! p6 `( b
如果自制底板只做了一路PCIe,而差分时钟焊的不是与接口对应的,那在命令行用lspci命令查询就会找不到设备。
. g. n0 P+ x6 z
5 _  s5 M" T" `; M& n- x以上就是OKMX8MQ-C平台目前针对底板去掉PCIe存在的问题提出的解决办法,可供大家在设计i.MX8MQ的底板时参考。
! q+ D% H- [5 h2 K8 H
. ~9 f7 D! H' `
' ~$ `- `& Q! e6 b% i- |

该用户从未签到

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

点评

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

该用户从未签到

3#
 楼主| 发表于 2022-10-9 10:49 | 只看该作者
Crash 发表于 2022-9-15 17:58
( r! \1 g# N5 t# b$ [没有完全看懂,等以后,再慢慢研究和学习了。

2 V! C- q; G3 n多多学习
6 ?2 j! f/ k4 W* k: o( y' ^% F
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-19 21:39 , Processed in 0.125000 second(s), 24 queries , Gzip On.

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

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

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