Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH v3 0/2] Add support for AXFS filesystem type
@ 2015-10-14 19:51 Ariel D'Alessandro
  2015-10-14 19:51 ` [Buildroot] [PATCH v3 1/2] axfsutils: add new package Ariel D'Alessandro
  2015-10-14 19:51 ` [Buildroot] [PATCH v3 2/2] axfs: add new filesystem type Ariel D'Alessandro
  0 siblings, 2 replies; 5+ messages in thread
From: Ariel D'Alessandro @ 2015-10-14 19:51 UTC (permalink / raw)
  To: buildroot

This patch series adds support for using the AXFS filesystem type.

The Advanced XIP File System is a Linux kernel filesystem driver that
enables files to be executed directly from flash or ROM memory rather
than being copied into RAM. It has the ability to store individual
*pages* in a file uncompressed/XIP or compressed/Demand Paged.

At the moment, the FS is not supported in Linux mainline (v4.3-rc5), so
the kernel has to be built with the axfs patches to be able to read it.
Patches can be found here: https://github.com/jaredeh/axfs
NOTE: adding this as a kernel extension is planned.

The mkfs.axfs utility is used to create an AXFS file system image. It
can receive an additional argument using the -i flag which points to a
CSV file that indicates which pages the user desires to have marked for
XIP within the file system image.

This patch only adds support for 'XIP all' mode, so all the files that
have the execute attribute set will be XIP'ed. Support for more options
(including AXFS profiling tool) will be submitted in following patches.

More info can be found here:
* http://elinux.org/AXFS
* http://www.academypublisher.com/ojs/index.php/jcp/article/viewFile/03017989/370
* http://docslide.us/documents/application-execute-in-place-xip-with-linux-and-axfs.html

Changes from v2:
* Added host-zlib as a dependency.
* Fixed LICENSE_FILES path.
* Expanded explanation in config help.

Changes from v1:
* Removed unnecessary call to $(generic-package) in axfsutils.mk.

Thanks,

Ariel D'Alessandro (2):
  axfsutils: add new package
  axfs: add new filesystem type

 fs/Config.in                   |  1 +
 fs/axfs/Config.in              | 16 ++++++++++++++++
 fs/axfs/axfs.mk                | 13 +++++++++++++
 package/axfsutils/axfsutils.mk | 23 +++++++++++++++++++++++
 4 files changed, 53 insertions(+)
 create mode 100644 fs/axfs/Config.in
 create mode 100644 fs/axfs/axfs.mk
 create mode 100644 package/axfsutils/axfsutils.mk

-- 
2.6.1

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Buildroot] [PATCH v3 1/2] axfsutils: add new package
  2015-10-14 19:51 [Buildroot] [PATCH v3 0/2] Add support for AXFS filesystem type Ariel D'Alessandro
@ 2015-10-14 19:51 ` Ariel D'Alessandro
  2015-10-14 21:48   ` Thomas Petazzoni
  2015-10-14 19:51 ` [Buildroot] [PATCH v3 2/2] axfs: add new filesystem type Ariel D'Alessandro
  1 sibling, 1 reply; 5+ messages in thread
From: Ariel D'Alessandro @ 2015-10-14 19:51 UTC (permalink / raw)
  To: buildroot

Tools for building AXFS Filesystem.

The Advanced XIP File System is a Linux kernel filesystem driver that
enables files to be executed directly from flash or ROM memory rather
than being copied into RAM. It has the ability to store individual
*pages* in a file uncompressed/XIP or compressed/Demand Paged.

Source:
	https://github.com/jaredeh/axfs

Signed-off-by: Ariel D'Alessandro <ariel@vanguardiasur.com.ar>
---
 package/axfsutils/axfsutils.mk | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)
 create mode 100644 package/axfsutils/axfsutils.mk

diff --git a/package/axfsutils/axfsutils.mk b/package/axfsutils/axfsutils.mk
new file mode 100644
index 0000000..1dba1c4
--- /dev/null
+++ b/package/axfsutils/axfsutils.mk
@@ -0,0 +1,23 @@
+################################################################################
+#
+# axfsutils
+#
+################################################################################
+
+AXFSUTILS_VERSION = f26ae785e33df76f658b71ef2cfbc7f511ff875d
+AXFSUTILS_SITE = $(call github,jaredeh,axfs,$(AXFSUTILS_VERSION))
+AXFSUTILS_LICENSE = GPLv2
+AXFSUTILS_LICENSE_FILES = mkfs.axfs-legacy/COPYING
+AXFSUTILS_DEPENDENCIES = host-zlib
+
+# The 'new' mkfs.axfs version requires GNUstep which is not a buildroot
+# prerequisite. The 'legacy' one works just as well without that requirement.
+define HOST_AXFSUTILS_BUILD_CMDS
+	$(HOST_MAKE_ENV) $(MAKE) -C $(@D)/mkfs.axfs-legacy
+endef
+
+define HOST_AXFSUTILS_INSTALL_CMDS
+	cp $(@D)/mkfs.axfs-legacy/mkfs.axfs $(HOST_DIR)/usr/bin/
+endef
+
+$(eval $(host-generic-package))
-- 
2.6.1

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [Buildroot] [PATCH v3 2/2] axfs: add new filesystem type
  2015-10-14 19:51 [Buildroot] [PATCH v3 0/2] Add support for AXFS filesystem type Ariel D'Alessandro
  2015-10-14 19:51 ` [Buildroot] [PATCH v3 1/2] axfsutils: add new package Ariel D'Alessandro
