Armadilloフォーラム

CRCエラー回避対策のご相談

akio_tsuchiya

2020年3月5日 17時56分

「Armadillo-840の「NORフラッシュメモリ書き換え処理に関する仕様変更のお知らせ (2018年4月/Armadillo-800シリーズ対象)」 に対処するご相談」

として記述させていただいておりました。

しかし、原点に立ち返ると、「CRCエラー回避対策」のご相談として、商社を通して、

「CRCエラー回避対策」の有効な対策として、
「Armadillo-840の「NORフラッシュメモリ書き換え処理に関する仕様変更のお知らせ (2018年4月/Armadillo-800シリーズ対象)」
をいただいております。

本件は、「プラットフォームレベルでのエンハンス対応」が要求されます。

<ご質問1>
https://armadillo.atmark-techno.com/news/announce/20180409
本件は、プラットフォームレベルでのエンハンス対応が要求されます。

しかし、次の[既存環境ファイル]が、下記の様に修正されている事が判明いたしました。

 ⇒ 現時点で、追加モジュール及び修正が特定できない場合、既存環境ファイルに適用可能な、
   CRCエラー回避となるようなパッチファイル等は存在しないでしょうか?
   
[既存環境ファイル]
・Linux Linuxカーネル linux-3.4-at20.tar.gz
・AtmarkDist ユーザランド atmark-dist-20160927.tar.gz
・Hermit ブートローダ hermit-at-3.8.1-source.tar.gz

       -記-

[既存環境に対する変更]
①未変更ファイル
・Linux 37,669
・AtmarkDist 81,532
・Hermit 567

②内容が変更されているファイル
・Linux 13
・AtmarkDist 3
・Hermit 1

③タイムスタンプが変更されているファイル
・Linux 1,129
・AtmarkDist 182
・Hermit 0

④オリジナルから削除されているファイル
・Linux -10
・AtmarkDist -33
・Hermit 0

⑤オリジナルに追加されているファイル
・Linux 730
・AtmarkDist 2,365
・Hermit 210

以上

コメント

溝渕です。

> しかし、原点に立ち返ると、「CRCエラー回避対策」のご相談として、商社を通して、
>
> 「CRCエラー回避対策」の有効な対策として、
> 「Armadillo-840の「NORフラッシュメモリ書き換え処理に関する仕様変更のお知らせ (2018年4月/Armadillo-800シリーズ対象)」
> をいただいております。
:省略
>  ⇒ 現時点で、追加モジュール及び修正が特定できない場合、既存環境ファイルに適用可能な、
>    CRCエラー回避となるようなパッチファイル等は存在しないでしょうか?

申し訳ございませんが、パッチファイルとしては存在しません。前バージョン
のソースアーカイブとの差分をご自信でご確認していただくこととなります。

「CRCエラー回避対策」==「動作の安定性向上を目的とした、NORフラッシュメモリ書き換え処理に関する仕様変更」

と思います。以下ニュースにそれぞれのバージョンが記載されておりますので、
差分をご確認ください。

https://armadillo.atmark-techno.com/news/20180402/software-update-a800
https://armadillo.atmark-techno.com/news/announce/20180409

以前より、[CRCエラー回避対策のご相談]をさせていただいております、
マルタカテクノ 技術部 土屋明生と申します。

私の理解が至らず、もう一度、御教示ください。

https://armadillo.atmark-techno.com/news/announce/20180409

上記ページの 本文 先頭から2行目に、

「本仕様変更は、NORフラッシュメモリの変更後(2017年発行の変更通知によるもの)の製品には影響しません。」

と記載がありますが、この内容は、NOR型Flashメモリのハードウェアを利用すれば、
「以下の資源を適用した「Armadillo-840」であっても、CRCエラー対策が可能となる。」
と理解してもよいでしょうか?
<適用資源>
 ・ブートローダ
hermit-at-3.8.1-source.tar.gz
 ・Linuxカーネル
linux-3.4-at20.tar.gz
 ・AtmarkDist
