Re: Internal interrupts on the MPC107
From: Tom Rini <hidden>
Date: 2003-06-02 18:55:44
On Mon, Jun 02, 2003 at 12:46:37PM +0100, Adrian Cox wrote:
On Sat, 2003-05-31 at 00:56, Mark A. Greer wrote:quoted
[snip] My guess is that your board's fw (or early kernel init code) is setting it up with the correct value but on the other systems you mentioned, the fw doesn't (and the reset value of 0x00 is returned). Basically, if I'm interpreting the manual correctly, you probably need to do something other than count on the fw setting up that field in that reg correctly.For boards derived from the linuxppc_2_4_devel tree, everything works. I've now done kernel ports for several MPC107 based boards, all derived from that tree, which use the "new way" you describe below.quoted
[description of "old way" snipped]I think I may force the driver to run in polled mode on kernels which use the "old way". Many of them fail to initialise the vector in the EPIC.quoted
The "new way" of initializing the openpic uses the openpic_set_sources() routine which allows you to select just the vectors you want to initialize and assign them the IRQ values that you want (independent of their offset). Much nicer and it doesn't write to vectors/locations that you don't want written. The problem for an I2C driver is that the IRQ is now board specific. So what to do? Well, the board-specific file needs to initialize the I2C vector. Also, there has to be some mechanism for the board-specific file to tell your driver what the IRQ is. Maybe the best solution is to have the board-specific code set up the vector field in the IIVPR0 reg with the proper IRQ and then your driver won't need to change. Seems fairly clean but you'll have to hack the board-specific code of any boards that will use the I2C driver.If there's any interest I could tidy up the driver and submit it into linuxppc_2_4_devel along with a patch that collects MPC107 configuration into one place.
Please do. Don't forget to send the I2C driver to the I2C folks as well. -- Tom Rini http://gate.crashing.org/~trini/ ** Sent via the linuxppc-embedded mail list. See http://lists.linuxppc.org/