crypto/dpaax_sec: support PDCP 12-bit C-Plane
authorVakul Garg <vakul.garg@nxp.com>
Mon, 30 Sep 2019 14:40:41 +0000 (20:10 +0530)
committerAkhil Goyal <akhil.goyal@nxp.com>
Wed, 9 Oct 2019 09:50:12 +0000 (11:50 +0200)
commiteac600824e3b7647d86fa91ceef21dcfc0712dae
treedab4044d9a18a0684fe36bcacb7980b0bc145578
parentc02e33b03075bde50bfb835e1094c94297d988b6
crypto/dpaax_sec: support PDCP 12-bit C-Plane

Added support for 12-bit c-plane. We implement it using 'u-plane for RN'
protocol descriptors. This is because 'c-plane' protocol descriptors
assume 5-bit sequence numbers. Since the crypto processing remains same
irrespective of c-plane or u-plane, we choose 'u-plane for RN' protocol
descriptors to implement 12-bit c-plane. 'U-plane for RN' protocol
descriptors support both confidentiality and integrity (required for
c-plane) for 7/12/15 bit sequence numbers.

For little endian platforms, incorrect IV is generated if MOVE command
is used in pdcp non-proto descriptors. This is because MOVE command
treats data as word. We changed MOVE to MOVEB since we require data to
be treated as byte array. The change works on both ls1046, ls2088.

Signed-off-by: Vakul Garg <vakul.garg@nxp.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
drivers/crypto/dpaa2_sec/hw/desc.h
drivers/crypto/dpaa2_sec/hw/desc/pdcp.h
drivers/crypto/dpaa2_sec/hw/rta/protocol_cmd.h
drivers/crypto/dpaa_sec/dpaa_sec.c