atmark-dist-20160927.tar.gz

ご回答の程、何卒、宜しくお願い申し上げます。

> 溝渕です。
>
> > しかし、原点に立ち返ると、「CRCエラー回避対策」のご相談として、商社を通して、
> >
> > 「CRCエラー回避対策」の有効な対策として、
> > 「Armadillo-840の「NORフラッシュメモリ書き換え処理に関する仕様変更のお知らせ (2018年4月/Armadillo-800シリーズ対象)」
> > をいただいております。
> :省略
> >  ⇒ 現時点で、追加モジュール及び修正が特定できない場合、既存環境ファイルに適用可能な、
> >    CRCエラー回避となるようなパッチファイル等は存在しないでしょうか?
>
> 申し訳ございませんが、パッチファイルとしては存在しません。前バージョン
> のソースアーカイブとの差分をご自信でご確認していただくこととなります。
>
> 「CRCエラー回避対策」==「動作の安定性向上を目的とした、NORフラッシュメモリ書き換え処理に関する仕様変更」
>
> と思います。以下ニュースにそれぞれのバージョンが記載されておりますので、
> 差分をご確認ください。
>
> https://armadillo.atmark-techno.com/news/20180402/software-update-a800
> https://armadillo.atmark-techno.com/news/announce/20180409
>

以前より、[CRCエラー回避対策のご相談]をさせていただいております、
マルタカテクノ 技術部 土屋明生と申します。

私の理解が至らず、もう一度、御教示ください。

https://armadillo.atmark-techno.com/news/announce/20180409

上記ページの 本文 先頭から2行目に、

「本仕様変更は、NORフラッシュメモリの変更後(2017年発行の変更通知によるもの)の製品には影響しません。」

と記載がありますが、この内容は、NOR型Flashメモリのハードウェアを利用すれば、
「以下の資源を適用した「Armadillo-840」であっても、CRCエラー対策が可能となる。」
と理解してもよいでしょうか?
<適用資源>
 ・ブートローダ
hermit-at-3.8.1-source.tar.gz
 ・Linuxカーネル
linux-3.4-at20.tar.gz
 ・AtmarkDist
atmark-dist-20160927.tar.gz

ご回答の程、何卒、宜しくお願い申し上げます。

> 溝渕です。
>
> > しかし、原点に立ち返ると、「CRCエラー回避対策」のご相談として、商社を通して、
> >
> > 「CRCエラー回避対策」の有効な対策として、
> > 「Armadillo-840の「NORフラッシュメモリ書き換え処理に関する仕様変更のお知らせ (2018年4月/Armadillo-800シリーズ対象)」
> > をいただいております。
> :省略
> >  ⇒ 現時点で、追加モジュール及び修正が特定できない場合、既存環境ファイルに適用可能な、
> >    CRCエラー回避となるようなパッチファイル等は存在しないでしょうか?
>
> 申し訳ございませんが、パッチファイルとしては存在しません。前バージョン
> のソースアーカイブとの差分をご自信でご確認していただくこととなります。
>
> 「CRCエラー回避対策」==「動作の安定性向上を目的とした、NORフラッシュメモリ書き換え処理に関する仕様変更」
>
> と思います。以下ニュースにそれぞれのバージョンが記載されておりますので、
> 差分をご確認ください。
>
> https://armadillo.atmark-techno.com/news/20180402/software-update-a800
> https://armadillo.atmark-techno.com/news/announce/20180409
>

>NOR型Flashメモリのハードウェアを利用すれば、
ここは誤解されています。

Armadillo-840は当初からNOR型フラッシュメモリを搭載しています。
型番が異なる新旧2種類があるだけです。

-----
「本仕様変更は、NORフラッシュメモリの変更後(2017年発行の変更通知によるもの)の製品には影響しません。」

これは、書き方が分かりづらいのですが、先述の新フラッシュメモリの搭載のためソフトウェアの
変更を実施した際に「新フラッシュメモリ対応」と同時に「CRCエラー対策」の2つの変更を
カーネルとAtmarkDistに追加したことについて、やや面倒な書き方をしております。申し訳ございません。

