NOTICE: The Processors Wiki will End-of-Life in December of 2020. It is recommended to download any files or other content you may need that are hosted on processors.wiki.ti.com. The site is now set to read only.

Installing AM389x C6A816x DM816x Crypto Support

From Texas Instruments Wiki
Jump to: navigation, search

Introduction[edit]

The DM816x Crypto API Driver is a set of Linux drivers that provide access to the hardware cryptographic accelerators available on DM816x/C6A816x/AM389x devices. These drivers are available in the form of a patch which must be applied to the Linux kernel source code for DM816x/C6A816x/AM389x.

In addition to the driver patch, an Open Cryptographic Framework (OCF) patch can be installed to allow access from user space. OCF allows access to the driver from user space applications such as OpenSSL via the /dev/crypto device.

The driver has been tested with the Linux source code from the Linux EZSDK Release 5.03.01.15 for DM816x/C6A816x/AM389x.

Assumptions[edit]

Hardware:[edit]

  • The examples here have been tested with a TI DM816x EVM Rev C.
  • Host development system running Ubuntu with standard software development tools installed (see EZ SDK documentation for more information).

Software:[edit]

Installing the Crypto API drivers[edit]

Before attempting to patch the kernel, first install the EZSDK distribution and build the kernel following the instructions in the EZSDK documentation.

After the kernel has been built once, the kernel configuration information will be set in the file ${EZSDK}/board-support/linux-2.6.37-psp04.00.01.13.patch2/.config.

Patching the kernel[edit]

To patch the kernel:

1. Download the patch file into the local file system of your development host

2. Unzip the patch file to the file ~/NSS-Crypto-driver-software-beta-0.9.patch.

3. Change to the PSP source directory and use the patch file

host $ cd ${EZSDK}/board-support/linux-2.6.37-psp04.00.01.13.patch2/
host $ patch -p1 < ~/NSS-Crypto-driver-software-beta-0.9.patch
patching file arch/arm/mach-omap2/devices.c
Hunk #1 succeeded at 645 (offset 18 lines).
Hunk #2 succeeded at 726 (offset 18 lines).
Hunk #3 succeeded at 2704 with fuzz 2 (offset 641 lines).
patching file arch/arm/plat-omap/include/plat/ti81xx.h
patching file drivers/char/hw_random/Kconfig
patching file drivers/char/hw_random/Makefile
patching file drivers/char/hw_random/nss-rng.c
patching file drivers/crypto/Kconfig
patching file drivers/crypto/Makefile
patching file drivers/crypto/nss-aes.c
patching file drivers/crypto/nss-cdma.c
patching file drivers/crypto/nss-cdma.h
patching file drivers/crypto/nss-des.c
patching file drivers/crypto/nss-sham.c
patching file drivers/crypto/nss.h

4. The file drivers/crypto/nss-sham.c needs additional patching. Load the patch files NSS-sham-driver-beta-0.91.patch.gz and NSS-sham-driver-beta-0.92.patch.gz and use them for this additional patching.

host $ zcat ~/NSS-sham-driver-beta-0.91.patch.gz | patch -p1
patching file drivers/crypto/nss-sham.c
host $ zcat ~/NSS-sham-driver-beta-0.92.patch.gz | patch -p1
patching file drivers/crypto/nss-sham.c

Configuring the kernel[edit]

Use menuconfig to configure the kernel for crypto and hardware random number support.

1. Move to the PSP source directory

host $ cd ${EZSDK}/board-support/linux-2.6.37-psp04.00.01.13.patch2/

2. Start up menuconfig

host $ make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm menuconfig

3. Move to the Character devices configuration, and select Hardware Random Number Generator Core support and Netra Random Number Generator support. Note that the latter doesn't appear until Hardware Random Number Generator Core support has been selected.

      Device Drivers  --->
      Character devices  ---> 
  <*> Hardware Random Number Generator Core support
  < >   Timer IOMEM HW Random Number Generator support (NEW)
  <*>   Netra Random Number Generator support (NEW)

4. Exit back to the main configuration screen, and move to the Cryptographic API selection. On the Cryptographic API screen select the options as shown below. Note that the Disable run-time self tests that pops up after selecting the Cryptographic algorithm manager, has been de-selected. Note that the Testing module has been selected as a module to allow for quick and dirty testing of the Crypto API layer.

  --- Cryptographic API
  <*>   Cryptographic algorithm manager
  [ ]   Disable run-time self tests        
  <M>   Testing module
  <*>   Sequence Number IV Generator
        *** Block modes ***
  <*>   CBC support
  <*>   CTR support
  <*>   ECB support
  <*>   HMAC support
  <*>   MD5 digest algorithm
  <*>   SHA1 digest algorithm
  <*>   SHA224 and SHA256 digest algorithm
  <*>   AES cipher algorithms
  <*>   DES and Triple DES EDE cipher algorithms
  [*]   Hardware crypto devices  --->

