EN JA
MK48TXX(4)
MK48TXX(4) FreeBSD Kernel Interfaces Manual MK48TXX(4)

名称

mk48txxMostek 時刻クロックドライバ

書式

#include < sys/eventhandler.h>
#include < sys/lock.h>
#include < sys/mutex.h>
#include < dev/mk48txx/mk48txxvar.h>

このドライバをカーネルにコンパイルするためには、次の行を利用者のカーネル設定ファイルに置きます:

device mk48txx

解説

mk48txx ドライバは、 Mostek の時刻クロックチップのシリーズモデルのためにバックエンド (back-end) です。それは、“ clock” KOBJ インタフェースで使用するために日時を検索して、設定するためのアクセス法を提供します。

このデバイスのインスタンスをシステムと結びつけるために、 mk48txx_attach() 関数と次のように定義されている mk48txx_softc 構造体を使用します:

int mk48txx_attach( device_t dev)

typedef uint8_t (*mk48txx_nvrd_t)(device_t dev, int off); 
typedef void (*mk48txx_nvwr_t)(device_t dev, int off, uint8_t v);

struct mk48txx_softc { 
 struct resource sc_res; 
 struct mtx sc_mtx; 
 eventhandler_tag sc_wet; 
 const char *sc_model; 
 bus_size_t sc_nvramsz; 
 bus_size_t sc_clkoffset; 
 u_int  sc_year0; 
 u_int  sc_flag; 
 mk48txx_nvrd_t sc_nvrd; 
 mk48txx_nvwr_t sc_nvwr; 
};
sc_res
デフォルトのアクセス法 (下記参照) を使用するとき、フロントエンドによって提供されなければならない、 (クロックレジスタを含む) チップの不揮発性のメモリにアクセスするのために使用されるバスリソースです。そうでなければ、このメンバは、オプションです。
sc_mtx
フロントエンドによって MTX_DEF で初期化されなければならない、 (クロックレジスタを含む) チップの不揮発性メモリにアクセスするとき使用されるハードウェアミューテックス。
sc_wet
チップによってサポートされ、マシン依存の機能の (下記参照) 一部として指定されるなら、 mk48txx_attach() 関数によって登録されるウォッチドック機能性のためのイベントハンドラタグ。
sc_model
このインスタンスが役に立つべきであるチップモデル。このメンバは、フロントエンドによって“mk48t02”, “mk48t08”, “mk48t18”または“mk48t59”の 1 つに設定されなければなりません。
sc_nvramsz
mk48txx_attach() 関数によって設定される、 Mostek チップの不揮発性 RAM のサイズ。
sc_clkoffset
mk48txx_attach() 関数によって設定される、 Mostek チップの制御レジスタへのオフセット。
sc_year0
フロントエンドによって設定されなければならない、クロックの‘year’カウンタと共に使用される year オフセット。一般的に、この値は、クロックデバイスがマウントされる、システム設定に依存します。例えば、 Sun Microsystems のマシンでは、仕様は、1968 年以来の年で表されるクロックの 2 桁の年があることです。
sc_flag
このフラグは、マシン依存の機能を指定するために使用されます。次のフラグがサポートされています:
MK48TXX_NO_CENT_ADJUST
clock_gettime() メソッド”で検索された結果の日付が、1970 年 1 月 1 日より前であるなら、ドライバは、チップの年 (year) カウンタが 21 世紀の実際に 1 年を表すと仮定します。このフラグを設定することによって、この振る舞いを覆すことができ、 mk48txx ドライバは、代わりにクロックの世紀をビットを順守します。
MK48TXX_WDOG_REGISTER
このフラグが設定されるとき、 mk48txx ドライバは、特定のチップモデルによってサポートされているなら、 watchdog(9) で定義されたインタフェースを通してウォッチドックとして登録します。
MK48TXX_WDOG_ENABLE_WDS
このフラグが設定されるとき、 mk48txx ドライバは、チップのウォッチドックの機能を有効にするとき、ウォッチドック操縦 (WDS) ビットを設定します。利用可能な、 (WDS ビットに関する詳しい情報のためのチップ文書を参照してください)。
sc_nvread
sc_nvwrite
これらのメンバは、それぞれクロックデバイスレジスタを書き込み、読み込みのためのアクセスメソッドを指定します。 NULL がアクセスメソッドとして渡されるとき、デフォルトは、まるでそれらが指定されたバスリソースを使用して直接マップされているかのように、チップメモリ (とクロックレジスタ) にアクセスすることです。

そうでなければ、ドライバは、それぞれ、読み込まれるか、または書き込まれるチップメモリ (または、クロックレジスタ) 位置のオフセット off を渡して、アクセスを実行するためにフロントエンドによって供給されたそれぞれの関数を呼び出します。

ハードウェア

次のモデルが、サポートされています:

Mostek MK48T02
Mostek MK48T08
Mostek MK48T18
Mostek MK48T59

関連項目

intro(4), watchdog(9)

歴史

mk48txx ドライバは、 NetBSD 1.5 で登場しました。それを含む最初の FreeBSD バージョンは、 FreeBSD 5.0 でした。

作者

mk48txx ドライバは、 Paul Kranenburg <pk@NetBSD.org>によって NetBSD のために書かれました。それは、 Thomas Moestl <tmm@FreeBSD.org>によって FreeBSD に移植され、後で Marius Strobl <marius@FreeBSD.org>によって改良されました。
December 25, 2009 FreeBSD