先のニュースでは下記の2つの事を説明しておます。

「変更後(新フラッシュメモリ)の製品(に対応しているソフトウェアであれば)最初から仕様が新しい
ソフトウェアが書かれているので、仕様変更にはあたりません。(=影響なし)」

一方で、言外ですが

「旧フラッシュメモリ製品については新フラッシュメモリにも対応したソフトウェアに
更新することで仕様に影響(=CRCエラー対策追加による仕様の変化)があります」

という事です。

-----
> 「以下の資源を適用した「Armadillo-840」であっても、CRCエラー対策が可能となる。」
> と理解してもよいでしょうか?

いいえ、先述のソフトウェアの対応によってCRCエラーの対策をしているので、
ソフトウェアもセットで使う必要があります。

> linux-3.4-at20.tar.gz
> atmark-dist-20160927.tar.gz

これらは未対策です。
カーネルはat26から、AtmarkDistはv20180330から対応になっているので、
先のat_mizoの回答どおり自作でパッチするかバージョンアップが必要です。

対策バージョンに関するニュース(Block Unlockしない事による対策)
https://armadillo.atmark-techno.com/news/20180402/software-update-a800

すみません、後半間違いなので訂正します。

---------ここから-----------
「本仕様変更は、NORフラッシュメモリの変更後(2017年発行の変更通知によるもの)の製品には影響しません。」

これは、先述の新フラッシュメモリの場合はHWの特性により特段「CRCエラー対策」する
必要は無いため、影響無いという事です。

旧フラッシュメモリ搭載品で動作が変化するソフトウェアの実装となっています。

-----
> 「以下の資源を適用した「Armadillo-840」であっても、CRCエラー対策が可能となる。」
> と理解してもよいでしょうか?
> linux-3.4-at20.tar.gz

このカーネルのバージョンは新フラッシュメモリ搭載品対応ではありません。
カーネルコンフィグを変更してビルドするか
https://armadillo.atmark-techno.com/howto/2017_new-norflash

あるいは、at22をご利用ください
https://armadillo.atmark-techno.com/news/20170627/software-update-a800

CRCエラー対策については、先述のとおり新フラッシュメモリ版の
ハードウェアであれば対策済みとなります。

マルタカテクノ 技術部 土屋です。
早速のご回答、誠に感謝いたします。

理解が乏しく、大変恐縮なのですが、次の2点について確認させてください。

<適用資源>
・ブートローダ :hermit-at-3.8.1-source.tar.gz
・Linuxカーネル :linux-3.4-at20.tar.gz
・AtmarkDist :atmark-dist-20160927.tar.gz

<Armadillo-840用参照URL>
 https://armadillo.atmark-techno.com/howto/2017_new-norflash

<質問1>
 ・弊社では、上記に示す<適用資源>を弊社用に一部修正して弊社製品に組み込んでいます。
  この場合、「Linuxカーネル :linux-3.4-at20.tar.gz」のままでも、<Armadillo-840用参照URL>に
  示す通り、「カーネルコンフィグを変更」して「ソースからビルド」し直せば、
  「CRC対策が実施される」と考えてよいでしょうか?

<質問2>
・上記の<Armadillo-840用参照URL>には、以下の注意書きが文末に記載されています。
 「ブートローダ―(hermit)は、新フラッシュメモリ対応版を適用してください。」

 弊社で利用している「ブートローダ :hermit-at-3.8.1-source.tar.gz」は、
 「新フラッシュメモリ対応版」と考えてよいでしょうか?

誤解との程、何卒、宜しくお願い申し上げます。

