1. 03 12月, 2012 1 次提交
  2. 19 11月, 2012 3 次提交
    • L
      ARM: kernel: add cpu logical map DT init in setup_arch · 5587164e
      Lorenzo Pieralisi 提交于
      As soon as the device tree is unflattened the cpu logical to physical
      mapping is carried out in setup_arch to build a proper array of MPIDR and
      corresponding logical indexes.
      
      The mapping could have been carried out using the flattened DT blob and
      related primitives, but since the mapping is not needed by early boot
      code it can safely be executed when the device tree has been uncompressed to
      its tree data structure.
      
      This patch adds the arm_dt_init_cpu maps() function call in setup_arch().
      
      If the kernel is not compiled with DT support the function is empty and
      no logical mapping takes place through it; the mapping carried out in
      smp_setup_processor_id() is left unchanged.
      If DT is supported the mapping created in smp_setup_processor_id() is overriden.
      The DT mapping also sets the possible cpus mask, hence platform
      code need not set it again in the respective smp_init_cpus() functions.
      Signed-off-by: NLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Acked-by: NWill Deacon <will.deacon@arm.com>
      Acked-by: NNicolas Pitre <nico@linaro.org>
      5587164e
    • L
      ARM: kernel: smp_setup_processor_id() updates · cb8cf4f8
      Lorenzo Pieralisi 提交于
      This patch applies some basic changes to the smp_setup_processor_id()
      ARM implementation to make the code that builds cpu_logical_map more
      uniform across the kernel.
      
      The function now prints the full extent of the boot CPU MPIDR[23:0] and
      initializes the cpu_logical_map for CPUs up to nr_cpu_ids.
      Signed-off-by: NLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Acked-by: NNicolas Pitre <nico@linaro.org>
      Acked-by: NWill Deacon <will.deacon@arm.com>
      cb8cf4f8
    • L
      ARM: kernel: update cpuinfo to print all online CPUs features · b4b8f770
      Lorenzo Pieralisi 提交于
      Currently, reading /proc/cpuinfo provides userspace with CPU ID of
      the CPU carrying out the read from the file. This is fine as long as all
      CPUs in the system are the same. With the advent of big.LITTLE and
      heterogenous ARM systems this approach provides user space with incorrect
      bits of information since CPU ids in the system might differ from the one
      provided by the CPU reading the file.
      
      This patch updates the cpuinfo show function so that a read from
      /proc/cpuinfo prints HW information for all online CPUs at once, mirroring
       x86 behaviour.
      Signed-off-by: NLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Acked-by: NNicolas Pitre <nico@linaro.org>
      b4b8f770
  3. 19 9月, 2012 1 次提交
  4. 13 9月, 2012 1 次提交
    • M
      ARM: SoC: add per-platform SMP operations · abcee5fb
      Marc Zyngier 提交于
      This adds a 'struct smp_operations' to abstract the CPU initialization
      and hot plugging functions on SMP systems, which otherwise conflict
      in a multiplatform kernel. This also helps shmobile and potentially
      others that have more than one method to do these.
      
      To allow the kernel to continue building, the platform hooks are
      defined as weak symbols which are overrided by the platform code.
      Once all platforms are converted, the "weak" attribute will be
      removed and the function made static.
      
      Unlike the original version from Marc, this new version from Arnd
      does not use a generalized abstraction for per-soc data structures
      but only tries to solve the problem for the SMP operations. This
      way, we can collapse the previous four data structures into a
      single struct, which is less systematic but also easier to follow
      as a causal reader.
      Signed-off-by: NMarc Zyngier <marc.zyngier@arm.com>
      Acked-by: NNicolas Pitre <nico@fluxnic.net>
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      abcee5fb
  5. 04 9月, 2012 1 次提交
  6. 30 7月, 2012 1 次提交
  7. 21 5月, 2012 1 次提交
  8. 03 5月, 2012 1 次提交
  9. 16 4月, 2012 1 次提交
  10. 29 3月, 2012 2 次提交
  11. 24 3月, 2012 1 次提交
  12. 23 1月, 2012 2 次提交
  13. 20 1月, 2012 2 次提交
  14. 12 12月, 2011 1 次提交
  15. 09 12月, 2011 1 次提交
    • T
      memblock: Fix include breakages caused by 24aa0788 · 1c16d242
      Tejun Heo 提交于
      24aa0788 (memblock, x86: Replace memblock_x86_reserve/free_range()
      with generic ones) removed arch/x86/include/asm/memblock.h and dropped
      its inclusion from include/linux/memblock.h which breaks other
      architectures which depended on the generic memblock.h pulling in the
      arch specific one.
      
      However, the proper fix isn't adding back the asm inclusion.  memblock
      doesn't have any arch dependent part and doesn't need arch specific
      header file and asm/memblock.h files are either practically empty or
      contain mostly unrelated arch specific stuff.
      
      * In microblaze, sh, powerpc, sparc and openrisc, asm/memblock.h is
        either empty or just contains unused MEMBLOCK_DBG() macro.  Remove
        them.
      
      * In arm and unicore32, asm/memblock.h contains arch specific stuff.
        Include it directly from its users.  It might be a good idea to
        rename the header file to avoid confusion.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      Reported-by: N"H. Peter Anvin" <hpa@zytor.com>
      Cc: Yinghai Lu <yinghai@kernel.org>
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: Michal Simek <monstr@monstr.eu>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Paul Mundt <lethal@linux-sh.org>
      Cc: "David S. Miller" <davem@davemloft.net>
      Cc: Guan Xuetao <gxt@mprc.pku.edu.cn>
      1c16d242
  16. 06 12月, 2011 1 次提交
    • U
      ARM: 7187/1: fix unwinding for XIP kernels · de66a979
      Uwe Kleine-König 提交于
      The linker places the unwind tables in readonly sections. So when using
      an XIP kernel these are located in ROM and cannot be modified.
      For that reason the current approach to convert the relative offsets in
      the unwind index to absolute addresses early in the boot process doesn't
      work with XIP.
      
      The offsets in the unwind index section are signed 31 bit numbers and
      the structs are sorted by this offset. So it first has offsets between
      0x40000000 and 0x7fffffff (i.e. the negative offsets) and then offsets
      between 0x00000000 and 0x3fffffff. When seperating these two blocks the
      numbers are sorted even when interpreting the offsets as unsigned longs.
      
      So determine the first non-negative entry once and track that using the
      new origin pointer. The actual bisection can then use a plain unsigned
      long comparison. The only thing that makes the new bisection more
      complicated is that the offsets are relative to their position in the
      index section, so the key to search needs to be adapted accordingly in
      each step.
      
      Moreover several consts are added to catch future writes and rename the
      member "addr" of struct unwind_idx to "addr_offset" to better match the
      new semantic. (This has the additional benefit of breaking eventual
      users at compile time to make them aware of the change.)
      
      In my tests the new algorithm was a tad faster than the original and has
      the additional upside of not needing the initial conversion and so saves
      some boot time and it's possible to unwind even earlier.
      Acked-by: NCatalin Marinas <catalin.marinas@arm.com>
      Acked-by: NNicolas Pitre <nico@fluxnic.net>
      Signed-off-by: NUwe Kleine-König <u.kleine-koenig@pengutronix.de>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      de66a979
  17. 19 11月, 2011 1 次提交
    • N
      ARM: sort the meminfo array earlier · 27a3f0e9
      Nicolas Pitre 提交于
      The meminfo array has to be sorted before sanity_check_meminfo() in
      arch/arm/mm/mmu.c is called for it to work properly.  This also allows
      for a simpler find_limits() in arch/arm/mm/init.c.
      
      The sort is moved to arch/arm/kernel/setup.c because that's where the
      meminfo array is populated.  Eventually this should be improved upon
      to make the memory bank parser a bit more robust against problems
      such as overlapping memory ranges.
      Signed-off-by: NNicolas Pitre <nicolas.pitre@linaro.org>
      27a3f0e9
  18. 12 11月, 2011 1 次提交
  19. 11 11月, 2011 2 次提交
  20. 01 11月, 2011 1 次提交
    • P
      arm: convert core files from module.h to export.h · ecea4ab6
      Paul Gortmaker 提交于
      Many of the core ARM kernel files are not modules, but just
      including module.h for exporting symbols.  Now these files can
      use the lighter footprint export.h for this role.
      
      There are probably lots more, but ARM files of mach-* and plat-*
      don't get coverage via a simple yesconfig build.  They will have
      to be cleaned up and tested via using their respective configs.
      Signed-off-by: NPaul Gortmaker <paul.gortmaker@windriver.com>
      ecea4ab6
  21. 17 10月, 2011 3 次提交
  22. 22 8月, 2011 2 次提交
  23. 12 8月, 2011 1 次提交
  24. 19 7月, 2011 1 次提交
  25. 08 7月, 2011 1 次提交
    • W
      ARM: hwcaps: add new HWCAP defines for ARMv7-A · 254cdf8e
      Will Deacon 提交于
      Modern ARMv7-A cores can optionally implement these new hardware
      features:
      
      - VFPv4:
          The latest version of the ARMv7 vector floating-point extensions,
          including hardware support for fused multiple accumulate. D16 or D32
          variants may be implemented.
      
      - Integer divide:
          The SDIV and UDIV instructions provide signed and unsigned integer
          division in hardware. When implemented, these instructions may be
          available in either both Thumb and ARM, or Thumb only.
      
      This patch adds new HWCAP defines to describe these new features. The
      integer divide capabilities are split into two bits for ARM and Thumb
      respectively. Whilst HWCAP_IDIVA should never be set if HWCAP_IDIVT is
      clear, separating the bits makes it easier to interpret from userspace.
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      254cdf8e
  26. 06 7月, 2011 1 次提交
  27. 24 6月, 2011 1 次提交
  28. 23 5月, 2011 2 次提交
    • G
      arm/dt: probe for platforms via the device tree · 93c02ab4
      Grant Likely 提交于
      If a dtb is passed to the kernel then the kernel needs to iterate
      through compiled-in mdescs looking for one that matches and move the
      dtb data to a safe location before it gets accidentally overwritten by
      the kernel.
      
      This patch creates a new function, setup_machine_fdt() which is
      analogous to the setup_machine_atags() created in the previous patch.
      It does all the early setup needed to use a device tree machine
      description.
      
      v5: - Print warning with neither dtb nor atags are passed to the kernel
          - Fix bug in setting of __machine_arch_type to the selected machine,
            not just the last machine in the list.
      Reported-by: NTixy <tixy@yxit.co.uk>
          - Copy command line directly into boot_command_line instead of cmd_line
      v4: - Dump some output when a matching machine_desc cannot be found
      v3: - Added processing of reserved list.
          - Backed out the v2 change that copied instead of reserved the
            dtb.  dtb is reserved again and the real problem was fixed by
            using alloc_bootmem_align() for early allocation of RAM for
            unflattening the tree.
          - Moved cmd_line and initrd changes to earlier patch to make series
            bisectable.
      v2: Changed to save the dtb by copying into an allocated buffer.
          - Since the dtb will very likely be passed in the first 16k of ram
            where the interrupt vectors live, memblock_reserve() is
            insufficient to protect the dtb data.
      
      [based on work originally written by Jeremy Kerr <jeremy.kerr@canonical.com>]
      Tested-by: NTony Lindgren <tony@atomide.com>
      Acked-by: NNicolas Pitre <nicolas.pitre@linaro.org>
      Acked-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      Signed-off-by: NGrant Likely <grant.likely@secretlab.ca>
      93c02ab4
    • G
      arm/dt: consolidate atags setup into setup_machine_atags · 6291319d
      Grant Likely 提交于
      In preparation for adding device tree support, this patch consolidates
      all of the atag-specific setup into a single function.
      
      v5: - drop double printk("Machine; %s\n", ...); call.
          - leave copying boot_command_line in setup_arch() since it isn't
            atags specific.
      v4: - adapt to the removal of lookup_machine_type()
          - break out dump of machine_desc table into dump_machine_table()
            because the device tree probe code will use it.
          - Add for_each_machine_desc() macro
      Tested-by: NTony Lindgren <tony@atomide.com>
      Acked-by: NNicolas Pitre <nicolas.pitre@linaro.org>
      Acked-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      Signed-off-by: NGrant Likely <grant.likely@secretlab.ca>
      6291319d
  29. 12 5月, 2011 1 次提交
  30. 11 5月, 2011 1 次提交