私はbuildrootとLinuxで動作するi.mx6ベースのボードを持っています。ボードには nand と emmc の 2 つのメモリがあります。 nand自体には完全なrootfsとカーネルがあります。これでSDカードから起動します。ブートログで、nandパーティションとemmcパーティションが検出されたことがわかります。
[ 3.440294] 5 ofpart partitions found on MTD device gpmi-nand
[ 3.446084] Creating 5 MTD partitions on "gpmi-nand":
[ 3.451148] 0x000000000000-0x000000200000 : "boot"
[ 3.456431] 0x000000200000-0x000000500000 : "scratch"
[ 3.461632] 0x000000500000-0x000000b00000 : "kernel"
[ 3.467091] 0x000000b00000-0x000001100000 : "recovery"
[ 3.472521] 0x000001100000-0x000010000000 : "rootfs"
[ 3.481312] gpmi-nand 112000.gpmi-nand: driver registered.
そしてemmc
[ 4.318175] mmcblk0: p1 p2
NANDデバイスが登録されていることがわかります/dev/mtd*
。私はnand and mmc-utils
buildrootが提供するものを使用しています。このようにNANDに関するデータを少し書いてみたいと思います。単純なテキストファイルtest.txtを作成します。
#nandwrite -b 1 -n /dev/mtd0 -p /test.txt
#flash_erase /dev/mtd0
flash_erase: error!: no start erase block specified
flash_erase: error!: no erase block count specified
flash_erase: error!: Try `--help' for more information
NANDは、SDとの対話中に従うべき正しい方法/手順を教えてくれる人ですか?私はこのスレッドに従った。
StackExchange: How-i-flash-erase-mtd0
同様に、emmcでは更新することも何もできません。
#mmc status get /dev/mmcblk0
SEND_STATUS response: 0x00000900
これは大丈夫に見えますが、実際にmmcをどのように書いたり消したりしますか? mmcに関連するコマンドがたくさんあります。どれを使うべきかわかりません。
追加確認
# mtdinfo
Count of MTD devices: 5
Present MTD devices: mtd0, mtd1, mtd2, mtd3, mtd4
Sysfs interface supported: yes
# mtd
mtd_debug mtdev-test mtdev2tuio mtdinfo
# mtdev
mtdev-test mtdev2tuio
# mtdev-test
Usage: mtdev <device>
# mtdev-test /dev/mtd0
error: could not grab the device
おそらくNandデバイスがロックされているようですが、どうやって確認できますか?
Nandにアクセスするための前提条件/手順は何ですか?