> すみません、後半間違いなので訂正します。
>
> ---------ここから-----------
> 「本仕様変更は、NORフラッシュメモリの変更後(2017年発行の変更通知によるもの)の製品には影響しません。」
>
> これは、先述の新フラッシュメモリの場合はHWの特性により特段「CRCエラー対策」する
> 必要は無いため、影響無いという事です。
>
> 旧フラッシュメモリ搭載品で動作が変化するソフトウェアの実装となっています。
>
> -----
> > 「以下の資源を適用した「Armadillo-840」であっても、CRCエラー対策が可能となる。」
> > と理解してもよいでしょうか?
> > linux-3.4-at20.tar.gz
>
> このカーネルのバージョンは新フラッシュメモリ搭載品対応ではありません。
> カーネルコンフィグを変更してビルドするか
> https://armadillo.atmark-techno.com/howto/2017_new-norflash
>
> あるいは、at22をご利用ください
> https://armadillo.atmark-techno.com/news/20170627/software-update-a800
>
> CRCエラー対策については、先述のとおり新フラッシュメモリ版の
> ハードウェアであれば対策済みとなります。

> <質問1>
>  ・弊社では、上記に示す<適用資源>を弊社用に一部修正して弊社製品に組み込んでいます。
>   この場合、「Linuxカーネル :linux-3.4-at20.tar.gz」のままでも、<Armadillo-840用参照URL>に
>   示す通り、「カーネルコンフィグを変更」して「ソースからビルド」し直せば、
>   「CRC対策が実施される」と考えてよいでしょうか?

ハードウェアとして新フラッシュメモリを使っているのであれば、その通りです。

>  弊社で利用している「ブートローダ :hermit-at-3.8.1-source.tar.gz」は、
>  「新フラッシュメモリ対応版」と考えてよいでしょうか?
いいえ、先程書き漏らしました。ブートローダーの対応は3.9.0からです。

また、その後に書き込み速度を高速化する修正が3.11.0で追加されているので、
3.11.0を使うことをお勧めします。どうか宜しくお願いいたします。

ご回答、心より感謝いたします。
少し、CRC対策の兆しが見えてまいりました。

①hermitの修正は極わずかではありますが、修正を行っています。
  オリジナルと比較して、内容変更されているソースは、僅か1本です。
  しかし、フォルダが9つ追加され、合計210本のソースファイルが格納されています。

  先ずは、こちらの内容を解析し、改めて、後日、ご質問させていただきます。

②今回の開発では、LinuxやAtmarkDist内のソースファイルを書き換えています。
  これらについても、弊社で内容を解析し、ご相談させていただきます。

③気になるのはQTの置換えです。
  QTは、適用されているQT5.4ファイルを全て消して、QT5.4.2のモジュールを
  上書きしてバージョンを入れ替えているのですが、この場合、CRC対策が
  無効化してしまう事は無いでしょうか?
  (当時は、同じQT5系を置き換える為には、この方法しかなかったと伺っています。)
  もし、注意点やアドバイスがあれば幸いです。

今後とも、何卒、宜しくお願い申し上げます。
> > <質問1>
> >  ・弊社では、上記に示す<適用資源>を弊社用に一部修正して弊社製品に組み込んでいます。
> >   この場合、「Linuxカーネル :linux-3.4-at20.tar.gz」のままでも、<Armadillo-840用参照URL>に
> >   示す通り、「カーネルコンフィグを変更」して「ソースからビルド」し直せば、
> >   「CRC対策が実施される」と考えてよいでしょうか?
>
> ハードウェアとして新フラッシュメモリを使っているのであれば、その通りです。
>
>
> >  弊社で利用している「ブートローダ :hermit-at-3.8.1-source.tar.gz」は、
> >  「新フラッシュメモリ対応版」と考えてよいでしょうか?
> いいえ、先程書き漏らしました。ブートローダーの対応は3.9.0からです。
>
> また、その後に書き込み速度を高速化する修正が3.11.0で追加されているので、
> 3.11.0を使うことをお勧めします。どうか宜しくお願いいたします。

> ③気になるのはQTの置換えです。
>   QTは、適用されているQT5.4ファイルを全て消して、QT5.4.2のモジュールを
>   上書きしてバージョンを入れ替えているのですが、この場合、CRC対策が
>   無効化してしまう事は無いでしょうか?

