1. 14 1月, 2015 1 次提交
  2. 05 12月, 2014 1 次提交
    • D
      clocksource: arch_timer: Allow the device tree to specify uninitialized timer registers · 65b5732d
      Doug Anderson 提交于
      Some 32-bit (ARMv7) systems are architected like this:
      
      * The firmware doesn't know and doesn't care about hypervisor mode and
        we don't want to add the complexity of hypervisor there.
      
      * The firmware isn't involved in SMP bringup or resume.
      
      * The ARCH timer come up with an uninitialized offset (CNTVOFF)
        between the virtual and physical counters.  Each core gets a
        different random offset.
      
      * The device boots in "Secure SVC" mode.
      
      * Nothing has touched the reset value of CNTHCTL.PL1PCEN or
        CNTHCTL.PL1PCTEN (both default to 1 at reset)
      
      On systems like the above, it doesn't make sense to use the virtual
      counter.  There's nobody managing the offset and each time a core goes
      down and comes back up it will get reinitialized to some other random
      value.
      
      This adds an optional property which can inform the kernel of this
      situation, and firmware is free to remove the property if it is going
      to initialize the CNTVOFF registers when each CPU comes out of reset.
      
      Currently, the best course of action in this case is to use the
      physical timer, which is why it is important that CNTHCTL hasn't been
      changed from its reset value and it's a reasonable assumption given
      that the firmware has never entered HYP mode.
      
      Note that it's been said that on ARMv8 systems the firmware and
      kernel really can't be architected as described above.  That means
      using the physical timer like this really only makes sense for ARMv7
      systems.
      Signed-off-by: NDoug Anderson <dianders@chromium.org>
      Signed-off-by: NSonny Rao <sonnyrao@chromium.org>
      Reviewed-by: NMark Rutland <mark.rutland@arm.com>
      Acked-by: NDaniel Lezcano <daniel.lezcano@linaro.org>
      Acked-by: NCatalin Marinas <catalin.marinas@arm.com>
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      65b5732d
  3. 27 11月, 2014 3 次提交
  4. 26 11月, 2014 3 次提交
  5. 23 11月, 2014 1 次提交
  6. 22 11月, 2014 1 次提交
  7. 19 11月, 2014 2 次提交
  8. 18 11月, 2014 1 次提交
  9. 14 11月, 2014 2 次提交
  10. 12 11月, 2014 1 次提交
  11. 06 11月, 2014 1 次提交
  12. 05 11月, 2014 2 次提交
  13. 02 11月, 2014 1 次提交
  14. 01 11月, 2014 1 次提交
  15. 31 10月, 2014 1 次提交
  16. 30 10月, 2014 1 次提交
  17. 28 10月, 2014 1 次提交
  18. 22 10月, 2014 1 次提交
  19. 20 10月, 2014 1 次提交
  20. 03 10月, 2014 1 次提交
    • L
      ARM: 8169/1: l2c: parse cache properties from ePAPR definitions · f3354ab6
      Linus Walleij 提交于
      When both 'cache-size' and 'cache-sets' are specified for a L2 cache
      controller node, parse those properties and set up the
      set size based on which type of L2 cache controller we are using.
      
      Update the L2 cache controller Device Tree binding with the optional
      'cache-size', 'cache-sets', 'cache-block-size' and 'cache-line-size'
      properties. These come from the ePAPR specification.
      
      Using the cache size, number of sets and cache line size we can
      calculate desired associativity of the L2 cache. This is done
      by the calculation:
      
          set size = cache size / sets
          ways = set size / line size
          way size = cache size / ways = sets * line size
          associativity = cache size / way size
      
      Example output from the PB1176 DT that look like this:
      
      L2: l2-cache {
          compatible = "arm,l220-cache";
          (...)
          arm,override-auxreg;
          cache-size = <131072>; // 128kB
          cache-sets = <512>;
          cache-line-size = <32>;
      };
      
      Ends up like this:
      
      L2C OF: override cache size: 131072 bytes (128KB)
      L2C OF: override line size: 32 bytes
      L2C OF: override way size: 16384 bytes (16KB)
      L2C OF: override associativity: 8
      L2C: DT/platform modifies aux control register: 0x02020fff -> 0x02030fff
      L2C-220 cache controller enabled, 8 ways, 128 kB
      L2C-220: CACHE_ID 0x41000486, AUX_CTRL 0x06030fff
      
      Which is consistent with the value earlier hardcoded for the
      PB1176 platform.
      
      This patch is an extended version based on the initial patch
      by Florian Fainelli.
      Reviewed-by: NArnd Bergmann <arnd@arndb.de>
      Signed-off-by: NFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: NLinus Walleij <linus.walleij@linaro.org>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      f3354ab6
  21. 02 10月, 2014 1 次提交
  22. 25 9月, 2014 2 次提交
  23. 22 9月, 2014 2 次提交
  24. 19 9月, 2014 1 次提交
  25. 18 9月, 2014 1 次提交
  26. 17 9月, 2014 1 次提交
  27. 12 9月, 2014 1 次提交
    • L
      Documentation: arm: define DT idle states bindings · 3f8161b2
      Lorenzo Pieralisi 提交于
      ARM based platforms implement a variety of power management schemes that
      allow processors to enter idle states at run-time.
      The parameters defining these idle states vary on a per-platform basis forcing
      the OS to hardcode the state parameters in platform specific static tables
      whose size grows as the number of platforms supported in the kernel increases
      and hampers device drivers standardization.
      
      Therefore, this patch aims at standardizing idle state device tree bindings
      for ARM platforms. Bindings define idle state parameters inclusive of entry
      methods and state latencies, to allow operating systems to retrieve the
      configuration entries from the device tree and initialize the related power
      management drivers, paving the way for common code in the kernel to deal with
      idle states and removing the need for static data in current and previous
      kernel versions.
      
      ARM64 platforms require the DT to define an entry-method property
      for idle states.
      
      On system implementing PSCI as an enable-method to enter low-power
      states the PSCI CPU suspend method requires the power_state parameter to
      be passed to the PSCI CPU suspend function.
      
      This parameter is specific to a power state and platform specific,
      therefore must be provided by firmware to the OS in order to enable
      proper call sequence.
      
      Thus, this patch also adds a property in the PSCI bindings that
      describes how the PSCI CPU suspend power_state parameter should be
      defined in DT in all device nodes that rely on PSCI CPU suspend method usage.
      Acked-by: NCatalin Marinas <catalin.marinas@arm.com>
      Acked-by: NDaniel Lezcano <daniel.lezcano@linaro.org>
      Acked-by: NNicolas Pitre <nico@linaro.org>
      Reviewed-by: NRob Herring <robh@kernel.org>
      Reviewed-by: NSebastian Capella <sebcape@gmail.com>
      Signed-off-by: NLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      3f8161b2
  28. 09 9月, 2014 1 次提交
  29. 04 9月, 2014 1 次提交
  30. 03 9月, 2014 1 次提交
  31. 01 9月, 2014 1 次提交