5. After selecting the Hardware crypto devices option, enter the Hardware crypto devices configuration screen, and select all three Netra support options, as shown below.

  --- Hardware crypto devices
  < >   Driver HIFN 795x crypto accelerator chips (NEW)
  <*>   Support for Netra AES hw engine (NEW)
  <*>   Support for Netra DES hw engine (NEW)
  <*>   Support for Netra SHA/MD5 hw engine (NEW)

6. Exit back to the main configuration screen, and finally exit the configuration utility. Select Yes when asked to save the new configuration. The utility will indicate the configuration written to .config.

7. Next, rebuild the kernel with the new configuration.

host $ make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm uImage

8. Copy the generated uImage to the tftpserver directory

host $ sudo cp -r arch/arm/boot/uImage /tftpboot/uImage-dm816x-evm.bin

9. Finally, restart the EVM with the newly generated uImage file. After the boot completes, you can verify that the crypto support has been installed by executing the following commands on the target:

root@dm816x-evm:~# dmesg | grep nss
nss_rng nss_rng: NSS Random Number Generator ver. 2.0
nss_aes_mod_init: loading NSS AES driver
nss-aes nss-aes: NSS AES hw accel rev: 3.2 (context 0 @0x41140000)
nss-aes nss-aes: NSS AES hw accel rev: 3.2 (context 1 @0x41141000)
nss-aes nss-aes: NSS AES hw accel rev: 3.2 (context 2 @0x411a0000)
nss-aes nss-aes: NSS AES hw accel rev: 3.2 (context 3 @0x411a1000)
nss_aes_probe: probe() done
nss_des_mod_init: loading NSS DES driver
nss-des nss-des: NSS DES hw accel rev: 2.2 (context 0 @0x41160000)
nss-des nss-des: NSS DES hw accel rev: 2.2 (context 1 @0x41161000)
nss_des_probe: probe() done
nss_sham_mod_init: loading NSS SHA/MD5 driver
nss-sham nss-sham: NSS SHA/MD5 hw accel rev: 4.03 (context 0 @0x41100000)
nss-sham nss-sham: NSS SHA/MD5 hw accel rev: 4.03 (context 1 @0x41101000)
nss-sham nss-sham: NSS SHA/MD5 hw accel rev: 4.03 (context 2 @0x411c0000)
nss-sham nss-sham: NSS SHA/MD5 hw accel rev: 4.03 (context 3 @0x411c1000)
nss_sham_probe: probe() done
root@dm816x-evm:~# ls -l /dev/hwrng
root@dm816x-evm:~# ls -l /dev/hwrng
crw-rw----    1 root     root      10, 183 Jan  1  2000 /dev/hwrng

Note: the (NEW) indicators in the configuration utility only show up the first time after configuration (Kconfig) files have been modified.

Installing the Open Crypto Framework (OCF)[edit]

The Linux Crypto API is purely a kernel mode environment. To enable user mode access, you need to install the Linux Open Crypto Framework (OCF).

1. Download OCF distribution ocf-linux-20120127.tar.gz from the OCF project site on sourceforge

2. Unpack the distribution to a suitable location (named OCF in following steps)

host $ tar zxf ocf-linux-20120127.tar.gz

3. Create the patch files

host $ cd ${OCF}/ocf
host $ make patch

4. Apply patch file to Linux kernel source

host $ cd ${EZSDK}/board-support/linux-2.6.37-psp04.00.01.13.patch2/
host $ patch -p1 <${OCF}/ocf/ocf-linux-26.patch

5. Install cryptodev.h from the ocf directory to an include directory for the target platform.

host $ cp ${OCF}/ocf/cryptodev.h ${EZSDK}/linux-devkit/arm-none-linux-gnueabi/usr/include/crypto/

6. Start up menuconfig

host $ make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm menuconfig

7. Move to the OCF Configuration configuration, and select OCF (Open Cryptograhic Framework) (sic), cryptodev (user space support) and cryptosoft (software crypto engine).

  OCF Configuration  --->
  <*> OCF (Open Cryptograhic Framework)
  <*>   cryptodev (user space support)
  <*>   cryptosoft (software crypto engine)

8. Exit menuconfig and save the new configuration. Then rebuild the kernel.

host $ make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm uImage

9. Finally, restart the target with the newly generated kernel image, and make sure /dev/crypto is available for user space access to OCF.

root@dm816x-evm:~# ls -l /dev/crypto
crw-rw----    1 root     root      10,  70 Jan  1  2000 /dev/crypto

The tcrypt quick and dirty testing tool[edit]

Tcrypt is a quick and dirty testing module that is packaged as part of the Crypto API distribution. In the previous section we selected this module to be included in the configuration. In this section we'll show how to build the module, and how to use it.