問題無いと思います。

と言うより、AtmarkDistに追加されているCRCエラー対策の変更は
「旧フラッシュメモリ搭載型番」に対するもので、
元よりHWの特性上対策済みとなっている新フラッシュメモリには
何の影響も与えません。

従って、「新フラッシュメモリ搭載型番のみを利用」する限りは、以前
から利用されている「上書きしてバージョンを入れ替えている」ものを
そのままご利用頂けます。

弊社よりAtmark様のPertnerとなっている会社に開発を委託し、Armadillo-840のユーザープログラム開発を
 委託したところ、SGXエラー及びCRCエラーが発生いたしました。

 これらの対策を行うべく、委託先にもご協力を戴き、対策案を検討しているのですが、以下の理由により、
 OSのバージョンアップに支障を来たしています。

  ① 御社のオリジナル資源(AtmarkDist、Hermit、Linux)のソースが書き換えられている。
  ② 御社のオリジナル資源(AtmarkDist、Hermit、Linux)に対し、複数のファイルが追加適用されている。

「この内容から、OSが書き換えられていると、判断できる内容でしょうか?」
あくまで推測ですが、LCD周りのバッファ、解像度、同期周波数等に手が加えられているものと
思われますが、この判断は、正しいでしょうか?

  また、前任の方が、現在、他の都道府県に長期出張中で、過去の開発内容を確認させていただく事が出来ない為、
  御社のオリジナルソースに対し、明らかな修正が加えられている、次に示す17本のファイル修正内容をアドバイス
  いただけないでしょうか?

個別にご回答いただく事が難しい場合は、テレビ会議形式でのディスカッションは可能でしょうか?

何卒、宜しくお願い申し上げます。

> > ③気になるのはQTの置換えです。
> >   QTは、適用されているQT5.4ファイルを全て消して、QT5.4.2のモジュールを
> >   上書きしてバージョンを入れ替えているのですが、この場合、CRC対策が
> >   無効化してしまう事は無いでしょうか?
>
> 問題無いと思います。
>
> と言うより、AtmarkDistに追加されているCRCエラー対策の変更は
> 「旧フラッシュメモリ搭載型番」に対するもので、
> 元よりHWの特性上対策済みとなっている新フラッシュメモリには
> 何の影響も与えません。
>
> 従って、「新フラッシュメモリ搭載型番のみを利用」する限りは、以前
> から利用されている「上書きしてバージョンを入れ替えている」ものを
> そのままご利用頂けます。

ファイル ファイルの説明
OSのソース修正に対するアドバイスのお願い.pdf 本文に示す内容の、修正部分の抜粋です。

> 「この内容から、OSが書き換えられていると、判断できる内容でしょうか?」
> あくまで推測ですが、LCD周りのバッファ、解像度、同期周波数等に手が加えられているものと
> 思われますが、この判断は、正しいでしょうか?

見た所そのように見えます。他にはeurasia_km(SGXグラフィックコアのデバイスドライバ)に
変更を加えているようです。これはSGX停止問題へのワークアラウンドだと思いますが、
いくつか当社でコメントしたものを元に独自に実装されているようですが、かなりアレンジ
されているので詳細は実装された方に確認していただいた方がいいです。

CRCエラー対策のための新フラッシュメモリ対応ですが、
結局これらのkernelの変更は先の新フラッシュメモリとは無関係な修正なので、先の新フラッシュメモリ対応の
コンフィグを有効にしてビルドしても、これらの変更と影響しあうものは無いと思います。

ユーザーランドのついても同様にフラッシュメモリの件とは無関係なので、そのまま使っても
問題ありません。

hermitの変更1箇所についてはLCDCのクロック周波数を変更していますが、こちらではLCDパネルの
仕様はわかりませんが恐らく標準のクロック設定では分周できない周波数のLCDパネルをお使いなの
だと思います。これはSGXの問題とは恐らく無関係なので、単にHWの仕様都合で必要なのでしょう。
従って新フラッシュメモリ対応のhermit v3.11.0を利用する際に、この1行の変更だけ加えてビルド
し直すと良いと思います。

