Armadilloフォーラム

新フラッシュ用のソフトウェア修正対象ファイルについて

yousuke-mibu

2018年2月20日 13時12分

お世話になります。

https://manual.atmark-techno.com/armadillo-4x0/armadillo-400_flashmemor…

上記ページを参考にArmadillo-410の新フラッシュ対応の為のソフトウェア変更を、
linux-2.6.26-at22 に対して行っているのですが、arm/mach-imx/mach-armadillo4x0.c
ファイルが見つかりません。

linux-2.6.26-at22 では、こちらの修正はどのファイルに行えばよろしいでしょうか。

以上、よろしくお願い致します。

コメント

yousuke-mibu

2018年2月27日 17時35分

ご回答ありがとうございます。
教えて頂いた修正を当てたところ、起動する事を確認出来ました。

しかし、下記のように領域を設定してflash_unlockを
行ってみたところ失敗してしました。

[root@armadillo440 (ttymxc1) ~]# cat /proc/mtd
dev: size erasesize name
mtd0: 00040000 00020000 "nor.bootloader"
mtd1: 00200000 00020000 "nor.kernel"
mtd2: 01960000 00020000 "nor.userland"
mtd3: 00020000 00020000 "nor.hibdrv"
mtd4: 00020000 00020000 "nor.bootf1"
mtd5: 00400000 00020000 "nor.application"
mtd6: 00020000 00020000 "nor.config"

[root@armadillo440 (ttymxc1) ~]# flash_unlock /dev/mtd5
Could not unlock MTD device: /dev/mtd5

armadillo400.c は下記のようにしています。

static struct mtd_partition armadillo401_mtd_nor_partitions_32MB[] = {
MTD_PART("nor.bootloader", 2*128*1024, 0,
MTD_WRITEABLE /* force read-only */ ),
MTD_PART("nor.kernel", 16*128*1024, MTDPART_OFS_APPEND, 0),
MTD_PART("nor.userland", 203*128*1024, MTDPART_OFS_APPEND, 0),
MTD_PART("nor.hibdrv", 1*128*1024, MTDPART_OFS_APPEND, 0),
MTD_PART("nor.bootf1", 1*128*1024, MTDPART_OFS_APPEND, 0),
MTD_PART("nor.application", 32*128*1024, MTDPART_OFS_APPEND, 0),
MTD_PART("nor.config", 1*128*1024, MTDPART_OFS_APPEND, 0),
};

領域を変更した場合に他に修正すべき場所などはありますでしょうか。

at_kojiro.yamada

2018年2月28日 16時34分

flash_unlock コマンドが失敗する件ですが、
以下の理由によるものです。

Armadillo-410/440/IoTゲートウェイ G2/Box WS1 搭載フラッシュメモリの変更について
https://armadillo.atmark-techno.com/change_notification/2017-013

上記の MT28EW256ABA1LPC-0SIT というフラッシュメモリですが、
PC28F256P30BFE, PC28F128P30BF65A とはCFIのコマンドセットが異なり、
lock/unlockがありません。
ioctl() で MEMLOCK または MEMUNLOCK を発行すると、
戻り値は -1, errno は ENOTSUPP となります。

この場合、flash_unlock コマンドはエラーとなりますが、
MTDへの write() は可能です。

yousuke-mibu

2018年2月28日 16時43分

ご回答ありがとうございます。

flash_unlockなしでMTDを操作する事を確認できました。