1. 15 Oct, 2021 1 commit
  2. 12 Jun, 2021 1 commit
    • Anson Huang's avatar
      ARM: imx: add smp support for imx7d · e34645f4
      Anson Huang authored
      
      
      Add SMP support for i.MX7D, including CPU hotplug support, for
      systems where TFA is not present.
      
      The motivation for bringing up the second i.MX7D core inside the kernel
      is that legacy vendor bootloaders usually do not implement PSCI support.
      
      This is a significant blocker for systems in the field that are running old
      bootloader versions to upgrade to a modern mainline kernel version, as only
      one CPU of the i.MX7D would be brought up.
      
      Bring up the second i.MX7D core inside the kernel to make the migration
      path to mainline kernel easier for the existing iMX7D users.
      
      Signed-off-by: default avatarAnson Huang <b20788@freescale.com>
      Signed-off-by: Arulpandiyan Vadivel <arulpandiyan_vadivel@mentor.com> # Fix merge conflicts
      Signed-off-by: default avatarLeonard Crestez <leonard.crestez@nxp.com>
      Signed-off-by: Marek Vasut <marex@denx.de> # heavy cleanup
      Signed-off-by: default avatarFabio Estevam <festevam@denx.de>
      Signed-off-by: default avatarShawn Guo <shawnguo@kernel.org>
      e34645f4
  3. 11 Mar, 2020 1 commit
  4. 30 May, 2019 1 commit
  5. 28 Feb, 2017 1 commit
  6. 29 Feb, 2016 1 commit
  7. 11 Nov, 2013 1 commit
    • Shawn Guo's avatar
      ARM: imx: remove imx_src_prepare_restart() call · b6e23bb6
      Shawn Guo authored
      There is ~10% possibility that the following emergency restart command
      fails to reboot imx6q.
      
      $ echo b > /proc/sysrq-trigger
      
      The IMX restart routine mxc_restart() assumes that it will always run on
      primary core, and will call imx_src_prepare_restart() to disable
      secondary cores in order to get them come to online in the following
      boot.  However, the assumption is only true for normal kernel_restart()
      case where migrate_to_reboot_cpu() will be called to migrate to primary
      core, but not necessarily true for emergency_restart() case.  So when
      emergency_restart() calls into mxc_restart() on any secondary core,
      system will hang immediately once imx_src_prepare_restart() is called
      to disabled secondary cores.  Since emergency_restart() is defined as a
      function that is safe to call in interrupt context, we cannot just call
      migrate_to_reboot_cpu() to fix the issue.
      
      Fortunately, we just found that the issue can be fixed at imx6q platform
      level.  We used to call imx_src_prepare_restart() to disable all
      secondary cores before resetting hardware.  Otherwise, the secondary
      will fail come to online in the reboot.  However, we recently found that
      after commit 6050d181
      
       (ARM: imx: reset core along with enable/disable
      operation) comes to play, we do not need to reset the secondary cores
      any more.  That said, mxc_restart() now can run on any core to reboot
      the system, as long as we remove the imx_src_prepare_restart() call from
      mxc_restart().
      
      So let's simply remove imx_src_prepare_restart() call to fix the above
      emergency restart failure.
      
      Reported-by: default avatarJiada Wang <jiada_wang@mentor.com>
      Signed-off-by: default avatarShawn Guo <shawn.guo@linaro.org>
      b6e23bb6
  8. 21 Oct, 2013 1 commit
  9. 02 May, 2013 1 commit
    • Arnd Bergmann's avatar
      ARM: imx: reset_controller may be disabled · 5c5f0421
      Arnd Bergmann authored
      
      
      The new reset controller API is optional, so if that is disabled,
      we must not call it from platform code.
      
      arch/arm/mach-imx/built-in.o: In function
       `imx_src_init': /git/arm-soc/arch/arm/mach-imx/src.c:144:
      	undefined reference to `reset_controller_register'
      
      Cc: Sascha Hauer <kernel@pengutronix.de>
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      5c5f0421
  10. 12 Apr, 2013 1 commit
  11. 09 Apr, 2013 1 commit
  12. 01 Apr, 2013 1 commit
    • Fabio Estevam's avatar
      ARM: mach-imx: src: Include "common.h · 09898576
      Fabio Estevam authored
      
      
      Fix the following sparse warnings:
      
      arch/arm/mach-imx/src.c:28:6: warning: symbol 'imx_enable_cpu' was not declared. Should it be static?
      arch/arm/mach-imx/src.c:39:6: warning: symbol 'imx_set_cpu_jump' was not declared. Should it be static?
      arch/arm/mach-imx/src.c:46:6: warning: symbol 'imx_src_prepare_restart' was not declared. Should it be static?
      arch/arm/mach-imx/src.c:59:13: warning: symbol 'imx_src_init' was not declared. Should it be static?
      
      Signed-off-by: default avatarFabio Estevam <fabio.estevam@freescale.com>
      Signed-off-by: default avatarShawn Guo <shawn.guo@linaro.org>
      09898576
  13. 26 Mar, 2013 1 commit
    • Shawn Guo's avatar
      ARM: imx: fix sync issue between imx_cpu_die and imx_cpu_kill · 2f3edfd7
      Shawn Guo authored
      
      
      There is a sync issue with hotplug operation.  It's possible that when
      imx_cpu_kill gets running on primary core, the imx_cpu_die execution
      on the core which is to be killed hasn't been finished yet.  The problem
      will very likely be hit when running suspend without no_console_suspend
      setting on kernel cmdline.
      
      It uses cpu jumping argument register to sync imx_cpu_die and
      imx_cpu_kill.  The register will be set in imx_cpu_die and imx_cpu_kill
      will wait for the register being cleared to actually kill the cpu.
      
      Signed-off-by: default avatarShawn Guo <shawn.guo@linaro.org>
      Cc: <stable@vger.kernel.org>
      2f3edfd7
  14. 23 Jan, 2012 1 commit
  15. 16 Jan, 2012 1 commit
  16. 05 Jan, 2012 1 commit
  17. 16 Nov, 2011 1 commit
  18. 31 Oct, 2011 1 commit