Message ID | 20220816124525.19671-1-ylalehto@gmail.com |
---|---|
State | Accepted |
Commit | cf5c48d102bd50eb24eb03ddd5cc1f0c33a3f57a |
Delegated to: | Michal Simek |
Headers | show |
Series | xilinx: zynqmp: Fix AES with a user provided key | expand |
On 8/16/22 14:45, Janne Ylalehto wrote: > The user provided key address was not flushed in struct aes because of > the flushing location in the function. > > Signed-off-by: Janne Ylalehto <ylalehto@gmail.com> > --- > > board/xilinx/zynqmp/cmds.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/board/xilinx/zynqmp/cmds.c b/board/xilinx/zynqmp/cmds.c > index 2ab9596248..e20030ecda 100644 > --- a/board/xilinx/zynqmp/cmds.c > +++ b/board/xilinx/zynqmp/cmds.c > @@ -142,9 +142,6 @@ static int do_zynqmp_aes(struct cmd_tbl *cmdtp, int flag, int argc, > aes->keysrc = hextoul(argv[6], NULL); > aes->dstaddr = hextoul(argv[7], NULL); > > - flush_dcache_range((ulong)aes, (ulong)(aes) + > - roundup(sizeof(struct aes), ARCH_DMA_MINALIGN)); > - > if (aes->srcaddr && aes->ivaddr && aes->dstaddr) { > flush_dcache_range(aes->srcaddr, > (aes->srcaddr + > @@ -169,6 +166,9 @@ static int do_zynqmp_aes(struct cmd_tbl *cmdtp, int flag, int argc, > ARCH_DMA_MINALIGN))); > } > > + flush_dcache_range((ulong)aes, (ulong)(aes) + > + roundup(sizeof(struct aes), ARCH_DMA_MINALIGN)); > + > ret = xilinx_pm_request(PM_SECURE_AES, upper_32_bits((ulong)aes), > lower_32_bits((ulong)aes), 0, 0, ret_payload); > if (ret || ret_payload[1]) Applied. M
diff --git a/board/xilinx/zynqmp/cmds.c b/board/xilinx/zynqmp/cmds.c index 2ab9596248..e20030ecda 100644 --- a/board/xilinx/zynqmp/cmds.c +++ b/board/xilinx/zynqmp/cmds.c @@ -142,9 +142,6 @@ static int do_zynqmp_aes(struct cmd_tbl *cmdtp, int flag, int argc, aes->keysrc = hextoul(argv[6], NULL); aes->dstaddr = hextoul(argv[7], NULL); - flush_dcache_range((ulong)aes, (ulong)(aes) + - roundup(sizeof(struct aes), ARCH_DMA_MINALIGN)); - if (aes->srcaddr && aes->ivaddr && aes->dstaddr) { flush_dcache_range(aes->srcaddr, (aes->srcaddr + @@ -169,6 +166,9 @@ static int do_zynqmp_aes(struct cmd_tbl *cmdtp, int flag, int argc, ARCH_DMA_MINALIGN))); } + flush_dcache_range((ulong)aes, (ulong)(aes) + + roundup(sizeof(struct aes), ARCH_DMA_MINALIGN)); + ret = xilinx_pm_request(PM_SECURE_AES, upper_32_bits((ulong)aes), lower_32_bits((ulong)aes), 0, 0, ret_payload); if (ret || ret_payload[1])
The user provided key address was not flushed in struct aes because of the flushing location in the function. Signed-off-by: Janne Ylalehto <ylalehto@gmail.com> --- board/xilinx/zynqmp/cmds.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)