Internal interrupts on the MPC107
Tom Rini
trini at kernel.crashing.org
Tue Jun 3 04:55:44 EST 2003
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:
>
> > [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.
>
> > [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.
>
> > 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/
More information about the Linuxppc-embedded
mailing list