Eu tenho uma placa baseada em i.mx6 rodando usando buildroot e linux. Esta placa tem dois armazenamentos, nand e emmc. O nand tinha rootfs completos e kernel em si mesmo. Estou agora a arrancar a partir do cartão SD. Nos logs de inicialização, consigo ver a partição nand e emmc sendo detectada
[ 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.
e emmc
[ 4.318175] mmcblk0: p1 p2
Eu posso ver que os dispositivos para nand são registrados e mostrados em /dev/mtd*
.
Agora estou usando nand and mmc-utils
fornecido pelo buildroot.
Eu estou tentando escrever alguns dados em nand como este.Escrevendo um arquivo de texto simples test.txt,
#nandwrite -b 1 -n /dev/mtd0 -p /test.txt
Veja o log de erros completo em PasteBin
#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
Alguém pode dizer a maneira correta / passos a serem seguidos em caso de interação nand, sd. Eu segui este tópico
StackExchange: como-posso-apagar-flash-mtd0
Da mesma forma, não consigo fazer flash ou fazer nada com o emmc.
#mmc status get /dev/mmcblk0
SEND_STATUS response: 0x00000900
Isso parece ok, mas como realmente escrever ou apagar mmc? Existem muitos comandos associados com mmc, e não sei qual devo usar,
Mais algumas verificações
# 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
Eu estou supondo que talvez alguns dispositivos estejam bloqueados, mas como verificar isso?
Quais são os pré-requisitos / etapas para acessar o nand?