LoginSignup
1
2

More than 3 years have passed since last update.

Zynq UltraScale+ MPSoCでpetalinuxを起動した際にSDカードが消える話

Last updated at Posted at 2020-01-09

はじめに

前回の記事が予想以上に多くの方に読まれていたことに驚いています。ありがとうございます。自分の文章力の無さに驚きつつも少しでも問題共有ができればいいなと思い書き始めた経緯です。

今回はその続編ということで、開発中のMPSoCにPetalinuxを導入しようとしたときに発生した問題について記述したいと思います。
この原因の根本的解決が未だに見つかっていないので、どなたかわかる方がいたらご教授いただければ幸いです。

SDブートしているのにマウントされない…?

今まではstandaloneの状態(いわゆるベアメタル)でデバッグをしていましたが、あれからソフトウェア的に開発するに至って、Petalinuxを導入することになりました。

自分はソフトウェア開発はしないので、ソフト屋さんに一任するのですがPetalinuxが正常起動するかどうかだけ気になったので自分でLinuxイメージを作成することに。

導入に関してはPetalinuxツール資料(UG1144)を参考に作成。

ハードウェア情報が記載されているBOOT.binとlinuxファイルであるimage.ubが作成され無事にlinuxは起動したのですが…

PetaLinux 2018.3 hogehoge /dev/ttyPS0

hogehoge login: root
Password:

Login incorrect
hogehoge login: root
Password:
root@hogehoge:~# df
Filesystem           1K-blocks      Used Available Use% Mounted on
devtmpfs               1889616         4   1889612   0% /dev
tmpfs                  2024092        68   2024024   0% /run
tmpfs                  2024092        68   2024024   0% /var/volatile

SDカードが見えてない!!!!
そこでdmesgコマンドでmmcの状態を確認して見た結果

root@hogehoge:~# dmesg | grep mmc
[    2.611962] mmc0: SDHCI controller on ff160000.mmc [ff160000.mmc] using ADMA 64-bit
[    2.808930] mmc0: error -110 whilst initialising SD card
root@hogehoge:~#

やはりmmc0の部分でerrorのメッセージが出ていました…

SDのCLKの周波数が原因かなと思い、IP designでSDIO0の周波数を50[MHz]に落としてやってみましたがこの現象は治らず(てかそもそもデフォルト値が200[MHz]っていう時点で相当早い気がするんですが…)

容量を変えて挑戦してみよう!

筆者が使用していたSDカードが原因じゃない?という話になり、その辺に転がっていた4GBのSDカードを使用したところ…

PetaLinux 2018.3 hogehoge /dev/ttyPS0

hogehoge login: root
Password:
root@hogehoge:~# df
Filesystem           1K-blocks      Used Available Use% Mounted on
devtmpfs               1889616         4   1889612   0% /dev
tmpfs                  2024092        72   2024020   0% /run
tmpfs                  2024092        68   2024024   0% /var/volatile
/dev/mmcblk0           3850240     21856   3828384   1% /run/media/mmcblk0
root@hogehoge:~# dmesg | grep mmc
[    2.619732] mmc0: SDHCI controller on ff160000.mmc [ff160000.mmc] using ADMA 64-bit
[    2.749315] mmc0: new high speed SDHC card at address 0007
[    2.749542] mmcblk0: mmc0:0007 SD04G 3.68 GiB (ro)
[    2.752745]  mmcblk0:
root@hogehoge:~#

あーなるほどね 完全に理解したわ(わかってない)

なんと普通に動いてしまいました。一応この現象は8GB,32GBでは起動せずに4GBの時に正常起動しています。不思議ですね…

まとめ

フォーマットの問題かなと思いいろいろ試しましたが結果原因はわからず…
FAT32の問題なのかなと勝手に予想していますがわかりません…

とりあえず動いたからヨシ!になってますが根本的解決がまだわかっていないのでわかる方がいましたら教えて下さい…

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2