summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--linux/Config.ext.in12
-rw-r--r--linux/linux-ext-ocf-linux.mk25
-rw-r--r--package/Config.in1
-rw-r--r--package/ocf-linux/Config.in12
-rw-r--r--package/ocf-linux/ocf-linux-01-modules-cross.patch42
-rw-r--r--package/ocf-linux/ocf-linux.mk14
6 files changed, 52 insertions, 54 deletions
diff --git a/linux/Config.ext.in b/linux/Config.ext.in
index a68cbe921..172fa76c7 100644
--- a/linux/Config.ext.in
+++ b/linux/Config.ext.in
@@ -23,18 +23,6 @@ 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 also have OCF 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
deleted file mode 100644
index 1a601d58c..000000000
--- a/linux/linux-ext-ocf-linux.mk
+++ /dev/null
@@ -1,25 +0,0 @@
-##################################################
-# 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.
-# It works for older kernel versions.
-# Run tested from 2.6.38+ and build tested from 2.6.35+
-define OCF_LINUX_PREPARE_KERNEL
- support/scripts/apply-patches.sh $(LINUX_DIR) \
- $(OCF_LINUX_DIR)/patches/ linux-3.2.1-ocf.patch ; \
- grep -q __mix_pool_bytes $(LINUX_DIR)/drivers/char/random.c && \
- $(SED) 's:wordcount\*4:&, NULL:' $(LINUX_DIR)/drivers/char/random.c ; \
- 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 0f8fe7f3e..62a97b426 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -394,7 +394,6 @@ source "package/libmhash/Config.in"
source "package/libnss/Config.in"
source "package/libsha1/Config.in"
source "package/nettle/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
deleted file mode 100644
index 9dc576607..000000000
--- a/package/ocf-linux/Config.in
+++ /dev/null
@@ -1,12 +0,0 @@
-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-01-modules-cross.patch b/package/ocf-linux/ocf-linux-01-modules-cross.patch
new file mode 100644
index 000000000..f80ef062c
--- /dev/null
+++ b/package/ocf-linux/ocf-linux-01-modules-cross.patch
@@ -0,0 +1,42 @@
+Remove the OCF linux kernel extension instead opting to build ocf-linux
+modules out of tree.
+This is easier for users since no kernel config tweaking is required.
+On the downside the OCF drivers can't be used, but then all of the
+kernel crypto drivers are available to users via cryptosoft which is
+preferred.
+
+Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
+
+diff -Nura ocf-linux-20120127.orig/ocf/Makefile ocf-linux-20120127/ocf/Makefile
+--- ocf-linux-20120127.orig/ocf/Makefile 2013-04-27 09:27:04.413911866 -0300
++++ ocf-linux-20120127/ocf/Makefile 2013-04-27 09:27:31.131775576 -0300
+@@ -2,6 +2,7 @@
+ -include $(ROOTDIR)/modules/.config
+
+ OCF_OBJS = crypto.o criov.o
++KDIR ?= /lib/modules/$(shell uname -r)/build
+
+ ifdef CONFIG_OCF_RANDOMHARVEST
+ OCF_OBJS += random.o
+@@ -78,20 +79,13 @@
+ #
+
+ ocf_make:
+- make -C /lib/modules/$(shell uname -r)/build M=`pwd` $(OCF_TARGET) CONFIG_OCF_OCF=m
+- make -C /lib/modules/$(shell uname -r)/build M=`pwd` $(OCF_TARGET) CONFIG_OCF_OCF=m CONFIG_OCF_CRYPTOSOFT=m
+- -make -C /lib/modules/$(shell uname -r)/build M=`pwd` $(OCF_TARGET) CONFIG_OCF_OCF=m CONFIG_OCF_BENCH=m
+- -make -C /lib/modules/$(shell uname -r)/build M=`pwd` $(OCF_TARGET) CONFIG_OCF_OCF=m CONFIG_OCF_OCFNULL=m
+- -make -C /lib/modules/$(shell uname -r)/build M=`pwd` $(OCF_TARGET) CONFIG_OCF_OCF=m CONFIG_OCF_HIFN=m
++ make -C $(KDIR) M=`pwd` $(OCF_TARGET) CONFIG_OCF_OCF=m CONFIG_OCF_CRYPTOSOFT=m CONFIG_OCF_BENCH=m CONFIG_OCF_OCFNULL=m
+
+ ocf_modules:
+ $(MAKE) ocf_make OCF_TARGET=modules
+
+ ocf_install:
+ $(MAKE) ocf_make OCF_TARGET="modules modules_install"
+- depmod
+- mkdir -p /usr/include/crypto
+- cp cryptodev.h /usr/include/crypto/.
+
+ #
+ # generate full kernel patches for 2.4 and 2.6 kernels to make patching
diff --git a/package/ocf-linux/ocf-linux.mk b/package/ocf-linux/ocf-linux.mk
index fb5f7e8ff..1be3a3f4b 100644
--- a/package/ocf-linux/ocf-linux.mk
+++ b/package/ocf-linux/ocf-linux.mk
@@ -6,16 +6,22 @@
OCF_LINUX_VERSION = 20120127
OCF_LINUX_SITE = http://downloads.sourceforge.net/project/ocf-linux/ocf-linux/$(OCF_LINUX_VERSION)
+OCF_LINUX_DEPENDENCIES = linux
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
+define OCF_LINUX_BUILD_CMDS
+ $(MAKE) -C $(@D)/ocf $(LINUX_MAKE_FLAGS) KDIR=$(LINUX_DIR) \
+ ocf_modules
endef
define OCF_LINUX_INSTALL_TARGET_CMDS
+ $(MAKE) -C $(@D)/ocf $(LINUX_MAKE_FLAGS) KDIR=$(LINUX_DIR) \
+ ocf_install
+endef
+
+define OCF_LINUX_INSTALL_STAGING_CMDS
$(INSTALL) -D -m 644 $(@D)/ocf/cryptodev.h \
- $(TARGET_DIR)/usr/include/crypto/cryptodev.h
+ $(STAGING_DIR)/usr/include/crypto/cryptodev.h
endef
$(eval $(generic-package))