Hi, I want to deliver an interrupt from the microengines to the Strong core processor of the IXP1200. The core runs Linux. After reading through the source code of the microengine driver, I figure that each time the microengines are initialized, the ue driver registers an interrupt handler with the linux kernel for a microengine interrupt. There is also a function uEng_intConnect, that can be used to register a handler function with this driver. (For example the debug library uses the function to register some function). But this function is not exported to the outside world. If it were, then one would do something like write a module stacked on the ue module and use the uEng_intConnect function to register its own handler function. I cannot avoid not using the ue driver because I am using the MicroACE framework. What can be done so that somehow I can catch a microengine interrupt on the core processor? I don't know if I have been quite clear, but I will appreciate any help. Thanks! -- Shyamal Pandya Addr: 920 S Terrace Rd #102 Tempe AZ 85281 Phone: 1-480-96601982 _________________________________________________________________ Tired of spam? Get advanced junk mail protection with MSN 8. http://join.msn.com/?page=features/junkmail
Shyamal, I havent tried this, so dont know if it works or is correct. As you suggested, try adding an interface UE_REGISTER_CALLBACK to the ue.o driver which will multiplex all the register requests into a single UENG_MSG_INT (ueng.h file) interrupt. Then ue.o can register its own callback with mask as the logical OR of all the masks requested of it. When a UENG_MSG_INT is recd., the generic callback of the ue.o driver will demultiplex the interrupt into one of the user processes which registered interest for that interrupt. (this could be based on the mask that the process specified when it registered with the ue.o driver). You could simplify things a bit by NOT allowing applications to have overlapping masks. Then u could use a mechanism similar to what ue.o uses to call "breakpoint callbacks" in rs_udebug, to call your user-level callbacks. (polling and read ioctl operations on the driver) -- abhijeet On Sat, 22 Mar 2003, Shyamal Pandya wrote:
Hi, I want to deliver an interrupt from the microengines to the Strong core processor of the IXP1200. The core runs Linux.
After reading through the source code of the microengine driver, I figure that each time the microengines are initialized, the ue driver registers an interrupt handler with the linux kernel for a microengine interrupt. There is also a function uEng_intConnect, that can be used to register a handler function with this driver. (For example the debug library uses the function to register some function).
But this function is not exported to the outside world. If it were, then one would do something like write a module stacked on the ue module and use the uEng_intConnect function to register its own handler function. I cannot avoid not using the ue driver because I am using the MicroACE framework.
What can be done so that somehow I can catch a microengine interrupt on the core processor? I don't know if I have been quite clear, but I will appreciate any help. Thanks!
-- Shyamal Pandya
Addr: 920 S Terrace Rd #102 Tempe AZ 85281 Phone: 1-480-96601982
_________________________________________________________________ Tired of spam? Get advanced junk mail protection with MSN 8. http://join.msn.com/?page=features/junkmail
participants (2)
-
Abhijeet Joglekar
-
Shyamal Pandya