2

CANコントローラーを起動するには、LinuxカーネルにメモリとIRQリソースを提供する必要があります。それらを取得する方法がわかりません。

以下は、入力する必要のある構造です。たとえば、これはランタイムクロック用ですが、CANコントローラーが必要です。両方とも同じボード上にあり、RTクロック(および他のすべてのデバイス)には定数がありますが、私のCANチップにはありません。サブジェクトチップドライバのコード(sp_probe()関数)を見ると、同じタイプのリソースが必要であることがわかります。

struct resource tegra_rtc_resources[] = {
    [0] = {
        .start = ???,
        .end = ???,
        .flags = IORESOURCE_MEM,
    },
    [1] = {
       .start = ???,
        .end = ???,
        .flags = IORESOURCE_IRQ,
    },
};

すべての「プラットフォーム」デバイスは、システム関数platform_add_devices()を介して「ボードドライバー」からリソースとともに追加されます。問題は、CANチップではなく、ボード上のすべてのデバイス(UART、RTC、I2C、NANDなど)を初期化することです。デバイスが追加された後、この情報をデバイスドライバーに渡すことができます。CANチップドライバ自体はカーネルコードに存在します。

4

0 に答える 0