>   また、前任の方が、現在、他の都道府県に長期出張中で、過去の開発内容を確認させていただく事が出来ない為、
>   御社のオリジナルソースに対し、明らかな修正が加えられている、次に示す17本のファイル修正内容をアドバイス
>   いただけないでしょうか?

お客様が変更された箇所について当社で見解を述べる事はできませんが、SGXまわりの対処を散発的に
実施しているように見えます。実装された方への確認をしていただきたく思います。

マルタカテクノ 土屋です
私の乱筆/乱文への心を込めたご返信、本当に感謝いたします。

1.SGXエラー対策の件
  変更点を全て抜き出して、徹底調査いたします。
  ⇒当時Qt5.4.1を使っている為、Qt5.9以降の技術的な変更内容を使えなかった物と推測します。
   その為、LCDの標準出力1つに、HDMIとUSBコンソールの標準出力のGRAM領域を割り付け、
   直接、イメージファイルを書き込んで、重ね合わせ表示を実現しているように思えます。
   (本来はOut-of-Treeの拡張を推奨されていますが、実際は、かなり幹をかじっている認識です。)

   先ずは、該当箇所を特定し、改めて、ご相談を行います。
   次に、Qt5.9以降では、大きな技術改革があり、このような分割を行わずとも実現できるように
   なったのではないかと思われます。
   (Qt5.9の発表時期から推測し、まだ、利用できなかった物と思われます。)
   この部分について、こちらでもう少し深堀した後、改めてアドバイスをいただければ幸いです。

2.Armadillo-840でサポートしているQtバージョンについて
   Armadillo-840では、Qtのどのバージョンまで導入可能なのでしょうか?
   Qtの売り文句としては、バイナリ互換がありますが、御社としてサポートいただけるバージョンを
   ご教示いただければ幸いです。
   (恐らく、Linuxのバージョン毎に異なる物と思われますので、at20と最新版でご教示いただければ幸いです。)

   もし導入するQtのバージョンを変える事で、標準的な開発に戻すことができれば、SGX対策も行いやすくなると
   思われるのですが、現時点では、上記の様に無理やり3レイヤを作り出し、
   その中の1つでは、H.264形式の動画ファイルを再生しています。
   SGXの発生頻度から、当時は場当たり的な対策もあるものと思われます。
   この部分はしっかりと調査し確認したいと思います。

3.Hermitの改造
  短期戦では、こちらがカギとなります。
  しかし、今回の解析で2つの大きな対策すべき項目が見えてまいりました。
  (1) CRCエラー対策 
      ・こちらは、Hermitのみを修正しハード刷新に頼ってCRCエラーを行う。
       ⇒しかし、この方法ではSGXエラーの根本原因は解消されない可能性がある。
  (2) SGXエラー対策
      ・既存ソースの深堀調査と、Qtのバージョンを考慮した、Out-of-Tree化への模索が必要。
       ⇒先ずは、幹をかじらない開発に軌道修正を試みます。

ご回答、心より感謝いたします。

