記事 ID: 000073938 コンテンツタイプ: トラブルシューティング 最終改訂日: 2021/08/27

I2C ドライバーで複数の I2C コントローラーを有効にすると、U-boot がハングするのはなぜですか?

環境

    インテル® Quartus® II サブスクリプション・エディション
BUILT IN - ARTICLE INTRO SECOND COMPONENT
詳細

SOCEDS 16.1 (U-boot v2013.01.01) で、以下のように I2C ドライバー内で I2C マルチバス構成をオンにした場合:

#define CONFIG_I2C_MULTI_BUS 1

 

U-boot がハングアップし、以下のようにコンソールでメッセージが表示されるのを停止します。

U-Boot 2013.01.01-svn7578 (2019年2月1日 - 14:17:54)

CPU: Altera SOCFPGA プラットフォーム

ボード: soCFPGA Cyclone V ボードAltera

I2C:

 

CONFIG_I2C_MULTI_BUS構成がオンの場合、BSS セクションが初期化される前に、I2C ドライバー (designware_i2c.c) のbus_initialized静的変数が使用されます。
予期しない書き込み操作が発生し、システムがハングします。

解決方法

I2C ドライバー (designware_i2c.c) が U-boot v2015.01 で更新され、静的変数とCONFIG_I2C_MULTI_BUSの使用が削除されました。

U-boot でサポートされている複数の I2C コントローラーについては、U-boot v2015.01 以降のバージョンを使用してください。

関連製品

本記事の適用対象: 1 製品

インテル® プログラマブル・デバイス

1

このページのコンテンツは、元の英語のコンテンツを人力翻訳および機械翻訳したものが混在しています。この内容は参考情報および一般的な情報を提供するためものであり、情報の正確さと完全性を保証するものではありません。インテルは不正確な翻訳があった場合でもいかなる責任を負いません。このページの英語版と翻訳の間に矛盾がある場合は、英語版に準拠します。 このページの英語版をご覧ください。