[Suzaku:01858] Re: Linuxの割り込みでハンドラがリソースを占有
Nobuaki Sugishima
email@hidden
2010年 7月 26日 (月) 10:29:56 JST
溝渕様
報告が遅れ申し訳ありません。
対象となるFPGAプログラムにバグがあり、確認作業が遅れていました。
ご指摘の内容をドライバ内の割り込みハンドラで実行したところ、正常に割り込みがかかるようになりました。:
static irqreturn_t
my_interrupt(int irq, void *dev_id, struct pt_regs *regs)
{
⇒ IntrStatus = __raw_readl(my_addr_isr);
dataSet();
⇒ __raw_writel(IntrStatus, my_addr_isr);
return IRQ_HANDLED;
}
⇒のステップを追加しました。
my_addr_isrは
static int __init my_init_module(void)
{
・・・・・・
// IntrStatus 格納アドレスを取得:0xF0FFD000 + 0x00000100 + 0x00000020
= 0xF0FFD00120
#define XPS_MY_INTR_CNTRL_SPACE_OFFSET (0x00000100)
#define XPS_MY_INTR_IPISR_OFFSET (XPS_MY_INTR_CNTRL_SPACE_OFFSET +
0x00000020)
my_addr_isr_offset = XPAR_MY_CNTLR_BASEADDR + XPS_MY_INTR_IPISR_OFFSET;
my_addr_isr = (u32 *)ioremap_nocache(my_addr_isr_offset,
sizeof(unsigned long));
・・・・・・
return ret;
}
であらかじめ確保してあります。
私の場合、interrupt_init(); をBoot段階で実行しているため、肝心の2ステップが抜けてしまいました。お騒がせしました。
本来別スレッドにすべきとは思いますが、関連事項を伺ってしまいます。
ドライバに大きなメモリエリアを割り当てたいと考え、BRAMおよびBRAM_VECの使用を思い立ちました。
ドライバ内からのアクセスが容易、高速が期待できるからです。
Linux起動後はベクトルテーブルも含めすべてのワークエリアはSDRAMに移行、この領域はまったくFreeであると考えたのですが、この認識は間違いでしょうか?。
----- Original Message -----
From: "mizo" <email@hidden>
To: "SUZAKU general discussion list" <email@hidden>
Sent: Wednesday, July 07, 2010 10:25 AM
Subject: [Suzaku:01833] Re: Linuxの割り込みでハンドラがリソースを占有
> 溝渕です。
>
> Nobuaki Sugishima wrote:
>> Linuxで割り込みに関するデバイスドライバが不調です。
>>
>> まずEDKの段階では割り込みは正常に動作しています。割り込み源は繰り返し
>> 10Hzのタイマーです。
>
> 追加した割り込みは、SILのタイマ割り込みを参考に追加したものですか?独自
> に追加したものですか?
>
> SILを参考にした場合は、ISR(Interrupt Status Register)に割り込み要因を書
> き込み、割り込みを止める処理を行なわなければなりません。
>
> これは、bbootのソースから確認することができます。
>
> int timer_interrupt_handler(void * baseaddr_p)
> {
> Xuint32 IntrStatus;
>
> IntrStatus = OPB_SIL00_mReadReg(XPAR_OPB_SIL00_0_BASEADDR,
> OPB_SIL00_INTR_ISR_OFFSET);
> slot();
> OPB_SIL00_mWriteReg(XPAR_OPB_SIL00_0_BASEADDR, OPB_SIL00_INTR_ISR_OFFSET,
> IntrStatus);
>
> return 0;
> }
>
> 上記コードでは、
>
> 1. OPB_SIL00_mReadReg()で割り込み要因を読み込む
> 2. OPB_SIL00_mWriteReg()で割り込み要因をISRに書き込む
>
> という処理を行なっています。この処理を行なわなければ、割り込みが入りっぱ
> なしになります。
>
> 以上ご確認ください。
>
> _______________________________________________
> suzaku mailing list
> email@hidden
> http://lists.atmark-techno.com/cgi-bin/mailman/listinfo/suzaku
>
suzaku メーリングリストの案内