@ 2015-10-14 19:51 ` Ariel D'Alessandro
  2015-10-14 21:49   ` Thomas Petazzoni
  1 sibling, 1 reply; 5+ messages in thread
From: Ariel D'Alessandro @ 2015-10-14 19:51 UTC (permalink / raw)
  To: buildroot

The Advanced XIP File System is a Linux kernel filesystem driver that
enables files to be executed directly from flash or ROM memory rather
than being copied into RAM. It has the ability to store individual
*pages* in a file uncompressed/XIP or compressed/Demand Paged.

This commit only adds support for 'XIP all' mode, so all the files that
have the execute attribute set will be XIP'ed.

At the moment, the FS is not supported in Linux mainline (v4.3-rc5), so
the kernel has to be built with the axfs patches to be able to read it.
Patches can be found here: https://github.com/jaredeh/axfs

Signed-off-by: Ariel D'Alessandro <ariel@vanguardiasur.com.ar>
---
 fs/Config.in      |  1 +
 fs/axfs/Config.in | 16 ++++++++++++++++
 fs/axfs/axfs.mk   | 13 +++++++++++++
 3 files changed, 30 insertions(+)
 create mode 100644 fs/axfs/Config.in
 create mode 100644 fs/axfs/axfs.mk

diff --git a/fs/Config.in b/fs/Config.in
index 5853113..51ccf28 100644
--- a/fs/Config.in
+++ b/fs/Config.in
@@ -1,5 +1,6 @@
 menu "Filesystem images"
 
+source "fs/axfs/Config.in"
 source "fs/cloop/Config.in"
 source "fs/cpio/Config.in"
 source "fs/cramfs/Config.in"
diff --git a/fs/axfs/Config.in b/fs/axfs/Config.in
new file mode 100644
index 0000000..2c97715
--- /dev/null
+++ b/fs/axfs/Config.in
@@ -0,0 +1,16 @@
+config BR2_TARGET_ROOTFS_AXFS
+	bool "axfs root filesystem"
+	help
+	  The Advanced XIP File System is a Linux kernel filesystem driver
+	  that enables files to be executed directly from flash or ROM
+	  memory rather than being copied into RAM. It has the ability to
+	  store individual *pages* in a file uncompressed/XIP or
+	  compressed/Demand Paged.
+
+	  So far, the only supported mode is 'XIP all', so all the files
+	  that have the execute attribute set will be XIP'ed.
+
+	  At the moment, the FS is not supported in Linux mainline
+	  (v4.3-rc5), so the kernel has to be built with the axfs patches
+	  to be able to read it. Patches can be found here:
+	    https://github.com/jaredeh/axfs
diff --git a/fs/axfs/axfs.mk b/fs/axfs/axfs.mk
new file mode 100644
index 0000000..05d6e5d
--- /dev/null
+++ b/fs/axfs/axfs.mk
@@ -0,0 +1,13 @@
+################################################################################
+#
+# Build the axfs root filesystem image
+#
+################################################################################
+
+ROOTFS_AXFS_DEPENDENCIES = host-axfsutils
+
+define ROOTFS_AXFS_CMD
+	$(HOST_DIR)/usr/bin/mkfs.axfs -s -a $(TARGET_DIR) $@
+endef
+
+$(eval $(call ROOTFS_TARGET,axfs))
-- 
2.6.1

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [Buildroot] [PATCH v3 1/2] axfsutils: add new package
  2015-10-14 19:51 ` [Buildroot] [PATCH v3 1/2] axfsutils: add new package Ariel D'Alessandro
@ 2015-10-14 21:48   ` Thomas Petazzoni
  0 siblings, 0 replies; 5+ messages in thread
