ユーザ用ツール

サイト用ツール


u-bootのカスタマイズ

差分

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

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
u-bootのカスタマイズ [2022/08/24 11:00] 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のビルド
  
行 22: 行 21:
  
 を参照しつつやってみる。(TX2 NXのときもそうしたはず) を参照しつつやってみる。(TX2 NXのときもそうしたはず)
 +
 +まずは、ダウンロードして展開。
  
 ``` ```
行 30: 行 31:
 remote: Compressing objects: 100% (108227/108227), done. remote: Compressing objects: 100% (108227/108227), done.
 remote: Total 691094 (delta 573623), reused 691060 (delta 573589), pack-reused 0 remote: Total 691094 (delta 573623), reused 691060 (delta 573589), pack-reused 0
-Receiving objects: 100% (691094/691094), 136.85 MiB | 1.54 MiB/s, done.+Receiving objects: 100% (691094/691094), 136.85 MiB | 1.46 MiB/s, done.
 Resolving deltas: 100% (573623/573623), done. Resolving deltas: 100% (573623/573623), done.
 $ cd u-boot/ $ cd u-boot/
-$ git checkout tegra-l4t-r32.7.1+$ git checkout -b jetson_nano_module_u-boot_customization tegra-l4t-r32.7.1
 Updating files: 100% (16598/16598), done. Updating files: 100% (16598/16598), done.
-Note: switching to 'tegra-l4t-r32.7.1'.+Switched to a new branch 'jetson_nano_module_u-boot_customization' 
 +$ git branch 
 +* jetson_nano_module_u-boot_customization 
 +$ ls 
 +Kbuild      Makefile  board   configs  dts      include  scripts 
 +Kconfig      README    cmd   disk    env      lib      test 
 +Licenses     api       common   doc    examples  net      tools 
 +MAINTAINERS  arch      config.mk  drivers  fs      post 
 +$ git checkout-index -a --prefix=exports/ 
 +$ ls 
 +Kbuild      Makefile  board   configs  dts      fs       post 
 +Kconfig      README    cmd   disk    env      include  scripts 
 +Licenses     api       common   doc    examples  lib      test 
 +MAINTAINERS  arch      config.mk  drivers  exports   net      tools 
 +$ mkdir ~/nvidia/nvidia_sdk/JetPack_4.6.2_Linux_JETSON_NANO_TARGETS/Linux_for_Tegra/sources 
 +$ mv exports ~/nvidia/nvidia_sdk/JetPack_4.6.2_Linux_JETSON_NANO_TARGETS/Linux_for_Tegra/sources/u-boot 
 +$ cd ~/nvidia/nvidia_sdk/JetPack_4.6.2_Linux_JETSON_NANO_TARGETS/Linux_for_Tegra/sources/u-boot 
 +$ ls 
 +Kbuild      Makefile  board   configs  dts      include  scripts 
 +Kconfig      README    cmd   disk    env      lib      test 
 +Licenses     api       common   doc    examples  net      tools 
 +MAINTAINERS  arch      config.mk  drivers  fs      post 
 +```
  
-You are in 'detached HEAD' state. You can look around, make experimental +次に、ビルド。環境変数を設定して、makeなど。
-changes and commit them, and you can discard any commits you make in this +
-state without impacting any branches by switching back to a branch.+
  
-If you want to create a new branch to retain commits you create, you may +``` 
-do so (now or later) by using -c with the switch commandExample:+$ 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 
 +```
  
-  git switch -c <new-branch-name>+無事にmakeできたっぽい。(っぽいと書くのは、もちろん、単にmakeして、エラーらしきメッセージが出なかっただけだから)
  
-Or undo this operation with:+ちなみに、32.6.1のときのTX2 NX向けのバグだったところをみると、
  
-  git switch -+``` 
 +$ grep kernel_addr_r_size include/configs/p3636-0001.h  
 + "kernel_addr_r_size=08000000\0"
 +```
  
-Turn off this advice by setting config variable advice.detachedHead to false+と、この32.7.1ではちゃんと修正されていることが確認できた。
  
-HEAD is now at 4335beb692 tegraconfigupdate TX2-NX uboot env offset +まだカスタマイズまではいかず。。。 
-$ git checkout -b jetson_nano_module_u-boot_customization tegra-l4t-r32.7.1 + 
-Switched to a new branch 'jetson_nano_module_u-boot_customization' +(2022/10/7) 
-ls + 
-Kbuild      Makefile  board   configs  dts      include  scripts +2022/9/21に非公開領域にて記録していた内容だが、U-Bootのカスタマイズの一例としてこちらに転記。 
-Kconfig      README    cmd   disk    env      lib      test + 
-Licenses     api       common   doc    examples  net      tools +ひとまず、U-Bootのデフォルトのブート順序を変更してみる。 
-MAINTAINERS  arch      config.mk  drivers  fs      post + 
-git branch +U-Bootのソース内、include/configs/p3450-0000.h内に定義されている、マクロBOOT_TARGET_DEVICESの定義を以下のように変更した。 
-* jetson_nano_module_u-boot_customization + 
-+``` 
 +/*#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のカスタマイズ.1661306424.txt.gz · 最終更新: 2022/08/24 11:00 by makotoa67