[01: PATCH 0/7] Preparation for arch_reset changes

Russell King - ARM Linux linux at arm.linux.org.uk
Sun Nov 6 12:31:13 EST 2011


This series lays down the ground work for changing the way we handle the
reset (now called restart) handling on ARM.

As a result of these patches, we provide a new hook in the machine_desc
record called 'restart' which is pointed at a function to perform the
appropriate restart actions for the platform.  This is called directly
from machine_restart() with IRQs and caches on.

The 'soft_reboot' flag is changed to a more generic 'restart_mode'
character - which is used to initialize the default reboot mode (which
can be changed via the 'reboot=' command line parameter.)

'soft_restart(addr)' is added which performs a soft restart (iow,
orderly shutdown of caches and MMU and a jump to the passed address),
rather than the old way which separated the tear-down of the caches
and MMU from the code doing the jump.  This will be necessary to
resolve the ARMv6 and ARMv7 CPU restarting problems.

Finally, appropriate 'restart_mode' values are added to several
platforms which were hard-coding the restart mode by intercepting
the restarting via arm_pm_restart.

 arch/arm/include/asm/mach/arch.h                  |    9 +++--
 arch/arm/include/asm/system.h                     |    1 +
 arch/arm/kernel/machine_kexec.c                   |    4 +-
 arch/arm/kernel/process.c                         |   35 ++++++++++++--------
 arch/arm/kernel/setup.c                           |    7 +++-
 arch/arm/mach-clps711x/include/mach/system.h      |    2 +-
 arch/arm/mach-ebsa110/core.c                      |    2 +-
 arch/arm/mach-ebsa110/include/mach/system.h       |    2 +-
 arch/arm/mach-ep93xx/include/mach/system.h        |    2 -
 arch/arm/mach-footbridge/cats-hw.c                |    2 +-
 arch/arm/mach-footbridge/include/mach/system.h    |    2 +-
 arch/arm/mach-iop32x/include/mach/system.h        |    4 +--
 arch/arm/mach-iop33x/include/mach/system.h        |    2 +-
 arch/arm/mach-ixp2000/include/mach/system.h       |    2 -
 arch/arm/mach-ixp4xx/include/mach/system.h        |    2 +-
 arch/arm/mach-ks8695/include/mach/system.h        |    2 +-
 arch/arm/mach-lpc32xx/include/mach/system.h       |    3 --
 arch/arm/mach-mmp/include/mach/system.h           |    4 +-
 arch/arm/mach-mxs/system.c                        |    2 +-
 arch/arm/mach-pnx4008/include/mach/system.h       |    2 +-
 arch/arm/mach-pxa/mioa701.c                       |    1 +
 arch/arm/mach-pxa/reset.c                         |    2 +-
 arch/arm/mach-pxa/spitz.c                         |    3 ++
 arch/arm/mach-pxa/tosa.c                          |    1 +
 arch/arm/mach-rpc/include/mach/system.h           |    2 +-
 arch/arm/mach-s3c2410/include/mach/system-reset.h |    4 +-
 arch/arm/mach-s3c64xx/include/mach/system.h       |    2 +-
 arch/arm/mach-sa1100/include/mach/system.h        |    2 +-
 arch/arm/mach-shark/core.c                        |    1 -
 arch/arm/mach-shmobile/include/mach/system.h      |    2 +-
 arch/arm/mach-u300/include/mach/system.h          |    2 -
 arch/arm/mach-w90x900/include/mach/system.h       |    2 +-
 arch/arm/mm/idmap.c                               |    2 +-
 arch/arm/mm/nommu.c                               |    2 +-
 arch/arm/plat-mxc/system.c                        |    2 +-
 arch/arm/plat-spear/include/plat/system.h         |    2 +-
 36 files changed, 64 insertions(+), 59 deletions(-)




More information about the linux-arm-kernel mailing list