marvell_cesa (mv_cesa) crypto issues in Linux 4.2 kernel

This forum is for Marvell Kirkwood devices such as the GoFlex Home/Net, PogoPlug v1/v2, SheevaPlug, and ZyXEL devices.

marvell_cesa (mv_cesa) crypto issues in Linux 4.2 kernel

Postby swass » Wed Sep 02, 2015 8:51 pm

I was excited to try out the new 4.2 kernel with the mv_cesa improvements, which should be now in marvell_cesa, but while the module did load on boot, as did cryptodev, /proc/crypto only shows the kernel as module. This is for a Pogoplug v4, with the kirkwood SoC.

Any thoughts on what might have happened here? I really haven't had time to do any looking into this myself, and might not until this weekend.

EDIT: I found an interesting message out there that might help solve this, although it's not fully applicable here.
https://klausdieter0815.wordpress.com/2015/07/15/hardware-accelerated-crypto-with-dreamplug/
EDIT EDIT: Didn't see any problem with the .config, so it's not entirely clear why it isn't showing up unless maybe a bug in the driver.

$this->bbcode_second_pass_code('', 'Module Size Used by
xfs 794171 1
dm_crypt 18858 2
algif_skcipher 7726 0
af_alg 4830 1 algif_skcipher
dm_mod 91076 5 dm_crypt
cfg80211 419450 0
rfkill 16139 1 cfg80211
blowfish_generic 3649 0
blowfish_common 6613 1 blowfish_generic
m25p80 4403 0
spi_nor 14843 1 m25p80
marvell_cesa 24671 0
nfs 170496 0
lockd 59295 1 nfs
grace 1599 1 lockd
sunrpc 210093 2 nfs,lockd
cryptodev 33641 2
ip_tables 10766 0
x_tables 11602 1 ip_tables
ipv6 319304 16
')

$this->bbcode_second_pass_code('', 'name : ecb(aes)
driver : ecb(aes-asm)
module : kernel
priority : 200
refcnt : 3
selftest : passed
internal : no
type : blkcipher
blocksize : 16
min keysize : 16
max keysize : 32
ivsize : 0
geniv : <default>

name : cbc(blowfish)
driver : cbc(blowfish-generic)
module : kernel
priority : 100
refcnt : 1
selftest : passed
internal : no
type : givcipher
async : no
blocksize : 8
min keysize : 4
max keysize : 56
ivsize : 8
geniv : eseqiv

name : cbc(blowfish)
driver : cbc(blowfish-generic)
module : kernel
priority : 100
refcnt : 1
selftest : passed
internal : no
type : blkcipher
blocksize : 8
min keysize : 4
max keysize : 56
ivsize : 8
geniv : <default>

name : blowfish
driver : blowfish-generic
module : blowfish_generic
priority : 100
refcnt : 1
selftest : passed
internal : no
type : cipher
blocksize : 8
min keysize : 4
max keysize : 56

name : cbc(aes)
driver : cbc(aes-asm)
module : kernel
priority : 200
refcnt : 1
selftest : passed
internal : no
type : givcipher
async : no
blocksize : 16
min keysize : 16
max keysize : 32
ivsize : 16
geniv : eseqiv

name : cbc(des3_ede)
driver : cbc(des3_ede-generic)
module : kernel
priority : 100
refcnt : 1
selftest : passed
internal : no
type : givcipher
async : no
blocksize : 8
min keysize : 24
max keysize : 24
ivsize : 8
geniv : eseqiv

name : cbc(des3_ede)
driver : cbc(des3_ede-generic)
module : kernel
priority : 100
refcnt : 1
selftest : passed
internal : no
type : blkcipher
blocksize : 8
min keysize : 24
max keysize : 24
ivsize : 8
geniv : <default>

name : cbc(des)
driver : cbc(des-generic)
module : kernel
priority : 100
refcnt : 1
selftest : passed
internal : no
type : givcipher
async : no
blocksize : 8
min keysize : 8
max keysize : 8
ivsize : 8
geniv : eseqiv

name : cbc(des)
driver : cbc(des-generic)
module : kernel
priority : 100
refcnt : 1
selftest : passed
internal : no
type : blkcipher
blocksize : 8
min keysize : 8
max keysize : 8
ivsize : 8
geniv : <default>

name : cbc(aes)
driver : cbc(aes-asm)
module : kernel
priority : 200
refcnt : 1
selftest : passed
internal : no
type : blkcipher
blocksize : 16
min keysize : 16
max keysize : 32
ivsize : 16
geniv : <default>

name : hmac(sha256)
driver : hmac(sha256-asm)
module : kernel
priority : 150
refcnt : 3
selftest : passed
internal : no
type : shash
blocksize : 64
digestsize : 32

name : jitterentropy_rng
driver : jitterentropy_rng
module : kernel
priority : 100
refcnt : 1
selftest : passed
internal : no
type : rng
seedsize : 0

name : stdrng
driver : drbg_nopr_hmac_sha256
module : kernel
priority : 207
refcnt : 2
selftest : passed
internal : no
type : rng
seedsize : 0

name : stdrng
driver : drbg_nopr_hmac_sha512
module : kernel
priority : 206
refcnt : 1
selftest : passed
internal : no
type : rng
seedsize : 0

name : stdrng
driver : drbg_nopr_hmac_sha384
module : kernel
priority : 205
refcnt : 1
selftest : passed
internal : no
type : rng
seedsize : 0

name : stdrng
driver : drbg_nopr_hmac_sha1
module : kernel
priority : 204
refcnt : 1
selftest : passed
internal : no
type : rng
seedsize : 0

name : stdrng
driver : drbg_pr_hmac_sha256
module : kernel
priority : 203
refcnt : 1
selftest : passed
internal : no
type : rng
seedsize : 0

name : stdrng
driver : drbg_pr_hmac_sha512
module : kernel
priority : 202
refcnt : 1
selftest : passed
internal : no
type : rng
seedsize : 0

name : stdrng
driver : drbg_pr_hmac_sha384
module : kernel
priority : 201
refcnt : 1
selftest : passed
internal : no
type : rng
seedsize : 0

name : stdrng
driver : drbg_pr_hmac_sha1
module : kernel
priority : 200
refcnt : 1
selftest : passed
internal : no
type : rng
seedsize : 0

name : lzo
driver : lzo-generic
module : kernel
priority : 0
refcnt : 2
selftest : passed
internal : no
type : compression

name : crct10dif
driver : crct10dif-generic
module : kernel
priority : 100
refcnt : 2
selftest : passed
internal : no
type : shash
blocksize : 1
digestsize : 2

name : crc32c
driver : crc32c-generic
module : kernel
priority : 100
refcnt : 2
selftest : passed
internal : no
type : shash
blocksize : 1
digestsize : 4

name : deflate
driver : deflate-generic
module : kernel
priority : 0
refcnt : 2
selftest : passed
internal : no
type : compression

name : ecb(arc4)
driver : ecb(arc4)-generic
module : kernel
priority : 100
refcnt : 1
selftest : passed
internal : no
type : blkcipher
blocksize : 1
min keysize : 1
max keysize : 256
ivsize : 0
geniv : <default>

name : arc4
driver : arc4-generic
module : kernel
priority : 0
refcnt : 1
selftest : passed
internal : no
type : cipher
blocksize : 1
min keysize : 1
max keysize : 256

name : aes
driver : aes-generic
module : kernel
priority : 100
refcnt : 1
selftest : passed
internal : no
type : cipher
blocksize : 16
min keysize : 16
max keysize : 32

name : des3_ede
driver : des3_ede-generic
module : kernel
priority : 100
refcnt : 1
selftest : passed
internal : no
type : cipher
blocksize : 8
min keysize : 24
max keysize : 24

name : des
driver : des-generic
module : kernel
priority : 100
refcnt : 1
selftest : passed
internal : no
type : cipher
blocksize : 8
min keysize : 8
max keysize : 8

name : sha224
driver : sha224-generic
module : kernel
priority : 0
refcnt : 1
selftest : passed
internal : no
type : shash
blocksize : 64
digestsize : 28

name : sha256
driver : sha256-generic
module : kernel
priority : 0
refcnt : 1
selftest : passed
internal : no
type : shash
blocksize : 64
digestsize : 32

name : sha1
driver : sha1-generic
module : kernel
priority : 0
refcnt : 1
selftest : passed
internal : no
type : shash
blocksize : 64
digestsize : 20

name : md5
driver : md5-generic
module : kernel
priority : 0
refcnt : 1
selftest : passed
internal : no
type : shash
blocksize : 64
digestsize : 16

name : digest_null
driver : digest_null-generic
module : kernel
priority : 0
refcnt : 1
selftest : passed
internal : no
type : shash
blocksize : 1
digestsize : 0

name : compress_null
driver : compress_null-generic
module : kernel
priority : 0
refcnt : 1
selftest : passed
internal : no
type : compression

name : ecb(cipher_null)
driver : ecb-cipher_null
module : kernel
priority : 100
refcnt : 1
selftest : passed
internal : no
type : blkcipher
blocksize : 1
min keysize : 0
max keysize : 0
ivsize : 0
geniv : <default>

name : cipher_null
driver : cipher_null-generic
module : kernel
priority : 0
refcnt : 1
selftest : passed
internal : no
type : cipher
blocksize : 1
min keysize : 0
max keysize : 0

name : sha512
driver : sha512-arm
module : kernel
priority : 250
refcnt : 1
selftest : passed
internal : no
type : shash
blocksize : 128
digestsize : 64

name : sha384
driver : sha384-arm
module : kernel
priority : 250
refcnt : 1
selftest : passed
internal : no
type : shash
blocksize : 128
digestsize : 48

name : sha224
driver : sha224-asm
module : kernel
priority : 150
refcnt : 1
selftest : passed
internal : no
type : shash
blocksize : 64
digestsize : 28

name : sha256
driver : sha256-asm
module : kernel
priority : 150
refcnt : 4
selftest : passed
internal : no
type : shash
blocksize : 64
digestsize : 32

name : sha1
driver : sha1-asm
module : kernel
priority : 150
refcnt : 1
selftest : passed
internal : no
type : shash
blocksize : 64
digestsize : 20

name : aes
driver : aes-asm
module : kernel
priority : 200
refcnt : 3
selftest : passed
internal : no
type : cipher
blocksize : 16
min keysize : 16
max keysize : 32
')
Thanks!
swass
 
Posts: 27
Joined: Mon Aug 11, 2014 3:43 pm

Re: marvell_cesa (mv_cesa) crypto issues in Linux 4.2 kernel

Postby moonman » Wed Sep 02, 2015 11:14 pm

Are you on linux-kirkwood or linux-kirkwood-dt? Don't know if matters, but can't check at the moment
Pogoplug V4 | GoFlex Home | Raspberry Pi 4 4GB | CuBox-i4 Pro | ClearFog | BeagleBone Black | Odroid U2 | Odroid C1 | Odroid XU4
-----------------------------------------------------------------------------------------------------------------------
[armv5] Updated U-Boot | [armv5] NAND Rescue System
moonman
Developer
 
Posts: 3387
Joined: Sat Jan 15, 2011 3:36 am

Re: marvell_cesa (mv_cesa) crypto issues in Linux 4.2 kernel

Postby swass » Wed Sep 02, 2015 11:19 pm

I'm on linux-kirkwood. Everything looks like it should work, but doesn't. Checked and see the allhwsupport is set to 1 in /sys/modules/marvell_kirkwood.

Can anyone verify on their kirkwood?
swass
 
Posts: 27
Joined: Mon Aug 11, 2014 3:43 pm

Re: marvell_cesa (mv_cesa) crypto issues in Linux 4.2 kernel

Postby moonman » Thu Sep 03, 2015 7:32 am

DT kernel on Pogoplug v4:
$this->bbcode_second_pass_code('', 'name : hmac(sha1)
driver : mv-hmac-sha1
module : marvell_cesa
priority : 300
refcnt : 1
selftest : passed
internal : no
type : ahash
async : yes
blocksize : 64
digestsize : 20

name : hmac(md5)
driver : mv-hmac-md5
module : marvell_cesa
priority : 300
refcnt : 1
selftest : passed
internal : no
type : ahash
async : yes
blocksize : 64
digestsize : 16

name : sha1
driver : mv-sha1
module : marvell_cesa
priority : 300
refcnt : 1
selftest : passed
internal : no
type : ahash
async : yes
blocksize : 64
digestsize : 20

name : md5
driver : mv-md5
module : marvell_cesa
priority : 300
refcnt : 1
selftest : passed
internal : no
type : ahash
async : yes
blocksize : 64
digestsize : 16

name : cbc(aes)
driver : mv-cbc-aes
module : marvell_cesa
priority : 300
refcnt : 1
selftest : passed
internal : no
type : ablkcipher
async : yes
blocksize : 16
min keysize : 16
max keysize : 32
ivsize : 16
geniv : <default>

name : ecb(aes)
driver : mv-ecb-aes
module : marvell_cesa
priority : 300
refcnt : 1
selftest : passed
internal : no
type : ablkcipher
async : yes
blocksize : 16
min keysize : 16
max keysize : 32
ivsize : 0
geniv : <default>

name : cbc(des3_ede)
driver : mv-cbc-des3-ede
module : marvell_cesa
priority : 300
refcnt : 1
selftest : passed
internal : no
type : ablkcipher
async : yes
blocksize : 8
min keysize : 24
max keysize : 24
ivsize : 8
geniv : <default>

name : ecb(des3_ede)
driver : mv-ecb-des3-ede
module : marvell_cesa
priority : 300
refcnt : 1
selftest : passed
internal : no
type : ablkcipher
async : yes
blocksize : 8
min keysize : 24
max keysize : 24
ivsize : 8
geniv : <default>

name : cbc(des)
driver : mv-cbc-des
module : marvell_cesa
priority : 300
refcnt : 1
selftest : passed
internal : no
type : ablkcipher
async : yes
blocksize : 8
min keysize : 8
max keysize : 8
ivsize : 8
geniv : <default>

name : ecb(des)
driver : mv-ecb-des
module : marvell_cesa
priority : 300
refcnt : 1
selftest : passed
internal : no
type : ablkcipher
async : yes
blocksize : 8
min keysize : 8
max keysize : 8
ivsize : 0
geniv : <default>

name : cbc(aes)
driver : cbc(aes-asm)
module : kernel
priority : 200
refcnt : 1
selftest : passed
internal : no
type : blkcipher
blocksize : 16
min keysize : 16
max keysize : 32
ivsize : 16
geniv : <default>

name : hmac(sha256)
driver : hmac(sha256-asm)
module : kernel
priority : 150
refcnt : 2
selftest : passed
internal : no
type : shash
blocksize : 64
digestsize : 32

name : jitterentropy_rng
driver : jitterentropy_rng
module : kernel
priority : 100
refcnt : 1
selftest : passed
internal : no
type : rng
seedsize : 0

name : stdrng
driver : drbg_nopr_hmac_sha256
module : kernel
priority : 207
refcnt : 1
selftest : passed
internal : no
type : rng
seedsize : 0

name : stdrng
driver : drbg_nopr_hmac_sha512
module : kernel
priority : 206
refcnt : 1
selftest : passed
internal : no
type : rng
seedsize : 0

name : stdrng
driver : drbg_nopr_hmac_sha384
module : kernel
priority : 205
refcnt : 1
selftest : passed
internal : no
type : rng
seedsize : 0

name : stdrng
driver : drbg_nopr_hmac_sha1
module : kernel
priority : 204
refcnt : 1
selftest : passed
internal : no
type : rng
seedsize : 0

name : stdrng
driver : drbg_pr_hmac_sha256
module : kernel
priority : 203
refcnt : 1
selftest : passed
internal : no
type : rng
seedsize : 0

name : stdrng
driver : drbg_pr_hmac_sha512
module : kernel
priority : 202
refcnt : 1
selftest : passed
internal : no
type : rng
seedsize : 0

name : stdrng
driver : drbg_pr_hmac_sha384
module : kernel
priority : 201
refcnt : 1
selftest : passed
internal : no
type : rng
seedsize : 0

name : stdrng
driver : drbg_pr_hmac_sha1
module : kernel
priority : 200
refcnt : 1
selftest : passed
internal : no
type : rng
seedsize : 0

name : lzo
driver : lzo-generic
module : kernel
priority : 0
refcnt : 2
selftest : passed
internal : no
type : compression

name : crct10dif
driver : crct10dif-generic
module : kernel
priority : 100
refcnt : 2
selftest : passed
internal : no
type : shash
blocksize : 1
digestsize : 2

name : crc32c
driver : crc32c-generic
module : kernel
priority : 100
refcnt : 2
selftest : passed
internal : no
type : shash
blocksize : 1
digestsize : 4

name : deflate
driver : deflate-generic
module : kernel
priority : 0
refcnt : 2
selftest : passed
internal : no
type : compression

name : ecb(arc4)
driver : ecb(arc4)-generic
module : kernel
priority : 100
refcnt : 1
selftest : passed
internal : no
type : blkcipher
blocksize : 1
min keysize : 1
max keysize : 256
ivsize : 0
geniv : <default>

name : arc4
driver : arc4-generic
module : kernel
priority : 0
refcnt : 1
selftest : passed
internal : no
type : cipher
blocksize : 1
min keysize : 1
max keysize : 256

name : aes
driver : aes-generic
module : kernel
priority : 100
refcnt : 1
selftest : passed
internal : no
type : cipher
blocksize : 16
min keysize : 16
max keysize : 32

name : des3_ede
driver : des3_ede-generic
module : kernel
priority : 100
refcnt : 1
selftest : passed
internal : no
type : cipher
blocksize : 8
min keysize : 24
max keysize : 24

name : des
driver : des-generic
module : kernel
priority : 100
refcnt : 1
selftest : passed
internal : no
type : cipher
blocksize : 8
min keysize : 8
max keysize : 8

name : sha224
driver : sha224-generic
module : kernel
priority : 0
refcnt : 1
selftest : passed
internal : no
type : shash
blocksize : 64
digestsize : 28

name : sha256
driver : sha256-generic
module : kernel
priority : 0
refcnt : 1
selftest : passed
internal : no
type : shash
blocksize : 64
digestsize : 32

name : sha1
driver : sha1-generic
module : kernel
priority : 0
refcnt : 1
selftest : passed
internal : no
type : shash
blocksize : 64
digestsize : 20

name : md5
driver : md5-generic
module : kernel
priority : 0
refcnt : 1
selftest : passed
internal : no
type : shash
blocksize : 64
digestsize : 16

name : digest_null
driver : digest_null-generic
module : kernel
priority : 0
refcnt : 1
selftest : passed
internal : no
type : shash
blocksize : 1
digestsize : 0

name : compress_null
driver : compress_null-generic
module : kernel
priority : 0
refcnt : 1
selftest : passed
internal : no
type : compression

name : ecb(cipher_null)
driver : ecb-cipher_null
module : kernel
priority : 100
refcnt : 1
selftest : passed
internal : no
type : blkcipher
blocksize : 1
min keysize : 0
max keysize : 0
ivsize : 0
geniv : <default>

name : cipher_null
driver : cipher_null-generic
module : kernel
priority : 0
refcnt : 1
selftest : passed
internal : no
type : cipher
blocksize : 1
min keysize : 0
max keysize : 0

name : sha512
driver : sha512-arm
module : kernel
priority : 250
refcnt : 1
selftest : passed
internal : no
type : shash
blocksize : 128
digestsize : 64

name : sha384
driver : sha384-arm
module : kernel
priority : 250
refcnt : 1
selftest : passed
internal : no
type : shash
blocksize : 128
digestsize : 48

name : sha224
driver : sha224-asm
module : kernel
priority : 150
refcnt : 1
selftest : passed
internal : no
type : shash
blocksize : 64
digestsize : 28

name : sha256
driver : sha256-asm
module : kernel
priority : 150
refcnt : 3
selftest : passed
internal : no
type : shash
blocksize : 64
digestsize : 32

name : sha1
driver : sha1-asm
module : kernel
priority : 150
refcnt : 1
selftest : passed
internal : no
type : shash
blocksize : 64
digestsize : 20

name : aes
driver : aes-asm
module : kernel
priority : 200
refcnt : 1
selftest : passed
internal : no
type : cipher
blocksize : 16
min keysize : 16
max keysize : 32
')

I will revert to mv_cesa on non-dt kernel (or something needs to be changed in the kernel or the driver to support this setup without device tree - but there is no point since all that code has been removed in mainline anyway)
Pogoplug V4 | GoFlex Home | Raspberry Pi 4 4GB | CuBox-i4 Pro | ClearFog | BeagleBone Black | Odroid U2 | Odroid C1 | Odroid XU4
-----------------------------------------------------------------------------------------------------------------------
[armv5] Updated U-Boot | [armv5] NAND Rescue System
moonman
Developer
 
Posts: 3387
Joined: Sat Jan 15, 2011 3:36 am

Re: marvell_cesa (mv_cesa) crypto issues in Linux 4.2 kernel

Postby swass » Thu Sep 03, 2015 12:29 pm

EDIT: Thanks, moonman. I actually just upgraded to linux-kirkwood-dt and it is working now. However, the driver seems to be performing poorly -- actually more poorly than with mv_cesa previously.

Here is something interesting that I noticed:

# cat /sys/devices/platform/mbus/f1030000.crypto/of_node/compatible; echo
marvell,orion-crypto

Shouldn't this be marvell,kirkwood-crypto? When I glanced at the source for the driver before, I think I remember that DMA was only enabled if it is kirkwood and orion disables it. Not 100% sure on that though. To my knowledge, this SoC should be kirkwood. Thoughts?

Also, for someone who doesn't work with uboot much, do you have a link to an instruction on how to upgrade to the latest uboot that is generally complete?
swass
 
Posts: 27
Joined: Mon Aug 11, 2014 3:43 pm

Re: marvell_cesa (mv_cesa) crypto issues in Linux 4.2 kernel

Postby swass » Thu Sep 03, 2015 6:41 pm

Just found this in the source. Therefore I think it's safe to say the driver does not believe the 88f6192 has a TDMA block.

$this->bbcode_second_pass_code('', 'static const struct of_device_id mv_cesa_of_match_table[] = {
{ .compatible = "marvell,orion-crypto", .data = &orion_caps },
{ .compatible = "marvell,kirkwood-crypto", .data = &kirkwood_caps },
{ .compatible = "marvell,dove-crypto", .data = &kirkwood_caps },
{ .compatible = "marvell,armada-370-crypto", .data = &armada_370_caps },
{ .compatible = "marvell,armada-xp-crypto", .data = &armada_xp_caps },
{ .compatible = "marvell,armada-375-crypto", .data = &armada_xp_caps },
{ .compatible = "marvell,armada-38x-crypto", .data = &armada_xp_caps },
{}
};')

$this->bbcode_second_pass_code('', '/**
* struct mv_cesa_caps - CESA device capabilities
* @engines: number of engines
* @has_tdma: whether this device has a TDMA block
* @cipher_algs: supported cipher algorithms
* @ncipher_algs: number of supported cipher algorithms
* @ahash_algs: supported hash algorithms
* @nahash_algs: number of supported hash algorithms
*
* Structure used to describe CESA device capabilities.
*/
struct mv_cesa_caps {
int nengines;
bool has_tdma;
struct crypto_alg **cipher_algs;
int ncipher_algs;
struct ahash_alg **ahash_algs;
int nahash_algs;
};')

$this->bbcode_second_pass_code('', 'static const struct mv_cesa_caps orion_caps = {
.nengines = 1,
.cipher_algs = orion_cipher_algs,
.ncipher_algs = ARRAY_SIZE(orion_cipher_algs),
.ahash_algs = orion_ahash_algs,
.nahash_algs = ARRAY_SIZE(orion_ahash_algs),
.has_tdma = false,
};')

.. versus ..

$this->bbcode_second_pass_code('', 'static const struct mv_cesa_caps kirkwood_caps = {
.nengines = 1,
.cipher_algs = orion_cipher_algs,
.ncipher_algs = ARRAY_SIZE(orion_cipher_algs),
.ahash_algs = orion_ahash_algs,
.nahash_algs = ARRAY_SIZE(orion_ahash_algs),
.has_tdma = true,
};')

However, the architecture document from Marvell indicates it does:
https://origin-www.marvell.com/embedded-processors/kirkwood/assets/HW_88F619x_OpenSource.pdf
$this->bbcode_second_pass_quote('', 'C')ryptographic engine
• Hardware implementation on encryption and authentication engines, to boost packet processing speed
• Dedicated DMA to feed the hardware engines with data from the internal SRAM memory or from the DDR memory
• Implements AES, DES, and 3DES encryption algorithms
• Implements SHA1 and MD5 authentication algorithms
swass
 
Posts: 27
Joined: Mon Aug 11, 2014 3:43 pm

Re: marvell_cesa (mv_cesa) crypto issues in Linux 4.2 kernel

Postby moonman » Thu Sep 03, 2015 8:54 pm

Since you are running arch already you can just install uboot-pogoplugv4 and answer 'y' when prompted. That's it for uboot installation. Environment is already set up the right way to get uImage and zImage + corresponding fdt.

You are free to submit a patch to get it working if you wish.

My GoFlex shows the same thing:
$this->bbcode_second_pass_code('', 'marvell,orion-crypto')
Pogoplug V4 | GoFlex Home | Raspberry Pi 4 4GB | CuBox-i4 Pro | ClearFog | BeagleBone Black | Odroid U2 | Odroid C1 | Odroid XU4
-----------------------------------------------------------------------------------------------------------------------
[armv5] Updated U-Boot | [armv5] NAND Rescue System
moonman
Developer
 
Posts: 3387
Joined: Sat Jan 15, 2011 3:36 am

Re: marvell_cesa (mv_cesa) crypto issues in Linux 4.2 kernel

Postby swass » Thu Sep 03, 2015 9:04 pm

Thanks for the tip on uboot, moonman.

I'm a little rusty to be submitting patches for them, but I'm curious what might be going on here. Based on what one of the driver authors said in a patch, it chooses marvell,orion-crypto by default for compatibility reasons with non-dt kernels, but then I would have also expected the non-dt kernel to work just fine with the driver (perhaps without DMA, as is currently the case). I'm at this point just trying to understand why it is choosing that -- if something is wrong with the DT or because it isn't finding a property.
swass
 
Posts: 27
Joined: Mon Aug 11, 2014 3:43 pm

Re: marvell_cesa (mv_cesa) crypto issues in Linux 4.2 kernel

Postby moonman » Thu Sep 03, 2015 9:10 pm

Maybe this patch required: http://code.bulix.org/qul84q-88670
But from what I can see it is not in the latest next kernel source either.
Pogoplug V4 | GoFlex Home | Raspberry Pi 4 4GB | CuBox-i4 Pro | ClearFog | BeagleBone Black | Odroid U2 | Odroid C1 | Odroid XU4
-----------------------------------------------------------------------------------------------------------------------
[armv5] Updated U-Boot | [armv5] NAND Rescue System
moonman
Developer
 
Posts: 3387
Joined: Sat Jan 15, 2011 3:36 am

Re: marvell_cesa (mv_cesa) crypto issues in Linux 4.2 kernel

Postby swass » Thu Sep 03, 2015 10:25 pm

That looks like it may be along the lines of what we're looking for. Looked to me like it wasn't supplying the right property to the driver, which isn't really the driver's fault I guess. I'm trying a really ugly patch to cesa.c right now to see if I can hack it into working, at least for my purposes, and then compiling linux-kirkwood-dt to see what happens. I just really want to have DMA for LUKS. :D
swass
 
Posts: 27
Joined: Mon Aug 11, 2014 3:43 pm

Next

Return to Marvell Kirkwood

Who is online

Users browsing this forum: Google [Bot] and 13 guests