OSDN Git Service

Merge branch 'xip_zdata' of http://git.linaro.org/people/nicolas.pitre/linux into...
authorRussell King <rmk+kernel@armlinux.org.uk>
Thu, 28 Sep 2017 10:15:14 +0000 (11:15 +0100)
committerRussell King <rmk+kernel@armlinux.org.uk>
Thu, 28 Sep 2017 10:15:37 +0000 (11:15 +0100)
This contains important fixes to the XIP linker script, some more linker
script cleanups, .bss clearing and .data copying speedups related to the
above, and an opt-in config option for XIP kernels that allows for
compressing .data in ROM that depend on those other patches to work
properly.

1  2 
arch/arm/Kconfig

diff --combined arch/arm/Kconfig
@@@ -50,7 -50,7 +50,7 @@@ config AR
        select HAVE_ARCH_SECCOMP_FILTER if (AEABI && !OABI_COMPAT)
        select HAVE_ARCH_TRACEHOOK
        select HAVE_ARM_SMCCC if CPU_V7
 -      select HAVE_CBPF_JIT
 +      select HAVE_EBPF_JIT if !CPU_ENDIAN_BE32
        select HAVE_CC_STACKPROTECTOR
        select HAVE_CONTEXT_TRACKING
        select HAVE_C_RECORDMCOUNT
@@@ -1531,6 -1531,7 +1531,6 @@@ config THUMB2_KERNE
        bool "Compile the kernel in Thumb-2 mode" if !CPU_THUMBONLY
        depends on (CPU_V7 || CPU_V7M) && !CPU_V6 && !CPU_V6K
        default y if CPU_THUMBONLY
 -      select AEABI
        select ARM_ASM_UNIFIED
        select ARM_UNWIND
        help
@@@ -1593,8 -1594,7 +1593,8 @@@ config ARM_PATCH_IDI
          code to do integer division.
  
  config AEABI
 -      bool "Use the ARM EABI to compile the kernel"
 +      bool "Use the ARM EABI to compile the kernel" if !CPU_V7 && !CPU_V7M && !CPU_V6 && !CPU_V6K
 +      default CPU_V7 || CPU_V7M || CPU_V6 || CPU_V6K
        help
          This option allows for the kernel to be compiled using the latest
          ARM ABI (aka EABI).  This is only useful if you are using a user
@@@ -2005,6 -2005,17 +2005,17 @@@ config XIP_PHYS_ADD
          be linked for and stored to.  This address is dependent on your
          own flash usage.
  
+ config XIP_DEFLATED_DATA
+       bool "Store kernel .data section compressed in ROM"
+       depends on XIP_KERNEL
+       select ZLIB_INFLATE
+       help
+         Before the kernel is actually executed, its .data section has to be
+         copied to RAM from ROM. This option allows for storing that data
+         in compressed form and decompressed to RAM rather than merely being
+         copied, saving some precious ROM space. A possible drawback is a
+         slightly longer boot delay.
  config KEXEC
        bool "Kexec system call (EXPERIMENTAL)"
        depends on (!SMP || PM_SLEEP_SMP)