Develop NIC Driver
Posted: Tue May 03, 2011 4:45 pm
Hi all,
I am novice here. Currently, I am trying to develop a Ethernet driver for our teaching purpose OS, XINU. You can find some information here: http://en.wikipedia.org/wiki/Xinu. I met a lot of problems about developing driver for XINU. The biggest one is, I don't know how to handle the interrupt and it goes crazy!
Here is background information: The hardware I am dealing with is ICH10D/82567LM. My current progress is, when my XINU kernel startup, I can find NIC on PCI, reset the MAC and PHY, initialize it, setup RX, enable interrupt for NIC, and register the interrupt in my XINU kernel.
But here comes problem, whatever interrupt I enabled in IMS, I will contiguously be interrupted by all of them. Especially, I enable RXT0 interrupt, I will be interrupt by that very fast. I think that is because I didn't handle interrupts correctly. But the documents do not provide a lot information. And may be I still need to add some other support into XINU kernel. Currently, the tty using interrupt works fine with my XINU.
Can anyone give me some hints how to deal with that? I would really appreciate you help.
Thanks.
Cheng
I am novice here. Currently, I am trying to develop a Ethernet driver for our teaching purpose OS, XINU. You can find some information here: http://en.wikipedia.org/wiki/Xinu. I met a lot of problems about developing driver for XINU. The biggest one is, I don't know how to handle the interrupt and it goes crazy!
Here is background information: The hardware I am dealing with is ICH10D/82567LM. My current progress is, when my XINU kernel startup, I can find NIC on PCI, reset the MAC and PHY, initialize it, setup RX, enable interrupt for NIC, and register the interrupt in my XINU kernel.
But here comes problem, whatever interrupt I enabled in IMS, I will contiguously be interrupted by all of them. Especially, I enable RXT0 interrupt, I will be interrupt by that very fast. I think that is because I didn't handle interrupts correctly. But the documents do not provide a lot information. And may be I still need to add some other support into XINU kernel. Currently, the tty using interrupt works fine with my XINU.
Can anyone give me some hints how to deal with that? I would really appreciate you help.
Thanks.
Cheng