10 Aug, 2007

1 commit

  • This patch moves affinity initialization code from spu_base.c to a
    new spu_management_of_ops function (init_affinity), which is empty
    in the case of PS3. This fixes a linking problem that was happening
    when compiling for PS3.
    Also, some small code style changes were made.

    Signed-off-by: Andre Detsch
    Signed-off-by: Geoff Levand
    Acked-by: Arnd Bergmann
    Signed-off-by: Paul Mackerras

    Andre Detsch
     

07 Feb, 2007

1 commit

  • Spu management ops in arch/platforms/cell/spu_priv1_mmio.h can be used
    commonly in of based platform. This patch separates spu management ops
    from native cell code and uses on celleb platform.

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

    Ishizaki Kou
     

04 Dec, 2006

1 commit

  • This adds a platform specific spu management abstraction and the coresponding
    routines to support the IBM Cell Blade. It also removes the hypervisor only
    resources that were included in struct spu.

    Three new platform specific routines are introduced, spu_enumerate_spus(),
    spu_create_spu() and spu_destroy_spu(). The underlying design uses a new
    type, struct spu_management_ops, to hold function pointers that the platform
    setup code is expected to initialize to instances appropriate to that platform.

    For the IBM Cell Blade support, I put the hypervisor only resources that were
    in struct spu into a platform specific data structure struct spu_pdata.

    Signed-off-by: Geoff Levand
    Signed-off-by: Arnd Bergmann

    Geoff Levand
     

25 Oct, 2006

1 commit

  • SPRN_SDR1 and the SPE's MFC SDR are hypervisor resources and
    are not accessible from a logical partition. This change adds an
    access wrapper.

    When running on bare H/W, the spufs needs to only set the SPE's MFC SDR
    to the value of the PPE's SPRN_SDR1 once at SPE initialization, so this
    change renames mfc_sdr_set() to mfc_sdr_setup() and moves the
    access of SPRN_SDR1 into the mmio wrapper. It also removes the now
    unneeded member mfc_sdr_RW from struct spu_priv1_collapsed.

    Signed-off-by: Masato Noguchi
    Signed-off-by: Geoff Levand
    Signed-off-by: Arnd Bergmann

    --
    Signed-off-by: Paul Mackerras

    Masato Noguchi
     

21 Jun, 2006

2 commits

  • This changes the hypervisor abstraction of setting cpu affinity to a
    higher level to avoid platform dependent interrupt controller
    routines. I replaced spu_priv1_ops:spu_int_route_set() with a
    new routine spu_priv1_ops:spu_cpu_affinity_set().

    As a by-product, this change eliminated what looked like an
    existing bug in the set affinity code where spu_int_route_set()
    mistakenly called int_stat_get().

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

    Geoff Levand
     
  • To support muti-platform binaries the spu hypervisor accessor
    routines must have runtime binding.

    I removed the existing statically linked routines in spu.h
    and spu_priv1_mmio.c and created new accessor routines in spu_priv1.h
    that operate indirectly through an ops struct spu_priv1_ops.
    spu_priv1_mmio.c contains the instance of the accessor routines
    for running on raw hardware.

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

    Geoff Levand