|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 Heaven_1 于 2022-9-15 17:54 编辑 5 c9 G$ K# k+ H5 P% |
* ?5 }8 h# m' _$ T6 J. l. _6 T7 {& p在飞凌嵌入式OKMX8MQ-C开发板上有两个PCIe接口,对应着两个PCIe差分时钟,两路PCIe分别用作了M.2接口卡槽KEYE(P37)和KEYM(P34)。
8 b& a; q2 y# t, t1 Y- ]
& f* C) ?) _1 [1 j" W$ r* i很多使用FETMX8MQ-C核心板的用户在自制底板时会不做PCIe部分,故而不会焊PCIe的差分时钟,等到使用出厂镜像验证底板时发现会出现无法正常启动的问题。
6 k+ B9 {2 u' D8 C: A2 T6 ~" v5 Z' ~今天,小编将总结常见的2种自制底板无PCIe导致的问题及其对应解决办法以供大家参考。
7 h2 V) Z8 l* \# J4 Y1.“使用出厂镜像启动时发现无法正常启动”% @. H$ d6 E( @( n' _ Q
问题描述——% v2 x& e4 j. Y: J
6 K7 m8 @' |( I客户自制底板去掉PCIe烧录出厂镜像,启动时出现的卡死信息:5 u, X6 c8 a- q( s6 b3 T# }" O
& q1 s7 v0 T! T P& ^! u. t2 G' o
/ P% h( v0 ^: g5 V0 Z T* k" s! I2 K+ s S# k H
2 [! U) l% T3 _1 k2 X, T! L7 D
![]() [backcolor=rgba(18, 18, 18, 0.5)] . w- E% n; ?" E' N- L6 S0 K
( H6 a# a0 y% L, `6 m 1 C, I' ^: b6 Z Q* Y+ p
8 P5 ~' Q* q i( A8 R( z6 a4 i9 Q4 e- D8 M; C" T, Y1 B( I6 ]
编辑切换为居中' ]" z% e8 c/ T+ l6 b7 d- q, o9 Y
% ]% b7 q- e) o$ c9 k
( Y% Z" f- H' X! ]) O( a. J4 o
/ \0 l$ ?) V2 O2 j; w
( @, `" D7 s- I+ l+ P: I- t添加图片注释,不超过 140 字(可选)
& h8 O- n" `/ [& Q# @# a4 y0 L9 E) j+ ]5 }
产生原因——
, u* n# D/ y0 b9 Y6 ?7 n9 v" N3 D+ Y0 _* K4 Y/ b
PCIe影响了启动,需要在设备树里把跟PCIe有关的功能关闭。
" v; A2 Z: L$ l* T ~$ L; m3 @3 y
9 |$ T$ u. T' k8 J+ w3 [5 ]* g) d解决办法——" _. M, ^0 B6 L) h
+ d* ?& M- H0 u; v
修改内核设备树:
1 ?4 \0 W& S$ K H" Z* {" ~* b# b
( b1 j( f' f* q8 GviOK8MQ-linux-kernel/arch/ARM64/boot/dts/freescale/ok8mq-evk.dts# y# e/ O6 X; T8 Z2 g
( z* q. x( T& U% g( s2 b; P
8 c& [6 W6 v& k) L; C
3 m7 t9 _8 ^9 R) {! x
3 f3 X. u, X( r) g. V/ v![]() [backcolor=rgba(18, 18, 18, 0.5)] 6 n" {( K, d8 B6 [3 Z. |
* t+ v9 L* e9 Q& B0 Z
+ P8 }! I% \8 f3 \4 B( J8 D" i/ _. Y4 v9 L' ~
8 M; m! M# o- L$ s+ {编辑切换为居中1 h5 S0 a: C" m" p9 \8 V7 r% ?
添加图片注释,不超过 140 字(可选)+ M- P; }& l' i" p ~ Y
将设备树中的PCIe全部从“okay”改为“disabled”,重新编译。编译后会在/OK8MQ-linux-sdk/images/boot下生成ok8mq-evk.dtb。
" Y- V0 k8 G& {6 e3 G8 k+ g完成上述修改后重新编译并用新的镜像进行烧写。# q) N3 m4 o/ T9 Y, | F
正常启动后打印信息如下(红框中是在上述卡住位置向后继续启动的打印信息):& ~! ?$ v8 ^7 g" G
; r$ ~# M" f7 l ]$ M
![]() [backcolor=rgba(18, 18, 18, 0.5)] 4 K, A2 V! c1 @$ {
! d; n% }! l9 x2 o+ l: ^
编辑切换为居中
4 t9 Y7 h V+ ?" }添加图片注释,不超过 140 字(可选)5 L' I4 T, L- j& a7 }; g% o
注意:飞凌目前提供的最小系统方案也是没有设计PCIe的,故用户如果使用了飞凌的最小系统方案,也需要按照上述方法进行修改。
/ T* g' @8 ~+ ]$ ?7 I: q2.“使用TF卡进行烧写时发现烧写一半卡住”
& k3 M0 g% Y* B" L) s: U1 T# c# q6 |8 g8 M! D/ c9 `9 v R
问题描述——1 h& K+ A0 j4 p* c
9 v( O9 I. g+ i5 F( p% p7 m
客户自制底板去掉PCIe,使用TF卡烧写时看到命令行打印信息在下述位置卡住:
# k6 ~6 f3 J4 @# D
" `; j7 o( @( b g$ P- `3 _# d/ [* T" d: g
; |6 v) N/ r( H* w3 ~0 Q H4 S9 ]' k
![]() [backcolor=rgba(18, 18, 18, 0.5)]
+ a; x x5 i9 o! ]
9 Y: K: k% ?7 X: v0 x- x. d 编辑切换为居中
, f" U. _# Q0 f/ W添加图片注释,不超过 140 字(可选)2 e" R$ [/ @2 I v& H8 l
注意:并不一定就卡在上述位置,但一定在上述打印信息附近,不会太远。+ {6 q0 g- P# C5 \3 ]: ^
产生原因——
9 Q8 H. R" G; J" O/ E- r% M5 ]: o! p
烧写引导镜像中的PCIe的启动影响了烧写,需要替换烧写工具中的内核阶段引导镜像。. k' d& u5 T2 Q, X
解决办法——2 g. G6 [6 h0 j" o$ K c
" G' J9 X2 b; z1 ? z/ m+ o首先按照问题中的方法修改内核设备树并编译。进入“OK8MQ-linux-sdk/tools/update”路径,可看到该路径下有很多dtb文件:
4 r7 ~# j6 \ T: A; d2 ^" d: x& S3 v) `2 [3 q
, A X+ p9 I% u![]() [backcolor=rgba(18, 18, 18, 0.5)] ' E9 d j+ q& F/ Z- X S3 Y5 p6 f
, Z( O6 ~8 w+ ^9 d
编辑切换为居中8 \" F6 }+ ?3 O: g; {
添加图片注释,不超过 140 字(可选)
# `- {+ q& Y9 q% `, A" J; o$ \6 u" J用编译生成的“images/boot”路径下的ok8mq-evk.dtb替换掉当前路径下的ok8mq-evk.dtb。' u8 I; p: n' p9 u* m, v o
执行编译命令,生成新的烧写工具:
: n* {" W! t& h) N, K" {* u! {+ m) a
![]() [backcolor=rgba(18, 18, 18, 0.5)]
- X- p5 d2 p6 g% _! Q1 `& Y, u9 w4 h& F% ~
编辑切换为居中
7 O; s5 X; @" @) }+ T1 g+ O添加图片注释,不超过 140 字(可选)* s( e- R: o* ~' b% V8 `& C
使用新生成的update.itb替换掉完成制卡后TF卡中的update.itb,正常进行TF卡烧写。" c, a5 T: m; h2 H/ b" D9 c8 f
/ ^: S: J: x9 D# w. j/ \
进入OK8MQ-linux-sdk/tools/sdfuse路径,可看到新生成的烧写工具update.itb。, k& M& X5 J( V1 \; Z" l+ h X
注意:7 {$ j+ X }, j/ a9 \/ |
+ J' S0 h+ M$ s6 \% N/ k
- 我们的烧写工具部分源码是不开源的,若您确实需要做相应更改请联系您的对接销售,由我们帮您修改。
- OTG烧写不会因没有PCIe而受到影响。
8 d( X$ e3 Y" l" e U. W8 v 上述的两个问题就是用户在自制底板去掉PCIe时可能会遇到的两种问题。: w- ~2 N$ G* y* }
当然,只设计了一路PCIe的情况也需要注意:2 p% I$ d0 ?! f( c" l
1 S% T5 }# W7 d4 A/ u0 B9 O如果自制底板只做了一路PCIe,只焊了一个时钟芯片,也是会影响启动的。那么也需要修改设备树,关闭未做出的那一路PCIe;
; m3 f( r9 x# R- i2 N4 H' v/ m& M. ~: ]8 R
如果自制底板只做了一路PCIe,而差分时钟焊的不是与接口对应的,那在命令行用lspci命令查询就会找不到设备。
+ E$ f5 |( T1 n' g
E2 o ]. A6 n以上就是OKMX8MQ-C平台目前针对底板去掉PCIe存在的问题提出的解决办法,可供大家在设计i.MX8MQ的底板时参考。
5 M( n, Y* w- `3 W! r/ f! C
3 F& u# m5 s0 n9 b" Z3 p
* \, g4 d$ T' ^3 x) ~% k3 g( [ |
|