NXPについてにはForlinx OK1046-C2ボードに非常によく似たカスタムボードがありますが、SJA1105Sも追加されています。
このボードでは、Debian 4.14.47 SMP preempt mod_unload modversions aarch64 を実行しています。
SJA1105 を適切に設定する方法がわかりません。設定方法は次のとおりです。間違いがあればご指摘ください。
このドライバは、/flexbuild/build/linux/linux/arm64/outputにあるカーネルを使用してコンパイルしました。
https://github.com/nxp-auto-linux/sja1105x
これは、ドライバがインストールされていること(および起動時に展開されていること)を示す出力です。
[ 4.897564] sja1105pqrs: ツリー外のモジュールをロードするとカーネルが汚染されます。
[ 5.655053] リンクされているモジュール: spidev(+) rtc_rx8010 qoriq_thermal sja1105pqrs(O)
このドライバが動作するには、/lib/firmware/sja1105p_1-3_cfg.binにあるバイナリが必要であると考えられます。
このバイナリを生成するために、以下のライブラリをコンパイルしました。
https://github.com/nxp-archive/openil_sja1105-tool
armv7 と aarch64 アーキテクチャでコンパイルしてみましたが、次のコマンドを使用したバイナリは同じ結果になりました。
sja1105-tool 設定デフォルト ls1021atsn
sja1105-tool config save standard.xml # 次にデバイスIDを変更し、
sja1105-tool config ロード standard.xml
[ 4001.293057] sja1105pqrs spi0.0:SJA1105P SPIドライバのロード
[ 4001.293222] sja1105pqrs spi0.0:検出されたデバイスID ae00030e()
[ 4001.293484] sja1105pqrs spi0.0:検出されたデバイスIDは無効です: 00000000
[ 4001.293615] sja1105pqrs spi0.0:検出されたデバイスIDは無効です: 00000000
[ 4001.293745] sja1105pqrs spi0.0:検出されたデバイスIDは無効です: 00000000
[ 4001.294562] sja1105pqrs spi0.0:設定ファイルにはスワップが必要ですが、エンディアンが正しくありません
[ 4001.316228] sja1105pqrs spi0.0:エラー: (スイッチ ID 0) LocalCRCfail=0 - DevID 不一致=0、GlobalCRCfail=1
[ 4001.325709] sja1105pqrs spi0.0:SJA1105P 構成に失敗しました
[ 4001.331461] sja1105pqrs spi0.0:ファームウェアのロードが -22 で失敗しました。
[ 4001.337566] sja1105pqrs: spi0.0 のプローブがエラー -22 で失敗しました
sja1105 を aarch64/armv8 アーキテクチャで動作させるには、どのような手順が必要ですか?これを説明するガイドや文書はありますか?どこで間違えたのでしょうか?
お客様は次のリンクから SJA1105 用のツールをダウンロードできます。
https://www.nxp.com.cn/webapp/sps/download/license.jsp?colCode=SJA1105X_CONFIG-GENTOOL&appType=file1...
このツールは sja1105*.hex ファイルを作成し、それを次のように hex2bin または python を使用して *.bin に変換できます。
intelhexからIntelHexをインポート
ih = IntelHex("examplePQRS_SJA1105PR.hex")
ih.tofile("sja1105.bin", フォーマット='bin')
お客様は NXP.com から OpenIL をダウンロードすることもできます。rootfs には sja1105.bin があります。