1. 31 May, 2014 1 commit
  2. 11 Feb, 2014 1 commit
    • Stephen Boyd's avatar
      ARM: Introduce CPU_METHOD_OF_DECLARE() for cpu hotplug/smp · 6c3ff8b1
      Stephen Boyd authored
      
      
      The goal of multi-platform kernels is to remove the need for mach
      directories and machine descriptors. To further that goal,
      introduce CPU_METHOD_OF_DECLARE() to allow cpu hotplug/smp
      support to be separated from the machine descriptors.
      Implementers should specify an enable-method property in their
      cpus node and then implement a matching set of smp_ops in their
      hotplug/smp code, wiring it up with the CPU_METHOD_OF_DECLARE()
      macro. When the kernel is compiled we'll collect all the
      enable-method smp_ops into one section for use at boot.
      
      At boot time we'll look for an enable-method in each cpu node and
      try to match that against all known CPU enable methods in the
      kernel. If there are no enable-methods in the cpu nodes we
      fallback to the cpus node and try to use any enable-method found
      there. If that doesn't work we fall back to the old way of using
      the machine descriptor.
      Acked-by: default avatarMark Rutland <mark.rutland@arm.com>
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: <devicetree@vger.kernel.org>
      Signed-off-by: default avatarStephen Boyd <sboyd@codeaurora.org>
      Signed-off-by: default avatarKumar Gala <galak@codeaurora.org>
      6c3ff8b1
  3. 21 Jan, 2014 1 commit
    • Santosh Shilimkar's avatar
      arch/arm/kernel/: use memblock apis for early memory allocations · 9233d2be
      Santosh Shilimkar authored
      
      
      Switch to memblock interfaces for early memory allocator instead of
      bootmem allocator.  No functional change in beahvior than what it is in
      current code from bootmem users points of view.
      
      Archs already converted to NO_BOOTMEM now directly use memblock
      interfaces instead of bootmem wrappers build on top of memblock.  And
      the archs which still uses bootmem, these new apis just fallback to
      exiting bootmem APIs.
      Signed-off-by: default avatarSantosh Shilimkar <santosh.shilimkar@ti.com>
      Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Christoph Lameter <cl@linux-foundation.org>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: Grygorii Strashko <grygorii.strashko@ti.com>
      Cc: H. Peter Anvin <hpa@zytor.com>
      Cc: Johannes Weiner <hannes@cmpxchg.org>
      Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
      Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      Cc: Michal Hocko <mhocko@suse.cz>
      Cc: Paul Walmsley <paul@pwsan.com>
      Cc: Pavel Machek <pavel@ucw.cz>
      Cc: Russell King <linux@arm.linux.org.uk>
      Cc: Tejun Heo <tj@kernel.org>
      Cc: Tony Lindgren <tony@atomide.com>
      Cc: Yinghai Lu <yinghai@kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      9233d2be
  4. 11 Jan, 2014 1 commit
  5. 09 Oct, 2013 2 commits
  6. 21 Aug, 2013 1 commit
  7. 26 Jul, 2013 1 commit
    • Russell King's avatar
      ARM: constify machine_desc structure uses · ff69a4c8
      Russell King authored
      
      
      struct machine_desc records are defined everywhere as a 'const'
      structure, but unfortuantely it loses its const-ness through the use of
      linker magic - the symbols which surround the section are not declared
      const so it becomes possible not to use 'const' for pointers to these
      const structures.
      
      Let's fix this oversight - all pointers to these structures should be
      marked const too.
      Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      ff69a4c8
  8. 29 Jun, 2013 1 commit
  9. 24 Jun, 2013 2 commits
  10. 29 Apr, 2013 1 commit
    • Arnd Bergmann's avatar
      ARM: default machine descriptor for multiplatform · 883a106b
      Arnd Bergmann authored
      
      
      Since we now have default implementations for init_time and init_irq,
      the init_machine callback is the only one that is not yet optional,
      but since simple DT based platforms all have the same
      of_platform_populate function call in there, we can consolidate them
      as well, and then actually boot with a completely empty machine_desc.
      Unofortunately we cannot just default to an empty init_machine: We
      cannot call of_platform_populate before init_machine because that
      does not work in case of auxdata, and we cannot call it after
      init_machine either because the machine might need to run code
      after adding the devices.
      
      To take the final step, this adds support for booting without defining
      any machine_desc whatsoever.
      
      For the case that CONFIG_MULTIPLATFORM is enabled, it adds a
      global machine descriptor that never matches any machine but is
      used as a fallback if nothing else matches. We assume that without
      CONFIG_MULTIPLATFORM, we only want to boot on the systems that the kernel
      is built for, so we still retain the build-time warning for missing
      machine descriptors and the run-time warning when the platform does not
      match in that case.
      
      In the case that we run on a multiplatform kernel and the machine
      provides a fully populated device tree, we attempt to keep booting,
      hoping that no machine specific callbacks are necessary.
      
      Finally, this also removes the misguided "select ARCH_VEXPRESS" that
      was only added to avoid a build error for allnoconfig kernels.
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Acked-by: default avatarNicolas Pitre <nico@linaro.org>
      Acked-by: default avatarOlof Johansson <olof@lixom.net>
      Cc: "Russell King - ARM Linux" <linux@arm.linux.org.uk>
      Cc: Rob Herring <robherring2@gmail.com>
      883a106b
  11. 23 Nov, 2012 1 commit
  12. 19 Nov, 2012 1 commit
    • Lorenzo Pieralisi's avatar
      ARM: kernel: add device tree init map function · a0ae0240
      Lorenzo Pieralisi authored
      
      
      When booting through a device tree, the kernel cpu logical id map can be
      initialized using device tree data passed by FW or through an embedded blob.
      
      This patch adds a function that parses device tree "cpu" nodes and
      retrieves the corresponding CPUs hardware identifiers (MPIDR).
      It sets the possible cpus and the cpu logical map values according to
      the number of CPUs defined in the device tree and respective properties.
      
      The device tree HW identifiers are considered valid if all CPU nodes contain
      a "reg" property, there are no duplicate "reg" entries and the DT defines a
      CPU node whose "reg" property matches the MPIDR[23:0] of the boot CPU.
      
      The primary CPU is assigned cpu logical number 0 to keep the current convention
      valid.
      
      Current bindings documentation is included in the patch:
      
      Documentation/devicetree/bindings/arm/cpus.txt
      Signed-off-by: default avatarLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Acked-by: default avatarNicolas Pitre <nico@linaro.org>
      a0ae0240
  13. 31 Oct, 2011 1 commit
    • Paul Gortmaker's avatar
      arm: convert core files from module.h to export.h · ecea4ab6
      Paul Gortmaker authored
      
      
      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: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
      ecea4ab6
  14. 28 Jul, 2011 1 commit
    • Grant Likely's avatar
      irq: add irq_domain translation infrastructure · 08a543ad
      Grant Likely authored
      
      
      This patch adds irq_domain infrastructure for translating from
      hardware irq numbers to linux irqs.  This is particularly important
      for architectures adding device tree support because the current
      implementation (excluding PowerPC and SPARC) cannot handle
      translation for more than a single interrupt controller.  irq_domain
      supports device tree translation for any number of interrupt
      controllers.
      
      This patch converts x86, Microblaze, ARM and MIPS to use irq_domain
      for device tree irq translation.  x86 is untested beyond compiling it,
      irq_domain is enabled for MIPS and Microblaze, but the old behaviour is
      preserved until the core code is modified to actually register an
      irq_domain yet.  On ARM it works and is required for much of the new
      ARM device tree board support.
      
      PowerPC has /not/ been converted to use this new infrastructure.  It
      is still missing some features before it can replace the virq
      infrastructure already in powerpc (see documentation on
      irq_domain_map/unmap for details).  Followup patches will add the
      missing pieces and migrate PowerPC to use irq_domain.
      
      SPARC has its own method of managing interrupts from the device tree
      and is unaffected by this change.
      Acked-by: default avatarRalf Baechle <ralf@linux-mips.org>
      Signed-off-by: default avatarGrant Likely <grant.likely@secretlab.ca>
      08a543ad
  15. 09 Jun, 2011 1 commit
  16. 23 May, 2011 1 commit
    • Grant Likely's avatar
      arm/dt: probe for platforms via the device tree · 93c02ab4
      Grant Likely authored
      
      
      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: default avatarTixy <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: default avatarTony Lindgren <tony@atomide.com>
      Acked-by: default avatarNicolas Pitre <nicolas.pitre@linaro.org>
      Acked-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
      Signed-off-by: default avatarGrant Likely <grant.likely@secretlab.ca>
      93c02ab4
  17. 11 May, 2011 1 commit