08 May, 2007

1 commit

  • To support MSI on MPIC we need a way to reserve and allocate hardware irq
    numbers, this patch implements an allocator for that purpose.

    New firmware platforms must define a "msi-available-ranges" property on their
    MPIC node for MSI to work. For U3/U4 we do a best-guess setup.

    Signed-off-by: Michael Ellerman
    Signed-off-by: Paul Mackerras

    Michael Ellerman
     

07 May, 2007

1 commit

  • This adds mpic to the system devices and implements suspend
    and resume for them. This is necessary to get interrupts for
    modules back to where they were before a suspend to disk.

    Signed-off-by: Johannes Berg
    Acked-by: Benjamin Herrenschmidt
    Signed-off-by: Paul Mackerras

    Johannes Berg
     

24 Apr, 2007

1 commit


07 Feb, 2007

1 commit

  • Allow more than the default 256 MPIC sources. Allocates a new flag
    (MPIC_LARGE_VECTORS) to be used by platform code when instantiating
    the mpic.

    I picked 11 bits worth right now since it would cover the number of
    sources on any hardware I have seen. It can always be increased later
    if needed.

    Signed-off-by: Olof Johansson
    Signed-off-by: Paul Mackerras

    Olof Johansson
     

04 Dec, 2006

2 commits

  • This patch applies on top of the MPIC DCR support. It makes the MPIC
    driver capable of a lot more auto-configuration based on the device-tree,
    for example, it can retreive it's own physical address if not passed as
    an argument, find out if it's DCR or MMIO mapped, and set the BIG_ENDIAN
    flag automatically in the presence of a "big-endian" property in the
    device-tree node.

    Signed-off-by: Benjamin Herrenschmidt
    Signed-off-by: Paul Mackerras

    Benjamin Herrenschmidt
     
  • This patch implements support for DCR based MPIC implementations. Such
    implementations have the MPIC_USES_DCR flag set and don't use the phys_addr
    argument of mpic_alloc (they require a valid dcr mapping in the device node)

    This version of the patch can use a little bif of cleanup still (I can
    probably consolidate rb->dbase/doff, at least once I'm sure on how the
    hardware is actually supposed to work vs. possible simulator issues) and
    it should be possible to build a DCR-only version of the driver. I need
    to cleanup a bit the CONFIG_* handling for that and probably introduce
    CONFIG_MPIC_MMIO and CONFIG_MPIC_DCR.

    Signed-off-by: Benjamin Herrenschmidt
    Signed-off-by: Paul Mackerras

    Benjamin Herrenschmidt
     

07 Oct, 2006