1. We're still in the Linux-devkit environment, and the current directory is the root of the PSP distribution (${EZSDK}/board-support/linux-2.6.37-psp04.00.01.13.patch2/). First build the module(s)

host $ make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm \
       INSTALL_MOD_PATH=/home/user/targetfs/TI816x-targetfs_5_03_01 modules

2. Next install the generated modules in the target filesystem

host $ sudo bash -c \
       'source /home/user/ti-ezsdk_dm816x-evm_5_03_01_15/linux-devkit/environment-setup ; \
       make CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm \
       INSTALL_MOD_PATH=/home/user/targetfs/TI816x-targetfs_5_03_01 modules_install'

3. Remake the syslink and cmem components on the SDK top level, and copy the resulting .ko files to their proper location in the target filesystem.

host $ cd ${EZSDK}
host $ make syslink_clean
host $ make syslink
host $ make syslink_install
host $ make cmem_clean
host $ make cmem
host $ make cmem_install
host $ cd ${HOME}/targetfs/TI816x-targetfs_5_03_01
host $ sudo mkdir lib/modules/2.6.37/kernel/drivers/dsp
host $ sudo cp -r home/root/dm816x-evm/lib/modules/2.6.37/kernel/drivers/dsp/* \
       lib/modules/2.6.37/kernel/drivers/dsp

4. Disable the startup routines in the target filesystem at /etc/init.d/load-hd-firmware.sh by putting an exit 0 command at the beginning of the file.

5. Reboot the EVM and regenerate the module dependency

 root@dm816x-evm:~# depmod -a

6. Undo the changes from step 4 (i.e. remove the early exit commands)

5. Reboot the EVM and test some crypto algorithms on the target

root@dm816x-evm:~# modprobe tcrypt sec=2 mode=402

testing speed of async md5
test  0 (   16 byte blocks,   16 bytes per update,   1 updates): 156373 opers/sec,   2501976 bytes/sec
test  1 (   64 byte blocks,   16 bytes per update,   4 updates): 103420 opers/sec,   6618912 bytes/sec
test  2 (   64 byte blocks,   64 bytes per update,   1 updates): 110783 opers/sec,   7090112 bytes/sec
test  3 (  256 byte blocks,   16 bytes per update,  16 updates):  62703 opers/sec,  16051968 bytes/sec
test  4 (  256 byte blocks,   64 bytes per update,   4 updates):  69963 opers/sec,  17910528 bytes/sec
test  5 (  256 byte blocks,  256 bytes per update,   1 updates):  71733 opers/sec,  18363776 bytes/sec
test  6 ( 1024 byte blocks,   16 bytes per update,  64 updates):  28939 opers/sec,  29633536 bytes/sec
test  7 ( 1024 byte blocks,  256 bytes per update,   4 updates):  37817 opers/sec,  38725120 bytes/sec
test  8 ( 1024 byte blocks, 1024 bytes per update,   1 updates):  41652 opers/sec,  42651648 bytes/sec
test  9 ( 2048 byte blocks,   16 bytes per update, 128 updates):  20219 opers/sec,  41409536 bytes/sec
test 10 ( 2048 byte blocks,  256 bytes per update,   8 updates):  33746 opers/sec,  69112832 bytes/sec
test 11 ( 2048 byte blocks, 1024 bytes per update,   2 updates):  34357 opers/sec,  70363136 bytes/sec
test 12 ( 2048 byte blocks, 2048 bytes per update,   1 updates):  34723 opers/sec,  71113728 bytes/sec
test 13 ( 4096 byte blocks,   16 bytes per update, 256 updates):  12152 opers/sec,  49774592 bytes/sec
test 14 ( 4096 byte blocks,  256 bytes per update,  16 updates):  21928 opers/sec,  89819136 bytes/sec
test 15 ( 4096 byte blocks, 1024 bytes per update,   4 updates):  22650 opers/sec,  92776448 bytes/sec
test 16 ( 4096 byte blocks, 4096 bytes per update,   1 updates):  26264 opers/sec, 107577344 bytes/sec
test 17 ( 8192 byte blocks,   16 bytes per update, 512 updates):   5779 opers/sec,  47341568 bytes/sec
test 18 ( 8192 byte blocks,  256 bytes per update,  32 updates):  10725 opers/sec,  87863296 bytes/sec
test 19 ( 8192 byte blocks, 1024 bytes per update,   8 updates):  10665 opers/sec,  87367680 bytes/sec
test 20 ( 8192 byte blocks, 4096 bytes per update,   2 updates):  12156 opers/sec,  99586048 bytes/sec
test 21 ( 8192 byte blocks, 8192 bytes per update,   1 updates):  15188 opers/sec, 124424192 bytes/sec
FATAL: Error inserting tcrypt (/lib/modules/2.6.37/kernel/crypto/tcrypt.ko): Resource temporarily unavailable

tcrypt module parameter details[edit]

tcrypt accepts two groups of optional module parameters:

  • alg, type and mask - can be used to verify whether a specific algorithm is supported. The definitions for legal type and mask values can be found in ${EZSDK}/board-support/linux-2.6.37-psp04.00.01.13.patch2/include/linux/crypto.h.
  • mode, and sec - allow specific tests to be run for a specific duration. For more details on the tests specified by the various mode values, consult the source code at ${EZSDK}/board-support/linux-2.6.37-psp04.00.01.13.patch2/crypto/tcrypt.c. sec specifies the length in seconds of speed tests. In general the mode values indicate the following
    • 0..150 are algorithm tests
    • 200..206 are cipher speed tests
    • 300..318 are synchronous hash speed tests
    • 400..417 are asynchronous hash speed tests
    • 1000 checks the available algorithms

Installing the OCF test software (optional)[edit]

Building cryptotest[edit]

cryptotest is part of the Open Crypto Framework package downloaded earlier. It can be found in the crypto-tools subdirectory of the OCF package.

1. Make sure that cryptodev.h from the ocf directory is installed as crypto/cryptodev.h in an include directory that is used for building applications for the target platform. In our case this would be ${EZSDK}/board-support/linux-2.6.37-psp04.00.01.13.patch2/include/crypto. Also make sure you're in the linux-devkit environment, and that EZSDK has been set appropriately.

host $ mkdir ${EZSDK}/linux-devkit/arm-none-linux-gnueabi/usr/include/crypto
host $ cp -r ${EZSDK}/board-support/linux-2.6.37-psp04.00.01.13.patch2/crypto/ocf/cryptodev.h \
         ${EZSDK}/linux-devkit/arm-none-linux-gnueabi/usr/include/crypto

2. Compile the cryptotest application

host $ cd ${OCF}/crypto-tools
host $ make cryptotest

3. Copy the cryptotest application over to /home/root in the target filesystem.

host $ cp -r cryptotest /home/user/targetfs/TI816x-targetfs_5_03_01/home/root/

Running cryptotest[edit]

With the target booted with a kernel image that includes both the previously generated Crypto API drivers and OCF software, the cryptotest application can now be used to test the crypto performance. Note that the DES crypto performance is low compared to the 3DES performance, since there is currently no hardware driver support implemented for the DES crypto. This also skews the processor load somewhat, since DES will be performed completely in software.

root@dm816x-evm:~# time -v ./cryptotest -z 128
   0.002 sec,     256    des crypts,       8 bytes,  1234479 byte/sec,     9.4 Mb/sec
   0.002 sec,     256    des crypts,      16 bytes,  2276820 byte/sec,    17.4 Mb/sec
   0.002 sec,     256    des crypts,      32 bytes,  3965150 byte/sec,    30.3 Mb/sec
   0.003 sec,     256    des crypts,      64 bytes,  4825920 byte/sec,    36.8 Mb/sec
   0.005 sec,     256    des crypts,     128 bytes,  6566733 byte/sec,    50.1 Mb/sec
   0.007 sec,     256    des crypts,     256 bytes,  9186431 byte/sec,    70.1 Mb/sec
   0.011 sec,     256    des crypts,     512 bytes, 11543109 byte/sec,    88.1 Mb/sec
   0.021 sec,     256    des crypts,    1024 bytes, 12391586 byte/sec,    94.5 Mb/sec
   0.037 sec,     256    des crypts,    2048 bytes, 14219522 byte/sec,   108.5 Mb/sec
   0.073 sec,     256    des crypts,    4096 bytes, 14349705 byte/sec,   109.5 Mb/sec
   0.144 sec,     256    des crypts,    8192 bytes, 14581276 byte/sec,   111.2 Mb/sec
   0.286 sec,     256    des crypts,   16384 bytes, 14642309 byte/sec,   111.7 Mb/sec
   0.570 sec,     256    des crypts,   32768 bytes, 14708624 byte/sec,   112.2 Mb/sec
   1.140 sec,     256    des crypts,   65280 bytes, 14660076 byte/sec,   111.8 Mb/sec
   0.004 sec,     256   3des crypts,       8 bytes,   578041 byte/sec,     4.4 Mb/sec
   0.004 sec,     256   3des crypts,      16 bytes,  1072251 byte/sec,     8.2 Mb/sec
   0.005 sec,     256   3des crypts,      32 bytes,  1616098 byte/sec,    12.3 Mb/sec
   0.005 sec,     256   3des crypts,      64 bytes,  2994699 byte/sec,    22.8 Mb/sec
   0.006 sec,     256   3des crypts,     128 bytes,  5392134 byte/sec,    41.1 Mb/sec
   0.008 sec,     256   3des crypts,     256 bytes,  8671077 byte/sec,    66.2 Mb/sec
   0.011 sec,     256   3des crypts,     512 bytes, 11831739 byte/sec,    90.3 Mb/sec
   0.018 sec,     256   3des crypts,    1024 bytes, 14594366 byte/sec,   111.3 Mb/sec
   0.027 sec,     256   3des crypts,    2048 bytes, 19115065 byte/sec,   145.8 Mb/sec
   0.049 sec,     256   3des crypts,    4096 bytes, 21325957 byte/sec,   162.7 Mb/sec
   0.094 sec,     256   3des crypts,    8192 bytes, 22207830 byte/sec,   169.4 Mb/sec
   0.182 sec,     256   3des crypts,   16384 bytes, 23059563 byte/sec,   175.9 Mb/sec
   0.360 sec,     256   3des crypts,   32768 bytes, 23290044 byte/sec,   177.7 Mb/sec
   0.707 sec,     256   3des crypts,   65280 bytes, 23643842 byte/sec,   180.4 Mb/sec
   0.004 sec,     256    aes crypts,      16 bytes,  1165292 byte/sec,     8.9 Mb/sec
   0.005 sec,     256    aes crypts,      32 bytes,  1725722 byte/sec,    13.2 Mb/sec
   0.005 sec,     256    aes crypts,      64 bytes,  3234110 byte/sec,    24.7 Mb/sec
   0.006 sec,     256    aes crypts,     128 bytes,  5839957 byte/sec,    44.6 Mb/sec
   0.007 sec,     256    aes crypts,     256 bytes, 10045371 byte/sec,    76.6 Mb/sec
   0.008 sec,     256    aes crypts,     512 bytes, 16386048 byte/sec,   125.0 Mb/sec
   0.012 sec,     256    aes crypts,    1024 bytes, 22159256 byte/sec,   169.1 Mb/sec
   0.019 sec,     256    aes crypts,    2048 bytes, 27099189 byte/sec,   206.8 Mb/sec
   0.032 sec,     256    aes crypts,    4096 bytes, 33135598 byte/sec,   252.8 Mb/sec
   0.059 sec,     256    aes crypts,    8192 bytes, 35488408 byte/sec,   270.8 Mb/sec
   0.111 sec,     256    aes crypts,   16384 bytes, 37751832 byte/sec,   288.0 Mb/sec
   0.217 sec,     256    aes crypts,   32768 bytes, 38703910 byte/sec,   295.3 Mb/sec
   0.426 sec,     256    aes crypts,   65280 bytes, 39197184 byte/sec,   299.1 Mb/sec
   0.005 sec,     256 aes192 crypts,      16 bytes,   808687 byte/sec,     6.2 Mb/sec
   0.005 sec,     256 aes192 crypts,      32 bytes,  1598751 byte/sec,    12.2 Mb/sec
   0.005 sec,     256 aes192 crypts,      64 bytes,  3253376 byte/sec,    24.8 Mb/sec
   0.006 sec,     256 aes192 crypts,     128 bytes,  5918006 byte/sec,    45.2 Mb/sec
   0.007 sec,     256 aes192 crypts,     256 bytes,  9482853 byte/sec,    72.3 Mb/sec
   0.009 sec,     256 aes192 crypts,     512 bytes, 14202189 byte/sec,   108.4 Mb/sec
   0.013 sec,     256 aes192 crypts,    1024 bytes, 20629889 byte/sec,   157.4 Mb/sec
   0.019 sec,     256 aes192 crypts,    2048 bytes, 27520235 byte/sec,   210.0 Mb/sec
   0.032 sec,     256 aes192 crypts,    4096 bytes, 32579649 byte/sec,   248.6 Mb/sec
   0.060 sec,     256 aes192 crypts,    8192 bytes, 35127586 byte/sec,   268.0 Mb/sec
   0.113 sec,     256 aes192 crypts,   16384 bytes, 37249591 byte/sec,   284.2 Mb/sec
   0.220 sec,     256 aes192 crypts,   32768 bytes, 38131076 byte/sec,   290.9 Mb/sec
   0.434 sec,     256 aes192 crypts,   65280 bytes, 38532811 byte/sec,   294.0 Mb/sec
   0.004 sec,     256 aes256 crypts,      16 bytes,  1090522 byte/sec,     8.3 Mb/sec
   0.004 sec,     256 aes256 crypts,      32 bytes,  2060362 byte/sec,    15.7 Mb/sec
   0.005 sec,     256 aes256 crypts,      64 bytes,  3231558 byte/sec,    24.7 Mb/sec
   0.006 sec,     256 aes256 crypts,     128 bytes,  5898830 byte/sec,    45.0 Mb/sec
   0.007 sec,     256 aes256 crypts,     256 bytes,  9557532 byte/sec,    72.9 Mb/sec
   0.010 sec,     256 aes256 crypts,     512 bytes, 12996728 byte/sec,    99.2 Mb/sec
   0.012 sec,     256 aes256 crypts,    1024 bytes, 21584520 byte/sec,   164.7 Mb/sec
   0.019 sec,     256 aes256 crypts,    2048 bytes, 27238570 byte/sec,   207.8 Mb/sec
   0.031 sec,     256 aes256 crypts,    4096 bytes, 33531899 byte/sec,   255.8 Mb/sec
   0.059 sec,     256 aes256 crypts,    8192 bytes, 35252769 byte/sec,   269.0 Mb/sec
   0.112 sec,     256 aes256 crypts,   16384 bytes, 37558465 byte/sec,   286.5 Mb/sec
   0.218 sec,     256 aes256 crypts,   32768 bytes, 38550411 byte/sec,   294.1 Mb/sec
   0.427 sec,     256 aes256 crypts,   65280 bytes, 39130459 byte/sec,   298.5 Mb/sec
   0.003 sec,     128    md5 crypts,       8 bytes,   333768 byte/sec,     2.5 Mb/sec
   0.003 sec,     128    md5 crypts,      16 bytes,   670596 byte/sec,     5.1 Mb/sec
   0.002 sec,     128    md5 crypts,      32 bytes,  1689769 byte/sec,    12.9 Mb/sec
   0.003 sec,     128    md5 crypts,      64 bytes,  3110099 byte/sec,    23.7 Mb/sec
   0.003 sec,     128    md5 crypts,     128 bytes,  4807512 byte/sec,    36.7 Mb/sec
   0.004 sec,     128    md5 crypts,     256 bytes,  9340935 byte/sec,    71.3 Mb/sec
   0.004 sec,     128    md5 crypts,     512 bytes, 17392781 byte/sec,   132.7 Mb/sec
   0.005 sec,     128    md5 crypts,    1024 bytes, 24861912 byte/sec,   189.7 Mb/sec
   0.006 sec,     128    md5 crypts,    2048 bytes, 43632490 byte/sec,   332.9 Mb/sec
   0.007 sec,     128    md5 crypts,    4096 bytes, 70167024 byte/sec,   535.3 Mb/sec
   0.010 sec,     128    md5 crypts,    8192 bytes, 101350860 byte/sec,   773.2 Mb/sec
   0.018 sec,     128    md5 crypts,   16384 bytes, 117120071 byte/sec,   893.6 Mb/sec
   0.032 sec,     128    md5 crypts,   32768 bytes, 130136643 byte/sec,   992.9 Mb/sec
   0.061 sec,     128    md5 crypts,   65280 bytes, 136604761 byte/sec,  1042.2 Mb/sec
   0.003 sec,     128 md5_hmac crypts,       8 bytes,   345479 byte/sec,     2.6 Mb/sec
   0.003 sec,     128 md5_hmac crypts,      16 bytes,   693297 byte/sec,     5.3 Mb/sec
   0.003 sec,     128 md5_hmac crypts,      32 bytes,  1402260 byte/sec,    10.7 Mb/sec
   0.003 sec,     128 md5_hmac crypts,      64 bytes,  2763833 byte/sec,    21.1 Mb/sec
   0.003 sec,     128 md5_hmac crypts,     128 bytes,  4908328 byte/sec,    37.4 Mb/sec
   0.003 sec,     128 md5_hmac crypts,     256 bytes,  9743681 byte/sec,    74.3 Mb/sec
   0.004 sec,     128 md5_hmac crypts,     512 bytes, 18148989 byte/sec,   138.5 Mb/sec
   0.005 sec,     128 md5_hmac crypts,    1024 bytes, 24609839 byte/sec,   187.8 Mb/sec
   0.006 sec,     128 md5_hmac crypts,    2048 bytes, 44094870 byte/sec,   336.4 Mb/sec
   0.008 sec,     128 md5_hmac crypts,    4096 bytes, 67528078 byte/sec,   515.2 Mb/sec
   0.011 sec,     128 md5_hmac crypts,    8192 bytes, 93198471 byte/sec,   711.0 Mb/sec
   0.018 sec,     128 md5_hmac crypts,   16384 bytes, 115101647 byte/sec,   878.2 Mb/sec
   0.033 sec,     128 md5_hmac crypts,   32768 bytes, 129055508 byte/sec,   984.6 Mb/sec
   0.061 sec,     128 md5_hmac crypts,   65280 bytes, 137737410 byte/sec,  1050.9 Mb/sec
   0.003 sec,     128   sha1 crypts,       8 bytes,   360945 byte/sec,     2.8 Mb/sec
   0.002 sec,     128   sha1 crypts,      16 bytes,   954779 byte/sec,     7.3 Mb/sec
   0.002 sec,     128   sha1 crypts,      32 bytes,  1879761 byte/sec,    14.3 Mb/sec
   0.003 sec,     128   sha1 crypts,      64 bytes,  3072768 byte/sec,    23.4 Mb/sec
   0.003 sec,     128   sha1 crypts,     128 bytes,  5045889 byte/sec,    38.5 Mb/sec
   0.003 sec,     128   sha1 crypts,     256 bytes, 10023861 byte/sec,    76.5 Mb/sec
   0.004 sec,     128   sha1 crypts,     512 bytes, 18602328 byte/sec,   141.9 Mb/sec
   0.005 sec,     128   sha1 crypts,    1024 bytes, 26941829 byte/sec,   205.5 Mb/sec
   0.006 sec,     128   sha1 crypts,    2048 bytes, 44941540 byte/sec,   342.9 Mb/sec
   0.008 sec,     128   sha1 crypts,    4096 bytes, 68678019 byte/sec,   524.0 Mb/sec
   0.011 sec,     128   sha1 crypts,    8192 bytes, 92491488 byte/sec,   705.7 Mb/sec
   0.018 sec,     128   sha1 crypts,   16384 bytes, 117093914 byte/sec,   893.4 Mb/sec
   0.033 sec,     128   sha1 crypts,   32768 bytes, 127731035 byte/sec,   974.5 Mb/sec
   0.061 sec,     128   sha1 crypts,   65280 bytes, 137176629 byte/sec,  1046.6 Mb/sec
   0.003 sec,     128 sha1_hmac crypts,       8 bytes,   329049 byte/sec,     2.5 Mb/sec
   0.003 sec,     128 sha1_hmac crypts,      16 bytes,   669062 byte/sec,     5.1 Mb/sec
   0.003 sec,     128 sha1_hmac crypts,      32 bytes,  1341631 byte/sec,    10.2 Mb/sec
   0.003 sec,     128 sha1_hmac crypts,      64 bytes,  2659740 byte/sec,    20.3 Mb/sec
   0.003 sec,     128 sha1_hmac crypts,     128 bytes,  4766948 byte/sec,    36.4 Mb/sec
   0.004 sec,     128 sha1_hmac crypts,     256 bytes,  8945673 byte/sec,    68.3 Mb/sec
   0.004 sec,     128 sha1_hmac crypts,     512 bytes, 17057782 byte/sec,   130.1 Mb/sec
   0.004 sec,     128 sha1_hmac crypts,    1024 bytes, 30298659 byte/sec,   231.2 Mb/sec
   0.005 sec,     128 sha1_hmac crypts,    2048 bytes, 47705914 byte/sec,   364.0 Mb/sec
   0.008 sec,     128 sha1_hmac crypts,    4096 bytes, 67939355 byte/sec,   518.3 Mb/sec
   0.011 sec,     128 sha1_hmac crypts,    8192 bytes, 91180522 byte/sec,   695.7 Mb/sec
   0.018 sec,     128 sha1_hmac crypts,   16384 bytes, 115089013 byte/sec,   878.1 Mb/sec
   0.033 sec,     128 sha1_hmac crypts,   32768 bytes, 126700822 byte/sec,   966.7 Mb/sec
   0.061 sec,     128 sha1_hmac crypts,   65280 bytes, 136947308 byte/sec,  1044.8 Mb/sec
   0.003 sec,     128 sha256 crypts,       8 bytes,   348774 byte/sec,     2.7 Mb/sec
   0.003 sec,     128 sha256 crypts,      16 bytes,   708896 byte/sec,     5.4 Mb/sec
   0.003 sec,     128 sha256 crypts,      32 bytes,  1414365 byte/sec,    10.8 Mb/sec
   0.003 sec,     128 sha256 crypts,      64 bytes,  3232833 byte/sec,    24.7 Mb/sec
   0.003 sec,     128 sha256 crypts,     128 bytes,  5041231 byte/sec,    38.5 Mb/sec
   0.003 sec,     128 sha256 crypts,     256 bytes,  9941748 byte/sec,    75.8 Mb/sec
   0.004 sec,     128 sha256 crypts,     512 bytes, 18118883 byte/sec,   138.2 Mb/sec
   0.005 sec,     128 sha256 crypts,    1024 bytes, 25670192 byte/sec,   195.8 Mb/sec
   0.005 sec,     128 sha256 crypts,    2048 bytes, 51290158 byte/sec,   391.3 Mb/sec
   0.007 sec,     128 sha256 crypts,    4096 bytes, 74451576 byte/sec,   568.0 Mb/sec
   0.011 sec,     128 sha256 crypts,    8192 bytes, 94568543 byte/sec,   721.5 Mb/sec
   0.018 sec,     128 sha256 crypts,   16384 bytes, 114379711 byte/sec,   872.6 Mb/sec
   0.033 sec,     128 sha256 crypts,   32768 bytes, 128861225 byte/sec,   983.1 Mb/sec
   0.060 sec,     128 sha256 crypts,   65280 bytes, 138520606 byte/sec,  1056.8 Mb/sec
   0.003 sec,     128 sha256_hmac crypts,       8 bytes,   327157 byte/sec,     2.5 Mb/sec
   0.003 sec,     128 sha256_hmac crypts,      16 bytes,   659369 byte/sec,     5.0 Mb/sec
   0.003 sec,     128 sha256_hmac crypts,      32 bytes,  1315773 byte/sec,    10.0 Mb/sec
   0.003 sec,     128 sha256_hmac crypts,      64 bytes,  2483930 byte/sec,    19.0 Mb/sec
   0.003 sec,     128 sha256_hmac crypts,     128 bytes,  4718894 byte/sec,    36.0 Mb/sec
   0.004 sec,     128 sha256_hmac crypts,     256 bytes,  9256497 byte/sec,    70.6 Mb/sec
   0.004 sec,     128 sha256_hmac crypts,     512 bytes, 17237244 byte/sec,   131.5 Mb/sec
   0.005 sec,     128 sha256_hmac crypts,    1024 bytes, 24380952 byte/sec,   186.0 Mb/sec
   0.006 sec,     128 sha256_hmac crypts,    2048 bytes, 43243814 byte/sec,   329.9 Mb/sec
   0.007 sec,     128 sha256_hmac crypts,    4096 bytes, 73542993 byte/sec,   561.1 Mb/sec
   0.011 sec,     128 sha256_hmac crypts,    8192 bytes, 92876528 byte/sec,   708.6 Mb/sec
   0.018 sec,     128 sha256_hmac crypts,   16384 bytes, 113599047 byte/sec,   866.7 Mb/sec
   0.033 sec,     128 sha256_hmac crypts,   32768 bytes, 128383961 byte/sec,   979.5 Mb/sec
   0.060 sec,     128 sha256_hmac crypts,   65280 bytes, 138129040 byte/sec,  1053.8 Mb/sec
        Command being timed: "./cryptotest -z 128"
        User time (seconds): 0.24
        System time (seconds): 3.08
        Percent of CPU this job got: 41%
        Elapsed (wall clock) time (h:mm:ss or m:ss): 0m 7.94s
        Average shared text size (kbytes): 0
        Average unshared data size (kbytes): 0
        Average stack size (kbytes): 0
        Average total size (kbytes): 0
        Maximum resident set size (kbytes): 3216
        Average resident set size (kbytes): 0
        Major (requiring I/O) page faults: 0
        Minor (reclaiming a frame) page faults: 508
        Voluntary context switches: 17786
        Involuntary context switches: 7572
        Swaps: 0
        File system inputs: 0
        File system outputs: 0
        Socket messages sent: 0
        Socket messages received: 0
        Signals delivered: 0
        Page size (bytes): 4096
        Exit status: 0

[[Category:Linux|Linux]

E2e.jpg {{
  1. switchcategory:MultiCore=
  • For technical support on MultiCore devices, please post your questions in the C6000 MultiCore Forum
  • For questions related to the BIOS MultiCore SDK (MCSDK), please use the BIOS Forum

Please post only comments related to the article Installing AM389x C6A816x DM816x Crypto Support here.

Keystone=
  • For technical support on MultiCore devices, please post your questions in the C6000 MultiCore Forum
  • For questions related to the BIOS MultiCore SDK (MCSDK), please use the BIOS Forum

Please post only comments related to the article Installing AM389x C6A816x DM816x Crypto Support here.

C2000=For technical support on the C2000 please post your questions on The C2000 Forum. Please post only comments about the article Installing AM389x C6A816x DM816x Crypto Support here. DaVinci=For technical support on DaVincoplease post your questions on The DaVinci Forum. Please post only comments about the article Installing AM389x C6A816x DM816x Crypto Support here. MSP430=For technical support on MSP430 please post your questions on The MSP430 Forum. Please post only comments about the article Installing AM389x C6A816x DM816x Crypto Support here. OMAP35x=For technical support on OMAP please post your questions on The OMAP Forum. Please post only comments about the article Installing AM389x C6A816x DM816x Crypto Support here. OMAPL1=For technical support on OMAP please post your questions on The OMAP Forum. Please post only comments about the article Installing AM389x C6A816x DM816x Crypto Support here. MAVRK=For technical support on MAVRK please post your questions on The MAVRK Toolbox Forum. Please post only comments about the article Installing AM389x C6A816x DM816x Crypto Support here. For technical support please post your questions at http://e2e.ti.com. Please post only comments about the article Installing AM389x C6A816x DM816x Crypto Support here.

}}

Hyperlink blue.png Links

Amplifiers & Linear
Audio
Broadband RF/IF & Digital Radio
Clocks & Timers
Data Converters

DLP & MEMS
High-Reliability
Interface
Logic
Power Management

Processors

Switches & Multiplexers
Temperature Sensors & Control ICs
Wireless Connectivity