[1/2] ocf-linux: new package

Submitted by Gustavo Zacarias on May 4, 2012, 7:23 p.m.

Details

Message ID 1336159393-17052-2-git-send-email-gustavo@zacarias.com.ar
State Superseded
Headers show

Commit Message

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

Comments

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 hide | download patch | download mbox

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))