Patchwork [1/2] ocf-linux: new package

login
register
mail settings
Submitter Gustavo Zacarias
Date May 4, 2012, 7:23 p.m.
Message ID <1336159393-17052-2-git-send-email-gustavo@zacarias.com.ar>
Download mbox | patch
Permalink /patch/156978/
State Superseded
Headers show

Comments

Gustavo Zacarias - May 4, 2012, 7:23 p.m.
Add the ocf-linux package and linux kernel extension.

Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
---
 linux/Config.ext.in            |   12 ++++++++++++
 linux/linux-ext-ocf-linux.mk   |   21 +++++++++++++++++++++
 package/Config.in              |    1 +
 package/ocf-linux/Config.in    |   12 ++++++++++++
 package/ocf-linux/ocf-linux.mk |   21 +++++++++++++++++++++
 5 files changed, 67 insertions(+), 0 deletions(-)
 create mode 100644 linux/linux-ext-ocf-linux.mk
 create mode 100644 package/ocf-linux/Config.in
 create mode 100644 package/ocf-linux/ocf-linux.mk
Peter Korsgaard - May 5, 2012, 12:06 p.m.
>>>>> "Gustavo" == Gustavo Zacarias <gustavo@zacarias.com.ar> writes:

Hi,

A few comments:

 Gustavo> Add the ocf-linux package and linux kernel extension.
 Gustavo> Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
 Gustavo> ---
 Gustavo>  linux/Config.ext.in            |   12 ++++++++++++
 Gustavo>  linux/linux-ext-ocf-linux.mk   |   21 +++++++++++++++++++++
 Gustavo>  package/Config.in              |    1 +
 Gustavo>  package/ocf-linux/Config.in    |   12 ++++++++++++
 Gustavo>  package/ocf-linux/ocf-linux.mk |   21 +++++++++++++++++++++
 Gustavo>  5 files changed, 67 insertions(+), 0 deletions(-)
 Gustavo>  create mode 100644 linux/linux-ext-ocf-linux.mk
 Gustavo>  create mode 100644 package/ocf-linux/Config.in
 Gustavo>  create mode 100644 package/ocf-linux/ocf-linux.mk

 Gustavo> diff --git a/linux/Config.ext.in b/linux/Config.ext.in
 Gustavo> index 172fa76..943c380 100644
 Gustavo> --- a/linux/Config.ext.in
 Gustavo> +++ b/linux/Config.ext.in
 Gustavo> @@ -23,6 +23,18 @@ config BR2_LINUX_KERNEL_EXT_XENOMAI_ADEOS_PATCH
 Gustavo>  	  Download it at http://download.gna.org/adeos/patches/v2.6/$(ARCH)/
 Gustavo>  	  and verify that your kernel version in buildroot matches.
 
 Gustavo> +# ocf-linux
 Gustavo> +config BR2_LINUX_KERNEL_EXT_OCF_LINUX
 Gustavo> +	bool "Open Cryptographic Framework (OCF)"
 Gustavo> +	select BR2_PACKAGE_OCF_LINUX
 Gustavo> +	help
 Gustavo> +	  OCF-Linux Kernel part.
 Gustavo> +
 Gustavo> +	  Select this option to patch your kernel with OCF for
 Gustavo> +	  hardware-accelerated crypto support for available drivers.
 Gustavo> +	  Some libraries need to have OCF also enabled for them,

I would move the 'also' - E.G. 'Some libraries need to also have OCF enabled'



 Gustavo> +ifeq ($(BR2_LINUX_KERNEL_EXT_OCF_LINUX),y)
 Gustavo> +LINUX_DEPENDENCIES += ocf-linux
 Gustavo> +
 Gustavo> +# Prepare kernel patch
 Gustavo> +# The linux-3.2.1.patch is just the main inclusion, most of the code
 Gustavo> +# resides in the ocf/ subdir.
 Gustavo> +define OCF_LINUX_PREPARE_KERNEL
 Gustavo> +	support/scripts/apply-patches.sh $(LINUX_DIR) \
 Gustavo> +		$(OCF_LINUX_DIR)/patches/ linux-3.2.1-ocf.patch ; \
 Gustavo> +	cp -rf $(OCF_LINUX_DIR)/ocf $(LINUX_DIR)/crypto/ocf ;
 Gustavo> +endef