From: Thomas Petazzoni @ 2015-10-14 21:48 UTC (permalink / raw)
  To: buildroot

Dear Ariel D'Alessandro,

On Wed, 14 Oct 2015 16:51:25 -0300, Ariel D'Alessandro wrote:
> Tools for building AXFS Filesystem.
> 
> The Advanced XIP File System is a Linux kernel filesystem driver that
> enables files to be executed directly from flash or ROM memory rather
> than being copied into RAM. It has the ability to store individual
> *pages* in a file uncompressed/XIP or compressed/Demand Paged.
> 
> Source:
> 	https://github.com/jaredeh/axfs
> 
> Signed-off-by: Ariel D'Alessandro <ariel@vanguardiasur.com.ar>
> ---
>  package/axfsutils/axfsutils.mk | 23 +++++++++++++++++++++++
>  1 file changed, 23 insertions(+)
>  create mode 100644 package/axfsutils/axfsutils.mk

Applied with some minor tweaks:

    [Thomas:
     - add hash file.
     - use $(INSTALL) -D -m 0755 instead of cp for installing mkfs.axfs.]

Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [Buildroot] [PATCH v3 2/2] axfs: add new filesystem type
  2015-10-14 19:51 ` [Buildroot] [PATCH v3 2/2] axfs: add new filesystem type Ariel D'Alessandro
@ 2015-10-14 21:49   ` Thomas Petazzoni
  0 siblings, 0 replies; 5+ messages in thread
From: Thomas Petazzoni @ 2015-10-14 21:49 UTC (permalink / raw)
  To: buildroot

Dear Ariel D'Alessandro,

On Wed, 14 Oct 2015 16:51:26 -0300, Ariel D'Alessandro wrote:
> The Advanced XIP File System is a Linux kernel filesystem driver that
> enables files to be executed directly from flash or ROM memory rather
> than being copied into RAM. It has the ability to store individual
> *pages* in a file uncompressed/XIP or compressed/Demand Paged.
> 
> This commit only adds support for 'XIP all' mode, so all the files that
> have the execute attribute set will be XIP'ed.
> 
> At the moment, the FS is not supported in Linux mainline (v4.3-rc5), so
> the kernel has to be built with the axfs patches to be able to read it.
> Patches can be found here: https://github.com/jaredeh/axfs
> 
> Signed-off-by: Ariel D'Alessandro <ariel@vanguardiasur.com.ar>
> ---
>  fs/Config.in      |  1 +
>  fs/axfs/Config.in | 16 ++++++++++++++++
>  fs/axfs/axfs.mk   | 13 +++++++++++++
>  3 files changed, 30 insertions(+)
>  create mode 100644 fs/axfs/Config.in
>  create mode 100644 fs/axfs/axfs.mk

Applied with some minor tweaks:

    [Thomas: rewrap Config.in help text.]

Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2015-10-14 21:49 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-10-14 19:51 [Buildroot] [PATCH v3 0/2] Add support for AXFS filesystem type Ariel D'Alessandro
2015-10-14 19:51 ` [Buildroot] [PATCH v3 1/2] axfsutils: add new package Ariel D'Alessandro
2015-10-14 21:48   ` Thomas Petazzoni
2015-10-14 19:51 ` [Buildroot] [PATCH v3 2/2] axfs: add new filesystem type Ariel D'Alessandro
2015-10-14 21:49   ` Thomas Petazzoni

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox