1. 24 Jun, 2013 1 commit
  2. 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>
  3. 23 Nov, 2012 1 commit
  4. 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
      Current bindings documentation is included in the patch:
      Signed-off-by: default avatarLorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Acked-by: default avatarNicolas Pitre <nico@linaro.org>
  5. 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>
  6. 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
      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>
  7. 09 Jun, 2011 1 commit
  8. 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
      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
      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>
  9. 11 May, 2011 1 commit