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

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

[复制链接]

该用户从未签到

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

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( [

该用户从未签到

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

点评

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

该用户从未签到

3#
 楼主| 发表于 2022-10-9 10:49 | 只看该作者
Crash 发表于 2022-9-15 17:58
4 b+ P2 V1 @3 P没有完全看懂,等以后,再慢慢研究和学习了。
% W- V! C1 p% D/ U. z& I
多多学习 & w. f) w8 Q1 G- U0 ?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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