FAQ : Armadillo-500でLinuxが起動するとCON17 の CLKO が止まるのは何故ですか?

対象製品: Armadillo-500

ブートローダの状態では、CON17 の30番ピンから出ているクロックは、CPUのデフォルト状態なので動作していますが、Linux が起動した場合には、無効化されるため止まります。

CON17 の 30番ピンは、CPLD を通して、i.MX31 の CLKO ピンに接続されています。CLKOは、CPU の内部レジスタである「Clock Out Source Register (COSR)」によって制御されます。Reset時の COSR の初期値は、0x0000_0280 で、CLKOEN が有効を表わす「1」、CLKOUTDIVが 2の2乗を示す「010」、CLKOUTSELは、mpl_dpdgck_clkを選択する「0000」となっています。そのため、mpl_dpdgck_clkを4分周した波形が出力されています。詳しくは、i.MX31 Reference Manual を参照してください。

しかし、Linux が起動した後は、arch/arm/mach-mx3/clock.c::mxc_clocks_init()の中で呼ばれる、cko1_clk.disable(&cko1_clk); によって、止められます。