07 May, 2007

1 commit


07 Feb, 2007

1 commit


04 Dec, 2006

3 commits

  • This patch adds full cell iommu support (and iommu disabled mode).

    It implements mapping/unmapping of iommu pages on demand using the
    standard powerpc iommu framework. It also supports running with
    iommu disabled for machines with less than 2GB of memory. (The
    default is off in that case, though it can be forced on with the
    kernel command line option iommu=force).

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

    Jeremy Kerr
     
  • This patch completely refactors DMA operations for 64 bits powerpc. 32 bits
    is untouched for now.

    We use the new dev_archdata structure to add the dma operations pointer
    and associated data to struct device. While at it, we also add the OF node
    pointer and numa node. In the future, we might want to look into merging
    that with pci_dn as well.

    The old vio, pci-iommu and pci-direct DMA ops are gone. They are now replaced
    by a set of generic iommu and direct DMA ops (non PCI specific) that can be
    used by bus types. The toplevel implementation is now inline.

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

    Benjamin Herrenschmidt
     
  • Paul Mackerras
     

13 Nov, 2006

1 commit


01 Nov, 2006

1 commit

  • The 10Gigabit ethernet device drivers appear to be able to chew
    up all 256MB of TCE mappings on pSeries systems, as evidenced by
    numerous error messages:

    iommu_alloc failed, tbl c0000000010d5c48 vaddr c0000000d875eff0 npages 1

    Some experimentation indicates that this is essentially because
    one 1500 byte ethernet MTU gets mapped as a 64K DMA region when
    the large 64K pages are enabled. Thus, it doesn't take much to
    exhaust all of the available DMA mappings for a high-speed card.

    This patch changes the iommu allocator to work with its own
    unique, distinct page size. Although the patch is long, its
    actually quite simple: it just #defines a distinct IOMMU_PAGE_SIZE
    and then uses this in all the places that matter.

    As a side effect, it also dramatically improves network performance
    on platforms with H-calls on iommu translation inserts/removes (since
    we no longer call it 16 times for a 1500 bytes packet when the iommu HW
    is still 4k).

    In the future, we might want to make the IOMMU_PAGE_SIZE a variable
    in the iommu_table instance, thus allowing support for different HW
    page sizes in the iommu itself.

    Signed-off-by: Linas Vepstas
    Signed-off-by: Benjamin Herrenschmidt
    Acked-by: Olof Johansson
    Acked-by: Stephen Rothwell
    Signed-off-by: Paul Mackerras

    Linas Vepstas
     

23 Jun, 2006

1 commit

  • * git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc: (139 commits)
    [POWERPC] re-enable OProfile for iSeries, using timer interrupt
    [POWERPC] support ibm,extended-*-frequency properties
    [POWERPC] Extra sanity check in EEH code
    [POWERPC] Dont look for class-code in pci children
    [POWERPC] Fix mdelay badness on shared processor partitions
    [POWERPC] disable floating point exceptions for init
    [POWERPC] Unify ppc syscall tables
    [POWERPC] mpic: add support for serial mode interrupts
    [POWERPC] pseries: Print PCI slot location code on failure
    [POWERPC] spufs: one more fix for 64k pages
    [POWERPC] spufs: fail spu_create with invalid flags
    [POWERPC] spufs: clear class2 interrupt status before wakeup
    [POWERPC] spufs: fix Makefile for "make clean"
    [POWERPC] spufs: remove stop_code from struct spu
    [POWERPC] spufs: fix spu irq affinity setting
    [POWERPC] spufs: further abstract priv1 register access
    [POWERPC] spufs: split the Cell BE support into generic and platform dependant parts
    [POWERPC] spufs: dont try to access SPE channel 1 count
    [POWERPC] spufs: use kzalloc in create_spu
    [POWERPC] spufs: fix initial state of wbox file
    ...

    Manually resolved conflicts in:
    drivers/net/phy/Makefile
    include/asm-powerpc/spu.h

    Linus Torvalds
     

15 Jun, 2006

1 commit


09 Jun, 2006

1 commit

  • Make sure dma_alloc_coherent allocates memory from the local node. This
    is important on Cell where we avoid going through the slow cpu
    interconnect.

    Note: I could only test this patch on Cell, it should be verified on
    some pseries machine by those that have the hardware.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Paul Mackerras

    Christoph Hellwig
     

26 Apr, 2006

1 commit


21 Apr, 2006

1 commit


12 Jan, 2006

1 commit

  • There was a function declared for CONFIG_PSERIES which no longer exists
    and the two function declarations for CONFIG_ISERIES have been moved
    into an include file in platforms/iseries since they are defined and
    used only there.

    Signed-off-by: Stephen Rothwell
    Signed-off-by: Paul Mackerras

    Stephen Rothwell
     

09 Jan, 2006

2 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
     

23 Nov, 2005

1 commit


07 Nov, 2005

1 commit

  • Adds a new CONFIG_PPC_64K_PAGES which, when enabled, changes the kernel
    base page size to 64K. The resulting kernel still boots on any
    hardware. On current machines with 4K pages support only, the kernel
    will maintain 16 "subpages" for each 64K page transparently.

    Note that while real 64K capable HW has been tested, the current patch
    will not enable it yet as such hardware is not released yet, and I'm
    still verifying with the firmware architects the proper to get the
    information from the newer hypervisors.

    Signed-off-by: Benjamin Herrenschmidt
    Signed-off-by: Linus Torvalds

    Benjamin Herrenschmidt
     

14 Oct, 2005

1 commit


12 Oct, 2005

1 commit


06 Oct, 2005

1 commit

  • This brings in the ppc64 version of prom_init.c, prom.c and btext.c
    and makes them work for ppc32. This also brings in the new calling
    convention, where the first entry to the kernel (with r5 != 0) goes
    to the prom_init code, which then restarts from the beginning (with
    r5 == 0) after it has done its stuff.

    For now this also brings in the ppc32 version of setup.c. It also
    merges lmb.h.

    Signed-off-by: Paul Mackerras

    Paul Mackerras