[Armadillo:05737] Re: tftpdlの動作について
nakai
email@hidden
2010年 8月 26日 (木) 20:02:42 JST
nakaiです。
>> ファームのサイズ(linux.bin.gzとromfs.img.gz)の合計がある程度以上に
>> なると、ほぼ確実にリセットする事から、ファームのダウンロード中に
>> WatchDogTimerが有効になっていて、Kickが行われていないような感じに
>> 見えます。
原因は、ダウンロード用のバッファが15Mbyteしかないというところでした。
17M以上のファイルをダウンロードするとhermit自身のメモリに上書きしていく
ため、アボートしていました。
不具合もありますが、TFTPによるファイルダウンロードは、
ファイルを正常にダウンロードできるまでFlashメモリへの書き込みを行わない
思想でつくられているため、15Mという制限を持たしていました。
みなさんArmadillo-440ですよね?
● 対策方法 (Armadillo-440の場合)
ダウンロードバッファを15Mから64Mに変更する方法。
hermit-at-2.0.3で説明します。
以下のパッチをあてます。
diff --git a/src/target/armadillo4x0/board.c b/src/target/armadillo4x0/board.c
index 25cb6e8..490e5bf 100644
--- a/src/target/armadillo4x0/board.c
+++ b/src/target/armadillo4x0/board.c
@@ -406,6 +406,7 @@ static struct page_table pt_list[] = {
{0x83800000, 0x83800000, 0x00100000, 0xc02}, /* for Ethernet */
{0x83900000, 0x83900000, 0x00600000, 0xc0e},
{0x83f00000, 0xfff00000, 0x00100000, 0xc0e}, /* for vector */
+ {0x84000000, 0x84000000, 0x04000000, 0xc0e},
/* Flash */
{0xa0000000, 0xa0000000, 0x08000000, 0xc02},
/* Internal SRAM */
@@ -556,7 +557,8 @@ static struct memory_map armadillo4x0_memory_map = {
.mmu_table = { RAM_ADDR(0x00004000), 0x00004000 },
.kernel = { RAM_ADDR(0x00008000), 0x007f8000 },
.initrd = { RAM_ADDR(0x00800000), 0x01800000 },
- .free = { RAM_ADDR(0x02000000), 0x00f00000 },
+ //.free = { RAM_ADDR(0x02000000), 0x00f00000 },
+ .free = { RAM_ADDR(0x04000000), 0x04000000 },
/* .hermit = { RAM_ADDR(0x03000000), 0x00800000 }, */
/* .fec_desc = { RAM_ADDR(0x03800000), 0x00100000 }, */
.gunzip = { RAM_ADDR(0x03900000), 0x00100000 },
ビルドします。
make armadillo4x0_defconfig
make
テスト用にビルド済みバイナリを準備しました。
http://www.atmark-techno.com/~yashi/loader-armadillo4x0-v2.0.3-free64mb.bin
一応、2010年9月1日までおいておきますが、その後消してしまうかもしれません。
また本不具合に関しましては、次回のアップデートで修正します。
お手数おかけしますがよろしくお願いします。
(2010/08/26 18:56), nakai wrote:
> nakaiです。
>
>> ファームのサイズ(linux.bin.gzとromfs.img.gz)の合計がある程度以上に
>> なると、ほぼ確実にリセットする事から、ファームのダウンロード中に
>> WatchDogTimerが有効になっていて、Kickが行われていないような感じに
>> 見えます。
>
> ありそうです。
> 調べてみます。
>
>
> (2010/08/26 17:50), TATENO Hiroyuki wrote:
>> 舘野です。
>>
>> setbootdevice tftp
>>
>> の設定で、同様の症状に遭遇しました。
>>
>> ファームをダウンロードしている最中にリブートしているような感じです。
>>
>>> リセットに関してですが、
>>> たぶんWatchDogによるリセットがかかっていると思います。
>>
>> そんな感じです。
>>
>>> いまのところ何が原因か推測できていません。
>>
>> ファームのサイズ(linux.bin.gzとromfs.img.gz)の合計がある程度以上に
>> なると、ほぼ確実にリセットする事から、ファームのダウンロード中に
>> WatchDogTimerが有効になっていて、Kickが行われていないような感じに
>> 見えます。
>>
>> ---
>> TETENO Hiroyuki
>>
>> _______________________________________________
>> armadillo mailing list
>> email@hidden
>> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
>>
>
> _______________________________________________
> armadillo mailing list
> email@hidden
> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/armadillo
>
armadillo メーリングリストの案内