How likely is it that this patch will work for a random kernel version?
From the tarball I see a bunch of patches for different versions, so we
probably need something smarter than just hardcoding 3.2.1 - Perhaps
just an option where the user can type the version number of the patch
they want to use?


 Gustavo> +
 Gustavo> +LINUX_PRE_PATCH_HOOKS += OCF_LINUX_PREPARE_KERNEL
 Gustavo> +
 Gustavo> +endif #BR2_LINUX_EXT_OCF_LINUX
 Gustavo> diff --git a/package/Config.in b/package/Config.in
 Gustavo> index 1cd9789..968cacc 100644
 Gustavo> --- a/package/Config.in
 Gustavo> +++ b/package/Config.in
 Gustavo> @@ -279,6 +279,7 @@ source "package/gnutls/Config.in"
 Gustavo>  source "package/libgcrypt/Config.in"
 Gustavo>  source "package/libgpg-error/Config.in"
 Gustavo>  source "package/libnss/Config.in"
 Gustavo> +source "package/ocf-linux/Config.in"
 Gustavo>  source "package/openssl/Config.in"
 Gustavo>  source "package/polarssl/Config.in"
 Gustavo>  endmenu
 Gustavo> diff --git a/package/ocf-linux/Config.in b/package/ocf-linux/Config.in
 Gustavo> new file mode 100644
 Gustavo> index 0000000..3c3a08e
 Gustavo> --- /dev/null
 Gustavo> +++ b/package/ocf-linux/Config.in
 Gustavo> @@ -0,0 +1,12 @@
 Gustavo> +config BR2_PACKAGE_OCF_LINUX
 Gustavo> +	bool "ocf-linux"
 Gustavo> +	help
 Gustavo> +	  OCF-Linux is a Linux port of the OpenBSD/FreeBSD Cryptographic
 Gustavo> +	  Framework (OCF). This port aims to bring full asynchronous HW/SW
 Gustavo> +	  crypto acceleration to the Linux kernel and applications
 Gustavo> +	  running under Linux.
 Gustavo> +
 Gustavo> +	  You need to enable the OCF linux kernel extension or provide
 Gustavo> +	  a prepatched kernel to make this option useful.
 Gustavo> +	  

Trailing spaces (the last empty line).
Gustavo Zacarias - May 5, 2012, 12:39 p.m.
On 2012-05-05 09:06, Peter Korsgaard wrote:

> I would move the 'also' - E.G. 'Some libraries need to also have OCF 
> enabled'

Ok.

> How likely is it that this patch will work for a random kernel 
> version?
> From the tarball I see a bunch of patches for different versions, so 
> we
> probably need something smarter than just hardcoding 3.2.1 - Perhaps
> just an option where the user can type the version number of the 
> patch
> they want to use?

Run-tested as low as 2.6.38.x
Build-tested as low as 2.6.35.x
I can give it a run-test on 2.6.35 maybe, depending on how lucky i am 
with my hardware crypto enabled test platforms.

> Trailing spaces (the last empty line).

Fixed.
Let me know regarding the kernel patch what you prefer given the new 
information to avoid sending zillions of versions.
Regards.
Peter Korsgaard - May 5, 2012, 12:56 p.m.
>>>>> "Gustavo" == Gustavo Zacarias <gustavo@zacarias.com.ar> writes:

Hi,

 Gustavo> Run-tested as low as 2.6.38.x
 Gustavo> Build-tested as low as 2.6.35.x
 Gustavo> I can give it a run-test on 2.6.35 maybe, depending on how lucky i am
 Gustavo> with my hardware crypto enabled test platforms.

So the 3.2.1 patch works with everything from 2.6.35..3.3? If that's the case, then I
think it's OK to alway use that one, but please add a comment explaining
why.
Gustavo Zacarias - May 5, 2012, 1:31 p.m.
On 2012-05-05 09:56, Peter Korsgaard wrote:

> So the 3.2.1 patch works with everything from 2.6.35..3.3? If that's
> the case, then I
> think it's OK to alway use that one, but please add a comment 
> explaining
> why.

Added to linux-ext-ocf-linux.mk as a comment.
Sent v2 patchset.
Regards.

Patch

diff --git a/linux/Config.ext.in b/linux/Config.ext.in
index 172fa76..943c380 100644
--- a/linux/Config.ext.in
+++ b/linux/Config.ext.in
@@ -23,6 +23,18 @@  config BR2_LINUX_KERNEL_EXT_XENOMAI_ADEOS_PATCH
 	  Download it at http://download.gna.org/adeos/patches/v2.6/$(ARCH)/
 	  and verify that your kernel version in buildroot matches.
 
