我在弄S3C2410的CS8900网卡驱动,中断用的是外部中断EINT9,我的中断向量表的设置如下:
const static struct startup_intrinfo intrs[] = {
{ _NTO_INTR_CLASS_EXTERNAL, // vector base
32, // number of vectors
_NTO_INTR_SPARE, // cascade vector
0, // CPU vector base
0, // CPU vector stride
0, // flags
{ INTR_GENFLAG_LOAD_SYSPAGE, 0, &interrupt_id_s3c2410 },
{ INTR_GENFLAG_LOAD_SYSPAGE | INTR_GENFLAG_LOAD_INTRMASK, 0, &interrupt_eoi_s3c2410 },
&interrupt_mask_s3c2410, // mask callout
&interrupt_unmask_s3c2410, // unmask callout
0, // config callout
&s3c2410_int_base,
},
// EINT interrupt (4-7)
{ 32, // vector base
4, // number of vectors
4, // cascade vector
0, // CPU vector base
0, // CPU vector stride
0, // flags
{ 0, 0, &interrupt_id_s3c2410_ext_4_7 },
{ INTR_GENFLAG_LOAD_INTRMASK, 0, &interrupt_eoi_s3c2410_ext_4_7 },
&interrupt_mask_s3c2410_ext_4_7, // mask callout
&interrupt_unmask_s3c2410_ext_4_7, // unmask callout
0, // config callout
&s3c2410_eint_base,
},
// EINT interrupt (8-23)
{ 36, // vector base
16, // number of vectors
5, // cascade vector
0, // CPU vector base
0, // CPU vector stride
0, // flags
{ 0, 0, &interrupt_id_s3c2410_ext_8_23 },
{ INTR_GENFLAG_LOAD_INTRMASK, 0, &interrupt_eoi_s3c2410_ext_8_23 },
&interrupt_mask_s3c2410_ext_8_23, // mask callout
&interrupt_unmask_s3c2410_ext_8_23, // unmask callout
0, // config callout
&s3c2410_eint_base,
},
};
我加载网卡驱动的命令是:
io-net -dcrys8900 iorange=0x19000000,irq=37,mac=00e02991234e -ptcpip
加载以后,可以用ifconfig配置网卡,但是ping不通,不知道我的中断号设置的是不是对的,irq=37,请指点。