Browse Source

fs/cramfs: add xip option

Cramfs now has the ability to XIP all ELF files.

Cc: Nicolas Pitre <nico@linaro.org>
Signed-off-by: Chris Brandt <chris.brandt@renesas.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Chris Brandt 6 years ago
parent
commit
265aee8c51
2 changed files with 28 additions and 0 deletions
  1. 20 0
      fs/cramfs/Config.in
  2. 8 0
      fs/cramfs/cramfs.mk

+ 20 - 0
fs/cramfs/Config.in

@@ -4,3 +4,23 @@ config BR2_TARGET_ROOTFS_CRAMFS
 	  Build a cramfs root filesystem
 
 	  https://github.com/npitre/cramfs-tools
+
+if BR2_TARGET_ROOTFS_CRAMFS
+
+config BR2_TARGET_ROOTFS_CRAMFS_XIP
+	bool "Support XIP of all ELF files"
+	help
+	  For ELF files, uncompressed and properly aligned data blocks
+	  will be automatically be mapped directly into user space
+	  whenever possible providing eXecute-In-Place (XIP) from ROM
+	  of read-only segments. Data segments mapped read-write
+	  (hence they have to be copied to RAM) may still be
+	  compressed in the cramfs image in the same file along with
+	  non compressed read-only segments. Both MMU and no-MMU
+	  systems are supported. This is particularly handy for tiny
+	  embedded systems with very tight memory constraints.
+
+	  The CRAMFS_MTD Kconfig option must also be enabled in a
+	  4.15+ kernel.
+
+endif # BR2_TARGET_ROOTFS_CRAMFS

+ 8 - 0
fs/cramfs/cramfs.mk

@@ -10,6 +10,14 @@ else
 CRAMFS_OPTS = -L
 endif
 
+ifeq ($(BR2_TARGET_ROOTFS_CRAMFS_XIP),y)
+ifeq ($(BR2_USE_MMU),y)
+CRAMFS_OPTS += -X -X
+else
+CRAMFS_OPTS += -X
+endif
+endif
+
 define ROOTFS_CRAMFS_CMD
 	$(HOST_DIR)/bin/mkcramfs $(CRAMFS_OPTS) $(TARGET_DIR) $@
 endef