+# ocf-linux
+config BR2_LINUX_KERNEL_EXT_OCF_LINUX
+	bool "Open Cryptographic Framework (OCF)"
+	select BR2_PACKAGE_OCF_LINUX
+	help
+	  OCF-Linux Kernel part.
+
+	  Select this option to patch your kernel with OCF for
+	  hardware-accelerated crypto support for available drivers.
+	  Some libraries need to have OCF also enabled for them,
+	  for example OpenSSL.
+
 # RTAI
 config BR2_LINUX_KERNEL_EXT_RTAI
        bool "RTAI Real-time patch"
diff --git a/linux/linux-ext-ocf-linux.mk b/linux/linux-ext-ocf-linux.mk
new file mode 100644
index 0000000..83e26ef
--- /dev/null
+++ b/linux/linux-ext-ocf-linux.mk
@@ -0,0 +1,21 @@ 
+##################################################
+# Linux OCF extension
+#
+# Patch the linux kernel with OCF
+##################################################
+
+ifeq ($(BR2_LINUX_KERNEL_EXT_OCF_LINUX),y)
+LINUX_DEPENDENCIES += ocf-linux
+
+# Prepare kernel patch
+# The linux-3.2.1.patch is just the main inclusion, most of the code
+# resides in the ocf/ subdir.
+define OCF_LINUX_PREPARE_KERNEL
+	support/scripts/apply-patches.sh $(LINUX_DIR) \
+		$(OCF_LINUX_DIR)/patches/ linux-3.2.1-ocf.patch ; \
+	cp -rf $(OCF_LINUX_DIR)/ocf $(LINUX_DIR)/crypto/ocf ;
+endef
+
+LINUX_PRE_PATCH_HOOKS += OCF_LINUX_PREPARE_KERNEL
+
+endif #BR2_LINUX_EXT_OCF_LINUX
diff --git a/package/Config.in b/package/Config.in
index 1cd9789..968cacc 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -279,6 +279,7 @@  source "package/gnutls/Config.in"
 source "package/libgcrypt/Config.in"
 source "package/libgpg-error/Config.in"
 source "package/libnss/Config.in"
+source "package/ocf-linux/Config.in"
 source "package/openssl/Config.in"
 source "package/polarssl/Config.in"
 endmenu
diff --git a/package/ocf-linux/Config.in b/package/ocf-linux/Config.in
new file mode 100644
index 0000000..3c3a08e
--- /dev/null
+++ b/package/ocf-linux/Config.in
@@ -0,0 +1,12 @@ 
+config BR2_PACKAGE_OCF_LINUX
+	bool "ocf-linux"
+	help
+	  OCF-Linux is a Linux port of the OpenBSD/FreeBSD Cryptographic
+	  Framework (OCF). This port aims to bring full asynchronous HW/SW
+	  crypto acceleration to the Linux kernel and applications
+	  running under Linux.
+
+	  You need to enable the OCF linux kernel extension or provide
+	  a prepatched kernel to make this option useful.
+	  
+	  http://ocf-linux.sourceforge.net/
diff --git a/package/ocf-linux/ocf-linux.mk b/package/ocf-linux/ocf-linux.mk
new file mode 100644
index 0000000..e615225
--- /dev/null
+++ b/package/ocf-linux/ocf-linux.mk
@@ -0,0 +1,21 @@ 
+#############################################################
+#
+# ocf-linux
+#
+#############################################################
+
+OCF_LINUX_VERSION = 20120127
+OCF_LINUX_SITE = http://$(BR2_SOURCEFORGE_MIRROR).dl.sourceforge.net/project/ocf-linux/ocf-linux/$(OCF_LINUX_VERSION)
+OCF_LINUX_INSTALL_STAGING = YES
+
+define OCF_LINUX_INSTALL_STAGING_CMDS
+	$(INSTALL) -D -m 644 $(@D)/ocf/cryptodev.h \
+		$(STAGING_DIR)/usr/include/crypto/cryptodev.h
+endef
+
+define OCF_LINUX_INSTALL_TARGET_CMDS
+	$(INSTALL) -D -m 644 $(@D)/ocf/cryptodev.h \
+		$(TARGET_DIR)/usr/include/crypto/cryptodev.h
+endef
+
+$(eval $(call GENTARGETS))