> > 「この内容から、OSが書き換えられていると、判断できる内容でしょうか?」
> > あくまで推測ですが、LCD周りのバッファ、解像度、同期周波数等に手が加えられているものと
> > 思われますが、この判断は、正しいでしょうか?
>
> 見た所そのように見えます。他にはeurasia_km(SGXグラフィックコアのデバイスドライバ)に
> 変更を加えているようです。これはSGX停止問題へのワークアラウンドだと思いますが、
> いくつか当社でコメントしたものを元に独自に実装されているようですが、かなりアレンジ
> されているので詳細は実装された方に確認していただいた方がいいです。
>
> CRCエラー対策のための新フラッシュメモリ対応ですが、
> 結局これらのkernelの変更は先の新フラッシュメモリとは無関係な修正なので、先の新フラッシュメモリ対応の
> コンフィグを有効にしてビルドしても、これらの変更と影響しあうものは無いと思います。
>
> ユーザーランドのついても同様にフラッシュメモリの件とは無関係なので、そのまま使っても
> 問題ありません。
>
> hermitの変更1箇所についてはLCDCのクロック周波数を変更していますが、こちらではLCDパネルの
> 仕様はわかりませんが恐らく標準のクロック設定では分周できない周波数のLCDパネルをお使いなの
> だと思います。これはSGXの問題とは恐らく無関係なので、単にHWの仕様都合で必要なのでしょう。
> 従って新フラッシュメモリ対応のhermit v3.11.0を利用する際に、この1行の変更だけ加えてビルド
> し直すと良いと思います。
>
> >   また、前任の方が、現在、他の都道府県に長期出張中で、過去の開発内容を確認させていただく事が出来ない為、
> >   御社のオリジナルソースに対し、明らかな修正が加えられている、次に示す17本のファイル修正内容をアドバイス
> >   いただけないでしょうか?
>
> お客様が変更された箇所について当社で見解を述べる事はできませんが、SGXまわりの対処を散発的に
> 実施しているように見えます。実装された方への確認をしていただきたく思います。
>

マルタカテクノ 土井様より以下の質問を頂きました。
お手数ではございますが、ご回答をお願い致します。

上記フォーラムのご回答では、
・NOR型Flashメモリの型名が明記されていない為、
 対策の有効性が確認できません。

よって、以下の内容をAtmark社様にご確認ください。

[回答期限]
・2020年9月28日迄にご回答をいただけないでしょうか?

[質問内容]
・有効となるCRCエラー対策の組合せを確認させてください。

 現在、Armadillo-840に採用されているNOR型Flashメモリには、
 次の2種類が存在します。

 (1) PC28F00AP33BFA
 (2) MT28EW01GABA1LPC-0SIT

 もし、有効なCRC対策を行う場合、Armadillo-840の動作資源として、
 以下の資源を利用する前提で、
 ・hermit-at-3.11.0-source.tar.gz
 ・atmark-dist-20160927.tar.gz
 ・linux-3.4-at20.tar.gz
 上記の(1)及び(2)の何れを利用しても、
 有効なCRC対策は実現可能と考えてよいでしょうか?

 或は、上記の(2)のみが、有効なCRC対策の前提条件となるのでしょうか?

 無論、コンパイル時のパラメータは、御教示いただきました以下の設定を
 実施いたします。

 https://armadillo.atmark-techno.com/howto/2017_new-norflash

以上、何卒、宜しくお願い致します。

at_akihito.irie

2020年9月25日 10時20分

入江です。

>  上記の(1)及び(2)の何れを利用しても、
>  有効なCRC対策は実現可能と考えてよいでしょうか?
いいえ。(1)はご提示の動作資源では有効なCRCエラー対策がなされません。

>  或は、上記の(2)のみが、有効なCRC対策の前提条件となるのでしょうか?
こちらのご認識が正しいです。

入江様
マルタカテクノ 土屋です

早速のご回答、誠に感謝いたします。

[御社からのご回答]に対する疑問があり、払拭させてください。
(大変失礼な質問ですが、何卒、ご容赦ください。)

今回の焦点の(1)と(2)は、同じNOR型フラッシュメモリです。
この場合、以下の疑問が浮上します。

 ①(1)と(2)は、電気的特性が異なるので、
  (1)+Hermitの入替だけでは不十分なのか?

 ②或いは、Atmark様内で、(2)と新Hermitの組合せは
  動作試験しているが、(1)と新Hermitの組合せは
  動作試験していないので、認められないのか?

上記①と②のどちらでしょうか?

> 入江です。
>
> >  上記の(1)及び(2)の何れを利用しても、
> >  有効なCRC対策は実現可能と考えてよいでしょうか?
> いいえ。(1)はご提示の動作資源では有効なCRCエラー対策がなされません。
>
> >  或は、上記の(2)のみが、有効なCRC対策の前提条件となるのでしょうか?
> こちらのご認識が正しいです。

