2011-11-16 25 views
8

私はu-bootを使って組み込みLinuxシステムを開発しています。 U-bootはconsole = bootargでttyS0シリアルポートのボーレートを設定しますが、ttyS [1-3]のデフォルトのボーレート(9600以外)も設定したいと思います。デフォルトのボーレート - linux/u-boot

このシステムでは、U-bootはデバイスツリー(dts/dtb)をカーネルに渡しますが、そこでのボーレートの設定は機能していないようです。

このシステムは、canyonlandsボード(ppc460ex)に似ています。

シリアルポートのデフォルトのボーレートを変更するには、u-boot、カーネル、またはデバイスツリーには何かありますか?

+0

これはプログラミングの質問ですか? – Gabe

+0

私はそう思っています...デフォルトのボーレートを変更することはカーネルモードかデバイスツリーソースへの変更です。私はちょうどそれを行う必要があるか分からない。 – dan6470

+0

対応するシリアルポートのボーレートを設定するttysを使用するのは "アプリケーション"です。あなたはttyS [1-3]を使って何を使いたいですか?それを使っているプログラムは何ですか? – Longfield

答えて

0

元のテキストでは、デバイス設定がカーネルによって無視されているようだと言われています。

このシステムでは、U-bootはデバイスツリー(dts/dtb)をカーネルに渡しますが、ボーレートを設定することは機能していないようです。

デバイスツリーで新しいボーレートをハードコーディングすると、ブートプロセス中に上書きされる可能性があります。デバイスツリーは、後続のブートプロセス中にカーネルに実際に渡される前に、u-bootによって更新されます。 u-bootソースコードでft_board_setup()を見てください。自分自身がu-bootのPowerPC 44Xブランチで動作しており、fdtコードはシリアルデバイスの「現在の速度」属性ではなく「クロック周波数」を更新します。作業しているブランチは、異なるコードベースを持つ可能性があります。

1

時には、以下のファイルの値が、DTSファイルで指定された情報よりも優先されます。 u-bootソースコードの下のファイルを確認してください

boot/include/configs/[board name].h -- used for specifying environment and CPU peripheral default value 
boot/common/[board name]_cmd_common.h