06 Sep, 2005

1 commit


29 Aug, 2005

2 commits

  • You can't call get_property() on a NULL node, so check if of_chosen is set
    in check_for_initrd().

    Signed-off-by: Michael Ellerman

    arch/ppc64/kernel/setup.c | 20 ++++++++++++--------
    1 files changed, 12 insertions(+), 8 deletions(-)
    Signed-off-by: Paul Mackerras

    Michael Ellerman
     
  • If both CONFIG_XMON and CONFIG_XMON_DEFAULT is enabled in the .config,
    there is no way to disable xmon again. setup_system calls first xmon_init,
    later parse_early_param. So a new 'xmon=off' cmdline option will do the right
    thing.

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

    Olaf Hering
     

25 Aug, 2005

1 commit

  • This patch puts back the export of machine_power_off() that was removed
    by some janitor as it's used for emergency shutdown by the G5 thermal
    control driver. Wether that driver should use kernel_power_off() instead
    is debatable and a post-2.6.13 decision. In the meantime, please commit
    that patch that fixes the driver for now.

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

    Benjamin Herrenschmidt
     

28 Jul, 2005

1 commit

  • PPC64 machines before Power4 need a segment table page allocated for each
    CPU. Currently these are allocated statically in a big array in head.S for
    all CPUs. The segment tables need to be in the first segment (so
    do_stab_bolted doesn't take a recursive fault on the stab itself), but
    other than that there are no constraints which require the stabs for the
    secondary CPUs to be statically allocated.

    This patch allocates segment tables dynamically during boot, using
    lmb_alloc() to ensure they are within the first 256M segment. This reduces
    the kernel image size by 192k...

    Tested on RS64 iSeries, POWER3 pSeries, and POWER5.

    Signed-off-by: David Gibson
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Gibson
     

27 Jul, 2005

1 commit

  • machine_restart, machine_halt and machine_power_off are machine
    specific hooks deep into the reboot logic, that modules
    have no business messing with. Usually code should be calling
    kernel_restart, kernel_halt, kernel_power_off, or
    emergency_restart. So don't export machine_restart,
    machine_halt, and machine_power_off so we can catch buggy users.

    Signed-off-by: Eric W. Biederman
    Signed-off-by: Linus Torvalds

    Eric W. Biederman
     

08 Jul, 2005

2 commits


26 Jun, 2005

1 commit

  • This patch implements the kexec support for ppc64 platforms.

    A couple of notes:

    1) We copy the pages in virtual mode, using the full base kernel
    and a statically allocated stack. At kexec_prepare time we
    scan the pages and if any overlap our (0, _end[]) range we
    return -ETXTBSY.

    On PowerPC 64 systems running in LPAR (logical partitioning)
    mode, only a small region of memory, referred to as the RMO,
    can be accessed in real mode. Since Linux runs with only one
    zone of memory in the memory allocator, and it can be orders of
    magnitude more memory than the RMO, looping until we allocate
    pages in the source region is not feasible. Copying in virtual
    means we don't have to write a hash table generation and call
    hypervisor to insert translations, instead we rely on the pinned
    kernel linear mapping. The kernel already has move to linked
    location built in, so there is no requirement to load it at 0.

    If we want to load something other than a kernel, then a stub
    can be written to copy a linear chunk in real mode.

    2) The start entry point gets passed parameters from the kernel.
    Slaves are started at a fixed address after copying code from
    the entry point.

    All CPUs get passed their firmware assigned physical id in r3
    (most calling conventions use this register for the first
    argument).

    This is used to distinguish each CPU from all other CPUs.
    Since firmware is not around, there is no other way to obtain
    this information other than to pass it somewhere.

    A single CPU, referred to here as the master and the one executing
    the kexec call, branches to start with the address of start in r4.
    While this can be calculated, we have to load it through a gpr to
    branch to this point so defining the register this is contained
    in is free. A stack of unspecified size is available at r1
    (also common calling convention).

    All remaining running CPUs are sent to start at absolute address
    0x60 after copying the first 0x100 bytes from start to address 0.
    This convention was chosen because it matches what the kernel
    has been doing itself. (only gpr3 is defined).

    Note: This is not quite the convention of the kexec bootblock v2
    in the kernel. A stub has been written to convert between them,
    and we may adjust the kernel in the future to allow this directly
    without any stub.

    3) Destination pages can be placed anywhere, even where they
    would not be accessible in real mode. This will allow us to
    place ram disks above the RMO if we choose.

    Signed-off-by: Milton Miller
    Signed-off-by: R Sharada
    Signed-off-by: Paul Mackerras
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    R Sharada
     

24 Jun, 2005

2 commits


23 Jun, 2005

4 commits

  • Currently reset and powerdown are not implemented on the Maple board,
    and attempting to do so will (incorrectly return). This implements
    the proper communication with the service processor, allowing correct
    reset and powerdown on the Maple board, by communicating with the
    service processor. If somehow it's unable to communicate with the
    service processor it will loop forever instead.

    Note that powerdown on the Maple will power down the CPUs, but not the
    fans or other board components due to hardware and firmware
    limitations.

    Signed-off-by: David Gibson
    Signed-off-by: Frank Rowand
    Signed-off-by: Paul Mackerras

    David Gibson
     
  • This patch corrects the printing of progress indicators to the op
    panel on p/iSeries ppc64 systems. Each discrete reference code should
    begin with a form feed char to clear the op panel, and the first and
    second lines should be separated with a CR/LF sequence. Padding with
    spaces is not necessary.

    Also, capitalize the hex value printed on the first line, to be
    consistent with the values printed by firmware, service processor,
    etc.

    It turns out that there's an ibm,form-feed property; this patch uses
    it in the pSeries-specific progress routine. This patch also checks
    the number of rows and the specific width of each row (the second row
    on power5 systems can actually hold 80 characters). If the displayed
    text is too wide for the physical display, it can be viewed in the ASM
    menus, or by selecting option 14 on the op panel.

    Signed-off-by: Mike Strosaker
    Signed-off-by: Paul Mackerras

    Mike Strosaker
     
  • This adds the basic support for running on BPA machines.
    So far, this is only the IBM workstation, and it will
    not run on others without a little more generalization.

    It should be possible to configure a kernel for any
    combination of CONFIG_PPC_BPA with any of the other
    multiplatform targets.

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

    Arnd Bergmann
     
  • pSeries and maple have almost the same code for calibrate_decr,
    and BPA would need yet another copy. Instead, I'm moving the
    code to arch/ppc64/kernel/time.c.

    Some of the related declarations were missing from header
    files, so I'm moving those as well.

    It makes sense to merge this with the pmac function of the
    same name, so we end up having just one implemetation for
    iSeries and one for Open Firmware based machines.

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

    Arnd Bergmann
     

22 Jun, 2005

1 commit

  • include/asm-ppc64/iSeries/LparData.h just included a whole lot of other files
    to declare variables that would be better declared in those other files. So,
    remove it. This will reduce that number of things needed to be included in
    most cases to access the relevant variables.

    Signed-off-by: Stephen Rothwell
    Signed-off-by: Linus Torvalds

    Stephen Rothwell
     

03 Jun, 2005

1 commit

  • Now that we have HZ=1000 there is much less of a need for decr_overclock.
    Remove it.

    Leave spread_lpevents but move it into iSeries_setup.c. We should look at
    making event spreading the default some day.

    Signed-off-by: Anton Blanchard
    Acked-by: Stephen Rothwell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Anton Blanchard
     

17 Apr, 2005

1 commit

  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds