1. 29 1月, 2015 1 次提交
  2. 14 11月, 2014 1 次提交
    • W
      ARM: 8191/1: decompressor: ensure I-side picks up relocated code · 238962ac
      Will Deacon 提交于
      To speed up decompression, the decompressor sets up a flat, cacheable
      mapping of memory. However, when there is insufficient space to hold
      the page tables for this mapping, we don't bother to enable the caches
      and subsequently skip all the cache maintenance hooks.
      
      Skipping the cache maintenance before jumping to the relocated code
      allows the processor to predict the branch and populate the I-cache
      with stale data before the relocation loop has completed (since a
      bootloader may have SCTLR.I set, which permits normal, cacheable
      instruction fetches regardless of SCTLR.M).
      
      This patch moves the cache maintenance check into the maintenance
      routines themselves, allowing the v6/v7 versions to invalidate the
      I-cache regardless of the MMU state.
      
      Cc: <stable@vger.kernel.org>
      Reported-by: NMarc Carino <marc.ceeeee@gmail.com>
      Tested-by: NJulien Grall <julien.grall@linaro.org>
      Signed-off-by: NWill Deacon <will.deacon@arm.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      238962ac
  3. 18 7月, 2014 1 次提交
    • N
      ARM: 8079/1: zImage: identify kernel endianness · 9696fcae
      Nicolas Pitre 提交于
      With patch #8067/1 ("zImage: ensure header in LE format for BE8 kernels")
      applied, it is no longer possible to determine the endianness of a compiled
      kernel image.  This normally shouldn't matter to the boot environment,
      except for those cases where the selection of a ramdisk or root filesystem
      with a matching endianness has to be automated.
      
      Let's add a flag to the zImage header indicating the actual endianness.
      Four bytes from offset 0x30 can be interpreted as follows:
      
      	04 03 02 01	big endian kernel
      
      	01 02 03 04	little endian kernel
      
      Anything else should be interpreted as "unknown", in which case it is
      most likely that patch #8067/1 was not applied either and the zImage
      magic number at offset 0x24 could be used instead to determine
      endianness. No zImage before this patch ever produced 0x01020304 nor
      0x04030201 at offset 0x30 so there is no confusion possible.
      Signed-off-by: NNicolas Pitre <nico@linaro.org>
      Acked-by: NKevin Hilman <khilman@linaro.org>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      9696fcae
  4. 01 7月, 2014 1 次提交
  5. 26 5月, 2014 1 次提交
  6. 20 10月, 2013 2 次提交
  7. 24 6月, 2013 1 次提交
  8. 17 6月, 2013 1 次提交
  9. 06 6月, 2013 2 次提交
    • M
      ARM: 7750/1: update legacy CPU ID in decompressor cache support jump table · ced2a3b8
      Marc C 提交于
      The previous mask values for the legacy ARM CPU IDs were conflicting
      with the CPU ID assignments for late-generation CPUs (like the
      Qualcomm MSM/QSD or Broadcom Brahma-15 processors). This change
      corrects the legacy ARM CPU ID value so that the jump table can
      fall-through to the appropriate cache maintenance / MMU functions.
      Signed-off-by: NMarc C <marc.ceeeee@gmail.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      ced2a3b8
    • A
      ARM: 7743/1: compressed/head.S: work around new binutils warning · da94a829
      Arnd Bergmann 提交于
      In August 2012, Matthew Gretton-Dann checked a change into binutils
      labelled "Error on obsolete & warn on deprecated registers", apparently as
      part of ARMv8 support. Apparently, this was supposed to emit the message
      "Warning: This coprocessor register access is deprecated in ARMv8" when
      using certain mcr/mrc instructions and building for ARMv8. Unfortunately,
      the message that is actually emitted appears to be '(null)', which is
      less helpful in comparison.
      
      Even more unfortunately, this is biting us on every single kernel
      build with a new gas, because arch/arm/boot/compressed/head.S and some
      other files in that directory are built with -march=all since kernel
      commit 80cec14a "[ARM] Add -march=all to assembly file build in
      arch/arm/boot/compressed" back in v2.6.28.
      
      This patch reverts Russell's nice solution and instead marks the head.S
      file to be built for armv7-a, which fortunately lets us build all
      instructions in that file without warnings even on the broken binutils.
      
      Without this patch, building anything results in:
      
      arch/arm/boot/compressed/head.S: Assembler messages:
      arch/arm/boot/compressed/head.S:565: Warning: (null)
      arch/arm/boot/compressed/head.S:676: Warning: (null)
      arch/arm/boot/compressed/head.S:698: Warning: (null)
      arch/arm/boot/compressed/head.S:722: Warning: (null)
      arch/arm/boot/compressed/head.S:726: Warning: (null)
      arch/arm/boot/compressed/head.S:957: Warning: (null)
      arch/arm/boot/compressed/head.S:996: Warning: (null)
      arch/arm/boot/compressed/head.S:997: Warning: (null)
      arch/arm/boot/compressed/head.S:1027: Warning: (null)
      arch/arm/boot/compressed/head.S:1035: Warning: (null)
      arch/arm/boot/compressed/head.S:1046: Warning: (null)
      arch/arm/boot/compressed/head.S:1060: Warning: (null)
      arch/arm/boot/compressed/head.S:1092: Warning: (null)
      arch/arm/boot/compressed/head.S:1094: Warning: (null)
      arch/arm/boot/compressed/head.S:1095: Warning: (null)
      arch/arm/boot/compressed/head.S:1102: Warning: (null)
      arch/arm/boot/compressed/head.S:1134: Warning: (null)
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Cc: stable@vger.kernel.org
      Cc: Matthew Gretton-Dann <matthew.gretton-dann@arm.com>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      da94a829
  10. 16 12月, 2012 1 次提交
  11. 23 11月, 2012 1 次提交
    • D
      ARM: 7583/1: decompressor: Enable unaligned memory access for v6 and above · 5010192d
      Dave Martin 提交于
      Modern GCC can generate code which makes use of the CPU's native
      unaligned memory access capabilities.  This is useful for the C
      decompressor implementations used for unpacking compressed kernels.
      
      This patch disables alignment faults and enables the v6 unaligned
      access model on CPUs which support these features (i.e., v6 and
      later), allowing full unaligned access support for C code in the
      decompressor.
      
      The decompressor C code must not be built to assume that unaligned
      access works if support for v5 or older platforms is included in
      the kernel.
      
      For correct code generation, C decompressor code must always use
      the get_unaligned and put_unaligned accessors when dealing with
      unaligned pointers, regardless of this patch.
      Signed-off-by: NDave Martin <dave.martin@linaro.org>
      Acked-by: NNicolas Pitre <nico@linaro.org>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      5010192d
  12. 19 9月, 2012 1 次提交
    • D
      ARM: zImage/virt: hyp mode entry support for the zImage loader · 424e5994
      Dave Martin 提交于
      The zImage loader needs to turn on the MMU in order to take
      advantage of caching while decompressing the zImage.  Running this
      in hyp mode would require the LPAE pagetable format to be
      supported; to avoid this complexity, this patch switches out of hyp
      mode, and returns back to hyp mode just before booting the kernel.
      
      This implementation assumes that the Hyp mode view of memory and the
      PL1 view of memory are coherent, providing that the MMU and caches
      are off in both, as required by the boot protocol.  The zImage
      decompression code must drain the write buffer on completion anyway, and
      entry into Hyp mode should flush any prefetch buffer, avoiding hazards
      associated with local write buffers and the pipeline.
      Signed-off-by: NDave Martin <dave.martin@linaro.org>
      Signed-off-by: NMarc Zyngier <marc.zyngier@arm.com>
      424e5994
  13. 16 9月, 2012 1 次提交
  14. 25 8月, 2012 1 次提交
  15. 10 5月, 2012 1 次提交
  16. 09 5月, 2012 1 次提交
  17. 13 4月, 2012 1 次提交
  18. 03 3月, 2012 1 次提交
    • K
      ARM: S3C24XX: change the ARCH_S3C2410 to ARCH_S3C24XX · b130d5c2
      Kukjin Kim 提交于
      This patch changes the ARCH name to "ARCH_S3C24XX" for Samsung
      S3C2410, S3C2412, S3C2413, S3C2416, S3C2440, S3C2442, S3C2443,
      and S3C2450 SoCs so that we can merge the mach-xxx directories
      and plat-s3c24xx dir. to just one mach-s3c24xx for them.
      
      I think this should be sent to upstream via samsung tree because
      this touches many samsung stuff.
      
      Cc: Dmitry Torokhov <dmitry.torokhov@gmail.com>
      Cc: Richard Purdie <rpurdie@rpsys.net>
      Cc: Chris Ball <cjb@laptop.org>
      Cc: David Woodhouse <dwmw2@infradead.org>
      Cc: Alessandro Zummo <a.zummo@towertech.it>
      Cc: Grant Likely <grant.likely@secretlab.ca>
      Cc: Greg Kroah-Hartman <gregkh@suse.de>
      [for the gadget part:]
      Acked-by: NFelipe Balbi <balbi@ti.com>
      [for the framebuffer (video) part:]
      Acked-by: NFlorian Tobias Schandinat <FlorianSchandinat@gmx.de>
      [For the watchdog-part:]
      Acked-by: NWim Van Sebroeck <wim@iguana.be>
      Cc: Sangbeom Kim <sbkim73@samsung.com>
      Cc: Liam Girdwood <lrg@ti.com>
      Cc: Mark Brown <broonie@opensource.wolfsonmicro.com>
      Cc: Russell King <rmk+kernel@arm.linux.org.uk>
      Signed-off-by: NKukjin Kim <kgene.kim@samsung.com>
      b130d5c2
  19. 08 12月, 2011 1 次提交
  20. 25 10月, 2011 1 次提交
  21. 15 9月, 2011 3 次提交
  22. 19 7月, 2011 1 次提交
    • D
      ARM: 6999/1: head, zImage: Always Enter the kernel in ARM state · 540b5738
      Dave Martin 提交于
      Currently, the documented kernel entry requirements are not
      explicit about whether the kernel should be entered in ARM or
      Thumb, leading to an ambiguitity about how to enter Thumb-2
      kernels.  As a result, the kernel is reliant on the zImage
      decompressor to enter the kernel proper in the correct instruction
      set state.
      
      This patch changes the boot entry protocol for head.S and Image to
      be the same as for zImage: in all cases, the kernel is now entered
      in ARM.
      
      Documentation/arm/Booting is updated to reflect this new policy.
      
      A different rule will be needed for Cortex-M class CPUs as and when
      support for those lands in mainline, since these CPUs don't support
      the ARM instruction set at all: a note is added to the effect that
      the kernel must be entered in Thumb on such systems.
      Signed-off-by: NDave Martin <dave.martin@linaro.org>
      Acked-by: NNicolas Pitre <nicolas.pitre@linaro.org>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      540b5738
  23. 21 6月, 2011 1 次提交
  24. 09 6月, 2011 1 次提交
  25. 12 5月, 2011 1 次提交
  26. 07 5月, 2011 5 次提交
  27. 04 5月, 2011 1 次提交
  28. 29 3月, 2011 1 次提交
    • S
      ARM: 6826/1: Merge v6 and v7 DEBUG_LL DCC support · dfad549d
      Stephen Boyd 提交于
      The inline assembly differences for v6 vs. v7 are purely
      optimizations. On a v7 processor, an mrc with the pc sets the
      condition codes to the 28-31 bits of the register being read. It
      just so happens that the TX/RX full bits the DCC support code is
      testing for are high enough in the register to be put into the
      condition codes. On a v6 processor, this "feature" isn't
      implemented and thus we have to do the usual read, mask, test
      operations to check for TX/RX full. Thus, we can drop the v7
      implementation and just use the v6 implementation for both.
      
      Cc: Tony Lindgren <tony@atomide.com>
      Signed-off-by: NStephen Boyd <sboyd@codeaurora.org>
      Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
      dfad549d
  29. 24 2月, 2011 2 次提交
  30. 03 2月, 2011 1 次提交
  31. 30 11月, 2010 1 次提交