lkml.org 
[lkml]   [2020]   [Jan]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Date
SubjectRe: [PATCH 2/2] crypto: ccree - fix debugfs register access while suspended
On Fri, Jan 24, 2020 at 3:30 PM Geert Uytterhoeven
<geert+renesas@glider.be> wrote:
>
> Reading the debugfs files under /sys/kernel/debug/ccree/ can be done by
> the user at any time. On R-Car SoCs, the CCREE device is power-managed
> using a moduile clock, and if this clock is not running, bogus register
> values may be read.
>
> Fix this by filling in the debugfs_regset32.dev field, so debugfs will
> make sure the device is resumed while its registers are being read.
>
> This fixes the bogus values (0x00000260) in the register dumps on R-Car
> H3 ES1.0:
>
> -e6601000.crypto/regs:HOST_IRR = 0x00000260
> -e6601000.crypto/regs:HOST_POWER_DOWN_EN = 0x00000260
> +e6601000.crypto/regs:HOST_IRR = 0x00000038
> +e6601000.crypto/regs:HOST_POWER_DOWN_EN = 0x00000038
> e6601000.crypto/regs:AXIM_MON_ERR = 0x00000000
> e6601000.crypto/regs:DSCRPTR_QUEUE_CONTENT = 0x000002aa
> -e6601000.crypto/regs:HOST_IMR = 0x00000260
> +e6601000.crypto/regs:HOST_IMR = 0x017ffeff
> e6601000.crypto/regs:AXIM_CFG = 0x001f0007
> e6601000.crypto/regs:AXIM_CACHE_PARAMS = 0x00000000
> -e6601000.crypto/regs:GPR_HOST = 0x00000260
> +e6601000.crypto/regs:GPR_HOST = 0x017ffeff
> e6601000.crypto/regs:AXIM_MON_COMP = 0x00000000
> -e6601000.crypto/version:SIGNATURE = 0x00000260
> -e6601000.crypto/version:VERSION = 0x00000260
> +e6601000.crypto/version:SIGNATURE = 0xdcc63000
> +e6601000.crypto/version:VERSION = 0xaf400001
>
> Note that this behavior is system-dependent, and the issue does not show
> up on all R-Car Gen3 SoCs and boards. Even when the device is
> suspended, the module clock may be left enabled, if configured by the
> firmware for Secure Mode, or when controlled by the Real-Time Core.
>
> Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
> ---
> drivers/crypto/ccree/cc_debugfs.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/crypto/ccree/cc_debugfs.c b/drivers/crypto/ccree/cc_debugfs.c
> index 5669997386988055..35f3a2137502bd96 100644
> --- a/drivers/crypto/ccree/cc_debugfs.c
> +++ b/drivers/crypto/ccree/cc_debugfs.c
> @@ -81,6 +81,7 @@ int cc_debugfs_init(struct cc_drvdata *drvdata)
> regset->regs = debug_regs;
> regset->nregs = ARRAY_SIZE(debug_regs);
> regset->base = drvdata->cc_base;
> + regset->dev = dev;
>
> ctx->dir = debugfs_create_dir(drvdata->plat_dev->name, cc_debugfs_dir);
>
> @@ -102,6 +103,7 @@ int cc_debugfs_init(struct cc_drvdata *drvdata)
> verset->nregs = ARRAY_SIZE(pid_cid_regs);
> }
> verset->base = drvdata->cc_base;
> + verset->dev = dev;
>
> debugfs_create_regset32("version", 0400, ctx->dir, verset);
>
> --
> 2.17.1
>


Acked-by: Gilad Ben-Yossef <gilad@benyossef.com>

Thanks,
Gilad
--
Gilad Ben-Yossef
Chief Coffee Drinker

values of β will give rise to dom!

\
 
 \ /
  Last update: 2020-01-26 14:34    [W:0.085 / U:0.092 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site