ユーザ用ツール

サイト用ツール


u-bootのカスタマイズ

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
u-bootのカスタマイズ [2022/08/24 11:22] makotoa67u-bootのカスタマイズ [2023/06/16 14:08] (現在) – [U-Bootのビルド] makotoa67
行 2: 行 2:
  
 Jetson TX2 NX Moduleで、U-BootのTX2 NX向けバージョンのバグを修正する必要に迫られて、一度、U-Bootを自分でビルドして実際に書き込んで使用したことはあるが、そのときは、詳細な記録を残していなかったので、今回、Jetson Nano Moduleの環境にて、U-Bootのカスタマイズ、というか、具体的に変更する必要のあるネタは今のところないので、とりあえず、自分でビルドしてそれを使ってみるとして、その記録をここに残す。 Jetson TX2 NX Moduleで、U-BootのTX2 NX向けバージョンのバグを修正する必要に迫られて、一度、U-Bootを自分でビルドして実際に書き込んで使用したことはあるが、そのときは、詳細な記録を残していなかったので、今回、Jetson Nano Moduleの環境にて、U-Bootのカスタマイズ、というか、具体的に変更する必要のあるネタは今のところないので、とりあえず、自分でビルドしてそれを使ってみるとして、その記録をここに残す。
- 
 ## U-Bootのビルド ## U-Bootのビルド
  
行 65: 行 64:
 ``` ```
 $ export CROSS_COMPILE=$HOME/l4t-gcc/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu- $ export CROSS_COMPILE=$HOME/l4t-gcc/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-
 +$ make distclean
 +$ make p3450-0000_defconfig
 +$ make
 +```
 +
 +無事にmakeできたっぽい。(っぽいと書くのは、もちろん、単にmakeして、エラーらしきメッセージが出なかっただけだから)
 +
 +ちなみに、32.6.1のときのTX2 NX向けのバグだったところをみると、
 +
 +```
 +$ grep kernel_addr_r_size include/configs/p3636-0001.h 
 + "kernel_addr_r_size=08000000\0" \
 +```
 +
 +と、この32.7.1ではちゃんと修正されていることが確認できた。
 +
 +まだカスタマイズまではいかず。。。
 +
 +(2022/10/7)
 +
 +2022/9/21に非公開領域にて記録していた内容だが、U-Bootのカスタマイズの一例としてこちらに転記。
 +
 +ひとまず、U-Bootのデフォルトのブート順序を変更してみる。
 +
 +U-Bootのソース内、include/configs/p3450-0000.h内に定義されている、マクロBOOT_TARGET_DEVICESの定義を以下のように変更した。
 +
 +```
 +/*#define BOOT_TARGET_DEVICES(func)             \
 +        func(MMC, mmc, 1) \
 +        func(MMC, mmc, 0) \
 +        func(USB, usb, 0) \
 +        func(NVME, nvme, 0) \
 +        func(PXE, pxe, na) \
 +        func(DHCP, dhcp, na)*/
 +#define BOOT_TARGET_DEVICES(func) \
 +        func(NVME, nvme, 0) \
 +        func(MMC, mmc, 1) \
 +        func(MMC, mmc, 0) \
 +        func(USB, usb, 0) \
 +        func(PXE, pxe, na) \
 +        func(DHCP, dhcp, na)
 +```
 +
 +これでmake。
 +"Before Flashing"に従って所定の場所にコピーした上で、
 +
 +```
 +$ sudo ./flash.sh -k LNX jetson-nano-devkit-emmc mmcblk0p1
 +```
 +
 +とやるが、初期状態では無理のようで、一旦は、全体的にflash、つまり、
 +
 +```
 +$ sudo ./flash.sh -r jetson-nano-devkit-emmc mmcblk0p1
 +```
 +
 +と実行。
 +これで、デバッグシリアルから手動でブート順序をSSD優先に変更することなく、そのままデフォルトでSSDからブートできたみたい。OK。
 +
 +(2023/6/16)
 +
 +今日は、SPI通信ができなくなったJetson Nanoに対して、U-Bootのバージョンを変更してみることにより、SPIが復活するかどうかをみていく。
 +
 +というのは、SPI通信が突如できなくなったJetson Nanoに対して、SDK Managerにて初期化してSPIが復活した個体(Jetson Nano #1)と、SDK Managerで初期化してもSPIが復活しなかった個体(Jetson Nano #2)とが発生しているが、Jetson Nano #1と#2とでどちらも同じシステムSDにて起動しているが、その違いが発生している。ということから、は現在のところ、U-Bootのバージョンの違いによってその違いが発生していると推測。
 +
 +今回、R32.7.3をベースに作業してみているので、以下のページを参照。
 +
 +https://docs.nvidia.com/jetson/archives/l4t-archived/l4t-3273/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide/uboot_guide.html#
 +
 +Downloading and Building U-Bootで、まず、U-bootをダウンロード。
 +
 +```
 +$ git clone -n git://nv-tegra.nvidia.com/3rdparty/u-boot.git
 +$ git checkout -b jetson_nano_u-boot_customization tegra-l4t-r32.7.1
 +$ make distclean
 +$ make p3450-0000_defconfig
 +$ make
 +$ cp u-boot{,.bin,.dtb,-dtb.bin} ~/nvidia/nvidia_sdk/JetPack_4.6.3_Linux_JETSON_NANO_TARGETS/Linux_for_Tegra/bootloader/t210ref/p3450-0000/
 +$ sudo ./flash.sh -k LNX jetson-nano-qspi-sd mmcblk0p1
 ``` ```
u-bootのカスタマイズ.1661307768.txt.gz · 最終更新: 2022/08/24 11:22 by makotoa67