LoginSignup
3
3

More than 3 years have passed since last update.

OSD335Xをカスタム基板でU-bootを動かすまで(メモ)

Last updated at Posted at 2020-07-25

2020/07/25 初記述

ここまでのあらすじ

OSD3358-512M-BCB を買った。
https://www.mouser.jp/ProductDetail/415-OSD3358-512M-BCB

基板作った。
https://twitter.com/nonNoise/status/1278465569499447298?s=20

実装した。
https://www.youtube.com/watch?v=acrJceh3bkU

115929400_3171100156300596_3359527061697752589_o.jpg

電源投入

上手くいった。

シリアル(UART0)よりCCCCCCC・・・・・が大量に流れれ来る。

シリアルの設定は
*Baud rate: 115,200
*Data bits: 8
*Parity: None
*Stop bits: 1
*Flow control: None

U-bootのバイナリデータの準備

どうもコンパイルが必要らしい。

Ubuntuの環境でコンパイルする。
新規にVertualBoxでUbuntu環境を整えた。

ARMのGCC環境セットアップ

wget -c https://releases.linaro.org/components/toolchain/binaries/7.5-2019.12/arm-linux-gnueabihf/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar.xz

tar xf gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar.xz

export CC=[PWD]/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-
※[PWD]は各自PWDコマンドでディレクトリアドレスを代入してください。

U-Bootのコンパイル

git clone https://github.com/u-boot/u-boot
cd u-boot/
git checkout v2018.01 -b tmp

※参考通りにしたので、なんか古い。どこかで最新にする予定。

U-Bootにパッチを充てる

wget -c https://rcn-ee.com/repos/git/u-boot-patches/v2018.01/0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch
wget -c https://rcn-ee.com/repos/git/u-boot-patches/v2018.01/0002-U-Boot-BeagleBone-Cape-Manager.patch
wget -c https://raw.githubusercontent.com/RobertCNelson/Bootloader-Builder/master/patches/v2018.03-rc1/0002-NFM-Production-eeprom-assume-device-is-BeagleBone-Bl.patch

patch -p1 < 0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch
patch -p1 < 0002-U-Boot-BeagleBone-Cape-Manager.patch
patch -p1 < 0002-NFM-Production-eeprom-assume-device-is-BeagleBone-Bl.patch

※こんな仕組みがあるんだ。BeagleBoneの影が見える。カスタムしたい。

U-BootをMakeする。

export CC=[PWD]/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-
※[PWD]は各自PWDコマンドでディレクトリアドレスを代入してください。

make ARCH=arm CROSS_COMPILE=${CC} distclean
make ARCH=arm CROSS_COMPILE=${CC} am335x_evm_defconfig
make ARCH=arm CROSS_COMPILE=${CC}

必要なファイルをWindowsに引き渡す

ARMのU-Bootには2種類のファイルが必要
u-boot-spl.bin(初段起動用)とu-boot.img(次段起動用)

u-boot-spl.binは、u-boot/splの中になります。

TeraTermで書き込む

海外の人もTeraTerm使うんだ。

ターミナルにCCCCC.....とCが流れている状態を確認。

ファイル -> 転送 -> XMODEM -> 送信
 u-boot-spl.bin を選択
 左下の1K にチェックを入れる
 転送される。

コメント 2020-07-25 014135.png

ファイル -> 転送 -> YMODEM -> 送信
 u-boot.img を選択
 転送される。
コメント 2020-07-25 014502.png
最初、0%の状態で少し間があるけど、根気強く(1分程度)バーが動くまで我慢しましょう。

無事に?起動する。
コメント 2020-07-25 014806.png

それで?

ただ、この状態だと、二つのU-BootプログラムはRAMに展開されたままなので、resetや電源再投入をすると、再びCCCC....が表示される。
U-Bootのデバックを行うなら、この状態が最も最適。

U-Bootのログを見ると、EEPROMがエラーだったり、USBやEthernetがなかったりと文句を言ってくる。
このままではいけないので、U-Bootのカスタムが必要そう。
とりあえず、U-Bootを書き込む手順だけまちょめた。

先は長そうだ。(楽しみだが)ふふふ。

参考文献

https://processors.wiki.ti.com/index.php?title=AM335x_U-Boot_User%27s_Guide&oldid=151545#Boot_Over_UART

https://octavosystems.com/forums/topic/osd3358-boot/

本当のメモ(1)

エラーが出たから対処済みだが、念のため残しておく。

bad value (‘armv5’) for ‘-march=’ switch

この記事が正しいか、再度コンパイルしようと思ったら、make ARCH=arm CROSS_COMPILE=${CC}で発生したエラー

どうもUbuntuを再起動させた事で、export がクリアされたらしい。(へぇ~)
なので、コンパイル前に
export CC=[PWD]/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-
を再度書くように記事を変更した。

本当のメモ(2)

U-Bootをシリアルで書き込むときに、X-MODEMとY-MODEMが出てきて、なんじゃそりゃって顔したので、調べてみた。
https://ja.wikipedia.org/wiki/XMODEM
https://ja.wikipedia.org/wiki/YMODEM
知らなかった(にわかですみません)
TeraTermは便利で使いやすいが、自動化したいときに困るのでPythonでライブラリ探してみた。
https://pythonhosted.org/xmodem/
https://github.com/alexwoo1900/ymodem
なるほど?

3
3
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
3
3