@@ -4,3 +4,20 @@ 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
@@ -4,6 +4,14 @@
#
################################################################################
+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
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> --- fs/cramfs/Config.in | 17 +++++++++++++++++ fs/cramfs/cramfs.mk | 8 ++++++++ 2 files changed, 25 insertions(+)