at_akihito.irie

2020年9月30日 11時32分

土屋様

入江です。

(2)はハードウェアでCRCエラー対策がなされています。
そのためカーネルのビルド時にドライバを有効にするコンフィグレーションさ
えすれば対策前のカーネル、ユーザーランドでもCRCエラー対策済みとして使
用することができるようになっております(Hermitは対策済みバージョンであ
る必要があります)。

対して(1)はハードウェアでCRCエラー対策がなされていないため、ソフトウェ
アでの対策が必要となります。
その「ソフトウェアでの対策」がHermit、Linuxカーネル、ユーザーランドに
施されているため、(1)を使用する場合はHermit、Linuxカーネル、ユーザーラ
ンド3つともCRCエラー対策済みのバージョンにする必要があります。

土井様より以下の質問を頂きました。
お手数ではございますが、ご回答をお願い致します。

なお、添付ファイル(動画)は個別にお送りさせて頂きたく。
お手数ですが、添付ファイル(動画)の送付先をご連絡ください。
----------------------------------------------
2.新たな内容が発生しています。

添付のファイルを再生いただきますと分かりますが、
 ①起動時の動画ファイルは正しく表示されている。
 ②画像ファイルが横方向で左右2分の1づつに分割され、
  左右逆に表示されている。

これは、過去に納品いただきました
 (1) hermit-at-3.8.1 を hermit-at-3.11.0 に変更し
 (2) atmark-dist-20160927 そのまま
 (3) linux-3.4-at20 そのまま
上記の状態で、過去のプログラムを起動させたところ、
上記②に示す通り、イメージ画像が画面半分ズレた状態で
表示されました。

動画データは、個別対応の最終レイヤに表示し、
イメージ画像等は、OS標準のレイヤに表示されます。

恐らく、Hermitを更新した事で、AtmarkDistやLinuxのパラメタ等も
同期をとって修正する部分があるのではないでしょうか?

ご教示ください。
------------------------------------------------------

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

at_akihito.irie

2020年9月30日 15時17分

yoshio_tokumo 様

入江です。

動画ファイルの件ですが、
>  ①起動時の動画ファイルは正しく表示されている。
>  ②画像ファイルが横方向で左右2分の1づつに分割され、
>   左右逆に表示されている。
こちらのご説明で状況が把握できましたので、送って頂く必要はございません。

弊社で行なったhermit v3.8.1 から v3.11.0 への変更はNOR型フラッシュメモ
リの移行対応関連のみですので、カーネル起動後の動作に影響を与えることは
考えにくいです。

つきましては、以下の2点をご確認ください。

1. 旧NORフラッシュメモリ搭載のArmadillo-840上で、カーネルとユーザーラ
ンドはそのまま、hermitのみをv3.8.1に戻し、同様の現象が再現されます
でしょうか

2. hermitにマルタカテクノ様の方で変更を加えられていたと存じますが、そ
れらの変更はv3.11.0に漏れなく組み込まれていますでしょうか

よろしくお願いいたします。

本件について追加で質問がございます。
お手数ですが、ご回答をお願いいたします。
なお、10月8日(木)までにご回答をいただけますようお願いいたします。

【質問】
CRCエラーは、どのような時(状況下)に、発生するのでしょうか?
或いは、どのような時に発生することが想定されているのでしょうか?
例えば、
 ・電源をOFFした時
 ・NOR-Flashに、データを書込む時に電源をOFFにした時
 ・NOR-Flashから、データを読み込む時に電源をOFFにした時
 ・電源ラインにノイズが印加された時
 等々
が考えられると思います。

ソフトによる対策だけではなく、ハード(回路)面からも対策が出来るのでは?と
考えられるため。このような質問をさせていただきました。

at_akihito.irie

2020年10月7日 12時08分

yoshio_tokumo 様

入江です。

いただいたご質問につきまして、本件のご関係者の方々には弊社からご報告さ
せていただいていると存じておりますが、ご確認いただけますでしょうか。

よろしくお願いいたします。