「私は、256 MiB NOR フラッシュ (GD55B02g2) を搭載した i.MX ベースのボードで U-Boot 2024.04 を使用しています。」
U-Boot はフラッシュとパーティションを正しく検出します。
mtdparts=21e0000.qspi:448k(U-Boot),64k(U-BootEnv),-(ubi パーティション)
しかし、U-Boot が UBI パーティションを接続しようとすると失敗します。
SPIFlashから環境をロード中... SF: ページサイズ256バイト、消去サイズ64 KiB、合計256 MiBのGD55B02g2を検出しました
*** 警告 - CRC が不正です。デフォルトの環境を使用しています
UBI から環境をロードしています... ubi0: mtd3 を接続
ubi0: スキャンが完了しました
ubi0 エラー: ubi_read_volume_table: レイアウトボリュームが見つかりませんでした
ubi0 エラー: ubi_attach_mtd_dev: mtd3 の接続に失敗しました、エラー -22
UBIエラー: mtd3をアタッチできません
UBI エラー: UBI を初期化できません、エラー -22
UBI初期化エラー22
正しい MTD パーティションが使用されているかどうか (サイズが十分大きいか) を確認してください。
** mtdパーティション「ubi-partition」が見つかりません
mtdparts と mtd list はパーティションが有効であることを示します。
sf プローブは正常に動作します。
U-Boot が正常に接続できるように、この ubi パーティションを適切に初期化またはフォーマットするにはどうすればよいですか?
=> mtdパーツ
デバイス nor0 <21e0000.qspi>、部品数 = 3
#: 名前 サイズ オフセット mask_flags
0: U-Boot 0x00070000 0x00000000 0
1: U-BootEnv 0x00010000 0x00070000 0
2: ubiパーティション 0x0ff80000 0x00080000 0
アクティブパーティション: nor0,0 - (U-Boot) 0x00070000 @ 0x00000000
デフォルト:
mtdids: nor0=21e0000.qspi
mtdparts: mtdparts=21e0000.qspi:448k(U-Boot),64k(U-BootEnv),-(ubi-partition)
=> mtdリスト
MTD デバイスのリスト:
* ノル0
- デバイス: flash@0
- 親: spi@21e0000
- ドライバ: jedec_spi_nor
- パス: /soc/bus@2100000/spi@21e0000/flash@0
- タイプ: NORフラッシュ
- ブロックサイズ: 0x10000 バイト
- 最小I/O: 0x1バイト
- 0x000000000000-0x000010000000 : "nor0"
- 0x000000000000-0x000000070000 : 「U-Boot」
- 0x000000070000-0x000000080000 : 「U-BootEnv」
- 0x000000080000-0x000010000000 : 「ubiパーティション」
次を使用して、U-Boot で UBI パーティションをアタッチしてみました。
=> sfプローブ
=> ubi パート ubi パーティション
U-Boot が UBI デバイスを正常に接続し、利用可能なボリュームを一覧表示することを期待していました。
しかし、次の理由で失敗しました:
ubi0 エラー: ubi_read_volume_table: レイアウトボリュームが見つかりませんでした
ubi0 エラー: ubi_attach_mtd_dev: mtd3 の接続に失敗しました、エラー -22
また、パーティション レイアウトが正しいことと、フラッシュが適切に検出されたことを確認するために、mtdparts と mtd list も実行しました。これで有効な UBI パーティションが確認されると思っていましたが、有効な UBI ヘッダーがまだないようです。
こんにちは@LoKi
返信が遅くなり申し訳ありません。まずは ubi パーティションをフォーマットして、有効な UBI パーティションにする必要があります。
BR