1. 29 8月, 2013 2 次提交
    • L
      cpuidle: big.LITTLE: vexpress-TC2 CPU idle driver · 14d2c34c
      Lorenzo Pieralisi 提交于
      The big.LITTLE architecture is composed of two clusters of cpus. One cluster
      contains less powerful but more energy efficient processors and the other
      cluster groups the powerful but energy-intensive cpus.
      
      The TC2 testchip implements two clusters of CPUs (A7 and A15 clusters in
      a big.LITTLE configuration) connected through a CCI interconnect that manages
      coherency of their respective L2 caches and intercluster distributed
      virtual memory messages (DVM).
      
      TC2 testchip integrates a power controller that manages cores resets, wake-up
      IRQs and cluster low-power states. Power states are managed at cluster
      level, which means that voltage is removed from a cluster iff all cores
      in a cluster are in a wfi state. Single cores can enter a reset state
      which is identical to wfi in terms of power consumption but simplifies the
      way cluster states are entered.
      
      This patch provides a multiple driver CPU idle implementation for TC2
      which paves the way for a generic big.LITTLE idle driver for all
      upcoming big.LITTLE based systems on chip.
      
      The driver relies on the MCPM infrastructure to coordinate and manage
      core power states; in particular MCPM allows to suspend specific cores
      and hides the CPUs coordination required to shut-down clusters of CPUs.
      
      Power down sequences for the respective clusters are implemented in the
      MCPM TC2 backend, with all code needed to clean caches and exit coherency.
      
      The multiple driver CPU idle infrastructure allows to define different
      C-states for big and little cores, determined at boot by checking the
      part id of the possible CPUs and initializing the respective logical
      masks in the big and little drivers.
      
      Current big.little systems are composed of A7 and A15 clusters, as
      implemented in TC2, but in the future that may change and the driver
      will have evolve to retrieve what is a 'big' cpu and what is a 'little'
      cpu in order to build the correct topology.
      
      Cc: Kevin Hilman <khilman@linaro.org>
      Cc: Amit Kucheria <amit.kucheria@linaro.org>
      Cc: Olof Johansson <olof@lixom.net>
      Cc: Nicolas Pitre <nicolas.pitre@linaro.org>
      Cc: Rafael J. Wysocki <rjw@sisk.pl>
      Signed-off-by: NDaniel Lezcano <daniel.lezcano@linaro.org>
      Signed-off-by: NLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      14d2c34c
    • N
      drivers: irq-chip: irq-gic: introduce gic_cpu_if_down() · 10d9eb8a
      Nicolas Pitre 提交于
      When processors are about to hit low power states, the assertion of
      standbywfi signal, triggered by the wfi instruction, is essential to
      entering low power modes. If an IRQ is pending on the processor at the
      time wfi is issued, the wfi instruction completes and the processor
      restarts execution without asserting the standbywfi signal. Depending
      on the platform power controller HW this behaviour can be acceptable or
      not; if this behaviour must be prevented software should be provided
      with a way to disable the routing of interrupts to the core IRQ pins.
      
      On systems where raw GIC distributor interrupts are connected to the power
      controller as wake-up events (hence the power controller still senses
      IRQs and can wake up cores upon IRQ pending), the GIC CPU interface can
      be disabled on power down, so that the GIC CPU IF output is gated and wfi
      cannot complete, thereby preventing the standbywfi issue.
      
      This patch adds a simple function to the GIC driver that allows to
      disable the GIC CPU IF from power down procedures.
      Signed-off-by: NNicolas Pitre <nico@linaro.org>
      Signed-off-by: NLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      [rewrote commit log]
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      10d9eb8a
  2. 16 8月, 2013 6 次提交
  3. 15 8月, 2013 6 次提交
  4. 14 8月, 2013 13 次提交
  5. 13 8月, 2013 9 次提交
  6. 12 8月, 2013 4 次提交