1 commit

  • Remove struct pt_regs * from all handlers.
    Also remove the regs argument from get_irq() functions.
    Compile tested with arch/powerpc/config/* and
    arch/ppc/configs/prep_defconfig

    Signed-off-by: Olaf Hering
    Signed-off-by: Paul Mackerras

    Olaf Hering
     

30 Aug, 2006

1 commit

  • This adds a new hardware information table for mpic. This enables
    the mpic code to deal with mpic controllers with different register
    layouts and hardware behaviours.

    This introduces CONFIG_MPIC_WEIRD. For boards with non standard mpic
    controllers, select CONFIG_MPIC_WEIRD and add its hardware information
    in the mpic_infos[] array.

    TSI108/109 PIC takes the first index of weird hardware information
    table. :) The table can be extended. The Tsi108/109 PIC looks like
    standard OpenPIC but, in fact, is different in register mapping and
    behavior.

    The patch does not affect the behavior of standard mpic. If
    CONFIG_MPIC_WEIRD is not defined, the code is essentially identical to
    the current code.

    [benh@kernel.crashing.org:
    This patch is a slightly cleaned up version of Zang Roy's support for
    the TSI108 MPIC variant. It also fixes up MPC7448_hpc2 to use the new
    version of the type macros and changes the way MPIC is selected in
    Kconfig to better match what is done for other system devices.
    ]

    Signed-off-by: Roy Zang
    Signed-off-by: Benjamin Herrenschmidt
    Signed-off-by: Paul Mackerras

    Zang Roy-r61911
     

03 Jul, 2006

2 commits

  • This adds the new irq remapper core and removes the old one. Because
    there are some fundamental conflicts with the old code, like the value
    of NO_IRQ which I'm now setting to 0 (as per discussions with Linus),
    etc..., this commit also changes the relevant platform and driver code
    over to use the new remapper (so as not to cause difficulties later
    in bisecting).

    This patch removes the old pre-parsing of the open firmware interrupt
    tree along with all the bogus assumptions it made to try to renumber
    interrupts according to the platform. This is all to be handled by the
    new code now.

    For the pSeries XICS interrupt controller, a single remapper host is
    created for the whole machine regardless of how many interrupt
    presentation and source controllers are found, and it's set to match
    any device node that isn't a 8259. That works fine on pSeries and
    avoids having to deal with some of the complexities of split source
    controllers vs. presentation controllers in the pSeries device trees.

    The powerpc i8259 PIC driver now always requests the legacy interrupt
    range. It also has the feature of being able to match any device node
    (including NULL) if passed no device node as an input. That will help
    porting over platforms with broken device-trees like Pegasos who don't
    have a proper interrupt tree.

    Signed-off-by: Benjamin Herrenschmidt
    Signed-off-by: Paul Mackerras

    Benjamin Herrenschmidt
     
  • This adapts the generic powerpc interrupt handling code, and all of
    the platforms except for the embedded 6xx machines, to use the new
    genirq framework.

    Signed-off-by: Benjamin Herrenschmidt
    Signed-off-by: Paul Mackerras

    Benjamin Herrenschmidt
     

21 Jun, 2006

1 commit

  • On Tue, Jun 20, 2006 at 02:01:26PM +1000, Benjamin Herrenschmidt wrote:
    > On Mon, 2006-06-19 at 13:08 -0700, Mark A. Greer wrote:
    > > MPC10x-style interrupt controllers have a serial mode that allows
    > > several interrupts to be clocked in through one INT signal.
    > >
    > > This patch adds the software support for that mode.
    >
    > You hard code the clock ratio... why not add a separate call to be
    > called after mpic_init,
    > something like mpic_set_serial_int(int mpic, int enable, int
    > clock_ratio) ?

    How's this?
    --

    MPC10x-style interrupt controllers have a serial mode that allows
    several interrupts to be clocked in through one INT signal.

    This patch adds the software support for that mode.

    Signed-off-by: Mark A. Greer
    --

    arch/powerpc/sysdev/mpic.c | 20 ++++++++++++++++++++
    include/asm-powerpc/mpic.h | 10 ++++++++++
    2 files changed, 30 insertions(+)
    --
    Signed-off-by: Paul Mackerras

    Mark A. Greer
     

09 Jan, 2006

3 commits

  • include/asm-ppc/ had #ifdef __KERNEL__ in all header files that
    are not meant for use by user space, include/asm-powerpc does
    not have this yet.

    This patch gets us a lot closer there. There are a few cases
    where I was not sure, so I left them out. I have verified
    that no CONFIG_* symbols are used outside of __KERNEL__
    any more and that there are no obvious compile errors when
    including any of the headers in user space libraries.

    Signed-off-by: Arnd Bergmann
    Signed-off-by: Paul Mackerras

    Arnd Bergmann
     
  • This adds some very basic support for the new machines, including the
    Quad G5 (tested), and other new dual core based machines and iMac G5
    iSight (untested). This is still experimental ! There is no thermal
    control yet, there is no proper handing of MSIs, etc.. but it
    boots, I have all 4 cores up on my machine. Compared to the previous
    version of this patch, this one adds DART IOMMU support for the U4
    chipset and thus should work fine on setups with more than 2Gb of RAM.

    Signed-off-by: Benjamin Herrenschmidt
    Signed-off-by: Paul Mackerras

    Benjamin Herrenschmidt
     
  • Cleanup the MPIC IO-APIC workarounds, make them a bit more generic,
    smaller and faster.

    Signed-off-by: Segher Boessenkool
    Signed-off-by: Benjamin Herrenschmidt
    Signed-off-by: Paul Mackerras

    Segher Boessenkool
     

20 Oct, 2005

1 commit


27 Sep, 2005

1 commit

  • Complete moving arch/ppc64/kernel/mpic.h,
    include/asm-ppc/reg.h, include/asm-ppc64/kdebug.h
    and include/asm-ppc64/kprobes.h
    Add arch/powerpc/platforms/Makefile and use it from
    arch/powerpc/Makefile
    Introduce OLDARCH temporarily so we can point back to
    the originating architecture

    Signed-off-by: Stephen Rothwell

    Stephen Rothwell
     

26 Sep, 2005

1 commit

  • This creates the directory structure under arch/powerpc and a bunch
    of Kconfig files. It does a first-cut merge of arch/powerpc/mm,
    arch/powerpc/lib and arch/powerpc/platforms/powermac. This is enough
    to build a 32-bit powermac kernel with ARCH=powerpc.

    For now we are getting some unmerged files from arch/ppc/kernel and
    arch/ppc/syslib, or arch/ppc64/kernel. This makes some minor changes
    to files in those directories and files outside arch/powerpc.

    The boot directory is still not merged. That's going to be interesting.

    Signed-off-by: Paul Mackerras

    Paul Mackerras