|
CAT845_内蔵ROM初期化手順 †必要なもの †ハードウェア
ソフトウェア
microSD メモリカード ここから最新のROMイメージファイルを取得し、 FATフォーマットされたmicroSDメモリカードにファイルを保存しておく CAT845の立ち上げ †microSDをCN7ソケットに挿入する。
CAT845 CN10 が 3.3V UARTシリアルコンソール入出力である。EK845付属のシリアルUSB変換ケーブルを接続すること。その他のケーブルを使用する場合は次のピン配置を参考のこと
TeraTermを開き、シリアルコンソール(COM x)を開く。 CAT845のROM領域について †本機には2つのストレージ領域がある
オンボードROM (QSPI ROM)にブートローダ、カーネル、miniルートシステム(read-onlyなLinux)をインストールし起動することができる。この場合 microSD は任意のデータ領域として使用できる。microSD無しでも動作する。 オンボードROM のブートローダが立ち上がった後、microSDに収録されているLinuxを起動することもできる。 カスタム方法など詳しくは「組込みLinuxガイド」を参考の事 オンボードQSPI-ROMの書き換え †オンボードROM(QSPI NOR FLASH) の各パーティションの役割
起動時のメッセージで ubootのビルド日付を確認します U-Boot 2013.01.01-gcb82c56-dirty (Nov 02 2017 - 22:20:45) 2017/11/2 より以前のバージョンの場合、まずは ubootを書き換えてください。 mtd1 uboot †作業全体の流れは以下の通りです。 ubootのコマンドライン => に対して以下の4行をコピペします setenv mtd1_start '0x80000' setenv mtd1_length '0x580000' setenv loadaddr '0x60000000' sf probe 0 microSD カード内のファイル名を表示 (fatls mmc 1:1) => fatls mmc 1:1 system volume information/ 13772 mtd0_spl_20180130.bin 225752 mtd1_uboot_20171102.bin 223608 mtd1_uboot_20201120.bin 3779464 mtd2_uimage+dtb_cat845_20190924 27197440 mtd3_jffs2_cat845_20190924_64k.bin 27262976 mtd3_jffs2_cat845_20190924_256k.bin mtd1_uboot_日付.bin の最新日付のファイル名をコピーします メモリにロード => fatload mmc 1:1 ${loadaddr} mtd1_uboot_20201120.bin mtd1領域の消去と書き換え => sf erase ${mtd1_start} +${filesize} => sf write ${loadaddr} ${mtd1_start} ${filesize} 再起動 => reset ubootのビルド日付が変わったことを確認する uboot変数の再初期化と mac アドレスの書き込み => printenv ethaddr ethaddr=00:03:82:ff:ff:ff 下位3バイトのff:ff:ff部分は基板固有の数値です。これを確認します。 => env default -a uboot変数が全て初期化されます(macアドレスが消えてしまいます) => setenv ethaddr '00:03:82:ff:ff:ff' 先ほど調べたmacアドレスを再設定します。 => saveenv 環境変数の保存 mtd2 kernel †microSD カード内のファイル名を表示 (fatls mmc 1:1) => fatls mmc 1:1 system volume information/ 13772 mtd0_spl_20180130.bin 225752 mtd1_uboot_20171102.bin 223608 mtd1_uboot_20201120.bin 3779464 mtd2_uimage+dtb_cat845_20190924 27197440 mtd3_jffs2_cat845_20190924_64k.bin 27262976 mtd3_jffs2_cat845_20190924_256k.bin mtd2_uimage+dtb_cat845_日付.bin の最新日付のファイル名をコピーします メモリにロード => fatload mmc 1:1 ${loadaddr} mtd2_uimage+dtb_cat845_20190924 mtd2領域の消去と書き換え => run update_mtd2 mtd3 rootfs †起動時のメッセージで FLASH ROMのセクタサイズを確認します DEVICE CYPRESS と表示される場合 ... 256Kバイト/セクタ 極初期出荷のCAT845のみ DEVICE MICRON と表示される場合 ... 64Kバイト/セクタ microSD カード内のファイル名を表示 (fatls mmc 1:1) => fatls mmc 1:1 system volume information/ 13772 mtd0_spl_20180130.bin 225752 mtd1_uboot_20171102.bin 223608 mtd1_uboot_20201120.bin 3779464 mtd2_uimage+dtb_cat845_20190924 27197440 mtd3_jffs2_cat845_20200131_64k.bin 27262976 mtd3_jffs2_cat845_20200131_256k.bin mtd3_jffs2_cat845_日付_64k.bin の最新日付のファイル名をコピーします。 メモリにロード => fatload mmc 1:1 ${loadaddr} mtd3_jffs2_cat845_20200131_64k.bin mtd3領域の消去と書き換え => run update_mtd3 起動メディアの変更 †オンボードROM (QSPI-FLASH)からの起動に切り替える => run boot_from_mtd microSDからの起動に切り替える => run boot_from_sd => reset (またはリセットスイッチ(SW2)を押して再起動する) 現在の起動rootfsを調べる方法 †u-bootのコマンドラインにて printenv を実行し bootargs= のさらに root= を調べる => printenv ... 略 ... bootargs=console=ttySC10,115200 console=tty1 ignore_loglevel ro rootfstype=ext4 root=/dev/mmcblk0p2 rootwait vmalloc=384M root=/dev/mmcblk0p2 ... mmcblk0p2 は microSD カード0 の partition2 を意味する root=/dev/mtdblock3 ... mtdblock3 は オンボードFLASHの partition3 を意味する 関連 † |