1. 20 2月, 2019 1 次提交
  2. 03 8月, 2018 1 次提交
    • P
      ARM: Convert to GENERIC_IRQ_MULTI_HANDLER · 4c301f9b
      Palmer Dabbelt 提交于
      Converts the ARM interrupt code to use the recently added
      GENERIC_IRQ_MULTI_HANDLER, which is essentially just a copy of ARM's
      existhing MULTI_IRQ_HANDLER.  The only changes are:
      
      * handle_arch_irq is now defined in a generic C file instead of an
        arm-specific assembly file.
       
      * handle_arch_irq is now marked as __ro_after_init.
      Signed-off-by: NPalmer Dabbelt <palmer@sifive.com>
      Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
      Cc: linux@armlinux.org.uk
      Cc: catalin.marinas@arm.com
      Cc: Will Deacon <will.deacon@arm.com>
      Cc: jonas@southpole.se
      Cc: stefan.kristiansson@saunalahti.fi
      Cc: shorne@gmail.com
      Cc: jason@lakedaemon.net
      Cc: marc.zyngier@arm.com
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: nicolas.pitre@linaro.org
      Cc: vladimir.murzin@arm.com
      Cc: keescook@chromium.org
      Cc: jinb.park7@gmail.com
      Cc: yamada.masahiro@socionext.com
      Cc: alexandre.belloni@bootlin.com
      Cc: pombredanne@nexb.com
      Cc: Greg KH <gregkh@linuxfoundation.org>
      Cc: kstewart@linuxfoundation.org
      Cc: jhogan@kernel.org
      Cc: mark.rutland@arm.com
      Cc: ard.biesheuvel@linaro.org
      Cc: james.morse@arm.com
      Cc: linux-arm-kernel@lists.infradead.org
      Cc: openrisc@lists.librecores.org
      Link: https://lkml.kernel.org/r/20180622170126.6308-3-palmer@sifive.com
      4c301f9b
  3. 09 5月, 2018 1 次提交
  4. 29 9月, 2017 1 次提交
    • R
      ARM: better diagnostics with missing/corrupt dtb · 99cf8f90
      Russell King 提交于
      With a kernel containing both DT and atag support, the diagnostics
      output when the dtb is missing or corrupt assume that we're trying
      to boot using atags and the machine ID, and only print the machine
      ID.  This is not useful for diagnosing a missing or corrupt dtb.
      
      Move the message into arch/arm/kernel/setup.c, and print the address
      of the dtb/atag list, and the first 16 bytes of memory of the dtb or
      atag list.
      
      This allows us to see whether the dtb was corrupted in some way,
      causing the fallback to the machine ID / atag list.
      Tested-by: NKeerthy <j-keerthy@ti.com>
      Signed-off-by: NRussell King <rmk+kernel@armlinux.org.uk>
      99cf8f90
  5. 20 7月, 2017 1 次提交
    • R
      ARM: kexec: avoid allocating crashkernel region outside lowmem · 67556d7a
      Russell King 提交于
      Allocating the crashkernel region outside lowmem causes the kernel to
      oops while trying to kexec into the new kernel:
      
      Loading crashdump kernel...
      Unable to handle kernel NULL pointer dereference at virtual address 00000000
      pgd = edd70000
      [00000000] *pgd=de19e835
      Internal error: Oops: 817 [#2] SMP ARM
      Modules linked in: ...
      CPU: 0 PID: 689 Comm: sh Not tainted 4.12.0-rc3-next-20170601-04015-gc3a5a20
      Hardware name: Generic DRA74X (Flattened Device Tree)
      task: edb32f00 task.stack: edf18000
      PC is at memcpy+0x50/0x330
      LR is at 0xe3c34001
      pc : [<c04baf30>]    lr : [<e3c34001>]    psr: 800c0193
      sp : edf19c2c  ip : 0a000001  fp : c0553170
      r10: c055316e  r9 : 00000001  r8 : e3130001
      r7 : e4903004  r6 : 0a000014  r5 : e3500000  r4 : e59f106c
      r3 : e59f0074  r2 : ffffffe8  r1 : c010fb88  r0 : 00000000
      Flags: Nzcv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment none
      Control: 10c5387d  Table: add7006a  DAC: 00000051
      Process sh (pid: 689, stack limit = 0xedf18218)
      Stack: (0xedf19c2c to 0xedf1a000)
      ...
      [<c04baf30>] (memcpy) from [<c010fae0>] (machine_kexec+0xa8/0x12c)
      [<c010fae0>] (machine_kexec) from [<c01e4104>] (__crash_kexec+0x5c/0x98)
      [<c01e4104>] (__crash_kexec) from [<c01e419c>] (crash_kexec+0x5c/0x68)
      [<c01e419c>] (crash_kexec) from [<c010c5c0>] (die+0x228/0x490)
      [<c010c5c0>] (die) from [<c011e520>] (__do_kernel_fault.part.0+0x54/0x1e4)
      [<c011e520>] (__do_kernel_fault.part.0) from [<c082412c>] (do_page_fault+0x1e8/0x400)
      [<c082412c>] (do_page_fault) from [<c010135c>] (do_DataAbort+0x38/0xb8)
      [<c010135c>] (do_DataAbort) from [<c0823584>] (__dabt_svc+0x64/0xa0)
      
      This is caused by image->control_code_page being a highmem page, so
      page_address(image->control_code_page) returns NULL.  In any case, we
      don't want the control page to be a highmem page.
      
      We already limit the crash kernel region to the top of 32-bit physical
      memory space.  Also limit it to the top of lowmem in physical space.
      Reported-by: NKeerthy <j-keerthy@ti.com>
      Tested-by: NKeerthy <j-keerthy@ti.com>
      Signed-off-by: NRussell King <rmk+kernel@armlinux.org.uk>
      67556d7a
  6. 12 6月, 2017 1 次提交
  7. 20 4月, 2017 1 次提交
    • J
      ARM: 8667/3: Fix memory attribute inconsistencies when using fixmap · b089c31c
      Jon Medhurst 提交于
      To cope with the variety in ARM architectures and configurations, the
      pagetable attributes for kernel memory are generated at runtime to match
      the system the kernel finds itself on. This calculated value is stored
      in pgprot_kernel.
      
      However, when early fixmap support was added for ARM (commit
      a5f4c561) the attributes used for mappings were hard coded because
      pgprot_kernel is not set up early enough. Unfortunately, when fixmap is
      used after early boot this means the memory being mapped can have
      different attributes to existing mappings, potentially leading to
      unpredictable behaviour. A specific problem also exists due to the hard
      coded values not include the 'shareable' attribute which means on
      systems where this matters (e.g. those with multiple CPU clusters) the
      cache contents for a memory location can become inconsistent between
      CPUs.
      
      To resolve these issues we change fixmap to use the same memory
      attributes (from pgprot_kernel) that the rest of the kernel uses. To
      enable this we need to refactor the initialisation code so
      build_mem_type_table() is called early enough. Note, that relies on early
      param parsing for memory type overrides passed via the kernel command
      line, so we need to make sure this call is still after
      parse_early_params().
      
      [ardb: keep early_fixmap_init() before param parsing, for earlycon]
      
      Fixes: a5f4c561 ("ARM: 8415/1: early fixmap support for earlycon")
      Cc: <stable@vger.kernel.org> # v4.3+
      Tested-by: Nafzal mohammed <afzal.mohd.ma@gmail.com>
      Signed-off-by: NJon Medhurst <tixy@linaro.org>
      Signed-off-by: NArd Biesheuvel <ard.biesheuvel@linaro.org>
      Signed-off-by: NRussell King <rmk+kernel@armlinux.org.uk>
      b089c31c
  8. 28 2月, 2017 2 次提交
  9. 06 9月, 2016 2 次提交
  10. 12 8月, 2016 1 次提交
  11. 03 8月, 2016 2 次提交
  12. 06 7月, 2016 1 次提交
  13. 02 7月, 2016 1 次提交
  14. 24 6月, 2016 2 次提交
    • K
      arm: Remove unnecessary of_platform_populate with default match table · 850bea23
      Kefeng Wang 提交于
      After patch "of/platform: Add common method to populate default bus",
      it is possible for arch code to remove unnecessary callers of
      of_platform_populate with default match table.
      Acked-by: NViresh Kumar <viresh.kumar@linaro.org>
      Cc: Nicolas Ferre <nicolas.ferre@atmel.com>
      Cc: Ray Jui <rjui@broadcom.com>
      Cc: Lee Jones <lee@kernel.org>
      Cc: Krzysztof Halasa <khalasa@piap.pl>
      Cc: Kukjin Kim <kgene@kernel.org>
      Cc: Rob Herring <robh@kernel.org>
      Cc: Shawn Guo <shawnguo@kernel.org>
      Cc: Santosh Shilimkar <ssantosh@kernel.org>
      Cc: Roland Stigge <stigge@antcom.de>
      Cc: Jason Cooper <jason@lakedaemon.net>
      Cc: Haojian Zhuang <haojian.zhuang@gmail.com>
      Cc: Heiko Stuebner <heiko@sntech.de>
      Cc: Viresh Kumar <vireshk@kernel.org>
      Cc: Shiraz Hashim <shiraz.linux.kernel@gmail.com>
      Cc: Tony Prisk <linux@prisktech.co.nz>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Russell King <linux@arm.linux.org.uk>
      Signed-off-by: NKefeng Wang <wangkefeng.wang@huawei.com>
      Signed-off-by: NRob Herring <robh@kernel.org>
      850bea23
    • K
      of: iommu: make of_iommu_init() postcore_initcall_sync · bb8e15d6
      Kefeng Wang 提交于
      The of_iommu_init() is called multiple times by arch code,
      make it postcore_initcall_sync, then we can drop relevant
      calls fully.
      
      Note, the IOMMUs should have a chance to perform some basic
      initialisation before we start adding masters to them. So
      postcore_initcall_sync is good choice, it ensures of_iommu_init()
      called before of_platform_populate.
      Acked-by: NRich Felker <dalias@libc.org>
      Tested-by: NMarek Szyprowski <m.szyprowski@samsung.com>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Cc: Marek Szyprowski <m.szyprowski@samsung.com>
      Cc: Rich Felker <dalias@libc.org>
      Cc: Rob Herring <robh+dt@kernel.org>
      Cc: Robin Murphy <robin.murphy@arm.com>
      Cc: Will Deacon <will.deacon@arm.com>
      Signed-off-by: NKefeng Wang <wangkefeng.wang@huawei.com>
      Acked-by: NJoerg Roedel <jroedel@suse.de>
      Signed-off-by: NRob Herring <robh@kernel.org>
      bb8e15d6
  15. 03 5月, 2016 2 次提交
  16. 28 4月, 2016 1 次提交
  17. 20 4月, 2016 1 次提交
  18. 08 4月, 2016 1 次提交
  19. 30 1月, 2016 1 次提交
    • T
      arch: Set IORESOURCE_SYSTEM_RAM flag for System RAM · 35d98e93
      Toshi Kani 提交于
      Set IORESOURCE_SYSTEM_RAM in flags of resource ranges with
      "System RAM", "Kernel code", "Kernel data", and "Kernel bss".
      
      Note that:
      
       - IORESOURCE_SYSRAM (i.e. modifier bit) is set in flags when
         IORESOURCE_MEM is already set. IORESOURCE_SYSTEM_RAM is defined
         as (IORESOURCE_MEM|IORESOURCE_SYSRAM).
      
       - Some archs do not set 'flags' for children nodes, such as
         "Kernel code".  This patch does not change 'flags' in this
         case.
      Signed-off-by: NToshi Kani <toshi.kani@hpe.com>
      Signed-off-by: NBorislav Petkov <bp@suse.de>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Andy Lutomirski <luto@amacapital.net>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: Brian Gerst <brgerst@gmail.com>
      Cc: Denys Vlasenko <dvlasenk@redhat.com>
      Cc: H. Peter Anvin <hpa@zytor.com>
      Cc: Linus Torvalds <torvalds@linux-foundation.org>
      Cc: Luis R. Rodriguez <mcgrof@suse.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Toshi Kani <toshi.kani@hp.com>
      Cc: linux-arch@vger.kernel.org
      Cc: linux-arm-kernel@lists.infradead.org
      Cc: linux-mips@linux-mips.org
      Cc: linux-mm <linux-mm@kvack.org>
      Cc: linux-parisc@vger.kernel.org
      Cc: linux-s390@vger.kernel.org
      Cc: linux-sh@vger.kernel.org
      Cc: linuxppc-dev@lists.ozlabs.org
      Cc: sparclinux@vger.kernel.org
      Link: http://lkml.kernel.org/r/1453841853-11383-7-git-send-email-bp@alien8.deSigned-off-by: NIngo Molnar <mingo@kernel.org>
      35d98e93
  20. 17 12月, 2015 1 次提交
    • N
      ARM: 8477/1: runtime patch udiv/sdiv instructions into __aeabi_{u}idiv() · 42f25bdd
      Nicolas Pitre 提交于
      The ARM compiler inserts calls to __aeabi_idiv() and
      __aeabi_uidiv() when it needs to perform division on signed and
      unsigned integers. If a processor has support for the sdiv and
      udiv instructions, the kernel may overwrite the beginning of those
      functions with those instructions and a "bx lr" to get better
      performance.
      
      To ensure that those functions are aligned to a 32-bit word for easier
      patching (which might not always be the case in Thumb mode) and that
      the two patched instructions end up in the same cache line, a 8-byte
      alignment is enforced when ARM_PATCH_IDIV is selected.
      
      This was heavily inspired by a previous patch from Stephen Boyd.
      Signed-off-by: NNicolas Pitre <nico@linaro.org>
      Acked-by: NArnd Bergmann <arnd@arndb.de>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      42f25bdd
  21. 14 12月, 2015 2 次提交
  22. 18 8月, 2015 1 次提交
    • S
      ARM: 8415/1: early fixmap support for earlycon · a5f4c561
      Stefan Agner 提交于
      Add early fixmap support, initially to support permanent, fixed
      mapping support for early console. A temporary, early pte is
      created which is migrated to a permanent mapping in paging_init.
      This is also needed since the attributes may change as the memory
      types are initialized. The 3MiB range of fixmap spans two pte
      tables, but currently only one pte is created for early fixmap
      support.
      
      Re-add FIX_KMAP_BEGIN to the index calculation in highmem.c since
      the index for kmap does not start at zero anymore. This reverts
      4221e2e6 ("ARM: 8031/1: fixmap: remove FIX_KMAP_BEGIN and
      FIX_KMAP_END") to some extent.
      
      Cc: Mark Salter <msalter@redhat.com>
      Cc: Kees Cook <keescook@chromium.org>
      Cc: Laura Abbott <lauraa@codeaurora.org>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
      Signed-off-by: NRob Herring <robh@kernel.org>
      Signed-off-by: NStefan Agner <stefan@agner.ch>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      a5f4c561
  23. 03 8月, 2015 1 次提交
    • M
      ARM: migrate to common PSCI client code · be120397
      Mark Rutland 提交于
      Now that the common PSCI client code has been factored out to
      drivers/firmware, and made safe for 32-bit use, move the 32-bit ARM code
      over to it. This results in a moderate reduction of duplicated lines,
      and will prevent further duplication as the PSCI client code is updated
      for PSCI 1.0 and beyond.
      
      The two legacy platform users of the PSCI invocation code are updated to
      account for interface changes. In both cases the power state parameter
      (which is constant) is now generated using macros, so that the
      pack/unpack logic can be killed in preparation for PSCI 1.0 power state
      changes.
      Signed-off-by: NMark Rutland <mark.rutland@arm.com>
      Acked-by: NRob Herring <robh@kernel.org>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Cc: Ashwin Chaugule <ashwin.chaugule@linaro.org>
      Cc: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
      Cc: Russell King <rmk+kernel@arm.linux.org.uk>
      Cc: Will Deacon <will.deacon@arm.com>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      be120397
  24. 01 8月, 2015 1 次提交
    • S
      ARM: 8392/3: smp: Only expose /sys/.../cpuX/online if hotpluggable · 787047ee
      Stephen Boyd 提交于
      Writes to /sys/.../cpuX/online fail if we determine the platform
      doesn't support hotplug for that CPU. Furthermore, if the cpu_die
      op isn't specified the system hangs when we try to offline a CPU
      and it comes right back online unexpectedly. Let's figure this
      stuff out before we make the sysfs nodes so that the online file
      doesn't even exist if it isn't (at least sometimes) possible to
      hotplug the CPU.
      
      Add a new 'cpu_can_disable' op and repoint all 'cpu_disable'
      implementations at it because all implementers use the op to
      indicate if a CPU can be hotplugged or not in a static fashion.
      With PSCI we may need to add a 'cpu_disable' op so that the
      secure OS can be migrated off the CPU we're trying to hotplug.
      In this case, the 'cpu_can_disable' op will indicate that all
      CPUs are hotpluggable by returning true, but the 'cpu_disable' op
      will make a PSCI migration call and occasionally fail, denying
      the hotplug of a CPU. This shouldn't be any worse than x86 where
      we may indicate that all CPUs are hotpluggable but occasionally
      we can't offline a CPU due to check_irq_vectors_for_cpu_disable()
      failing to find a CPU to move vectors to.
      
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Nicolas Pitre <nico@linaro.org>
      Cc: Dave Martin <Dave.Martin@arm.com>
      Acked-by: Simon Horman <horms@verge.net.au> [shmobile portion]
      Tested-by: NSimon Horman <horms@verge.net.au>
      Cc: Magnus Damm <magnus.damm@gmail.com>
      Cc: <linux-sh@vger.kernel.org>
      Tested-by: NTyler Baker <tyler.baker@linaro.org>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Signed-off-by: NStephen Boyd <sboyd@codeaurora.org>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      787047ee
  25. 02 6月, 2015 1 次提交
  26. 28 5月, 2015 1 次提交
  27. 08 5月, 2015 1 次提交
  28. 28 3月, 2015 2 次提交
  29. 18 3月, 2015 1 次提交
  30. 21 1月, 2015 1 次提交
  31. 05 1月, 2015 1 次提交
  32. 02 12月, 2014 1 次提交
  33. 21 11月, 2014 1 次提交