lkml.org 
[lkml]   [2020]   [Aug]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 5.7 04/60] ARM: exynos: clear L310_AUX_CTRL_FULL_LINE_ZERO in default l2c_aux_val
    Date
    From: Guillaume Tucker <guillaume.tucker@collabora.com>

    [ Upstream commit 5b17a04addc29201dc142c8d2c077eb7745d2e35 ]

    This "alert" error message can be seen on exynos4412-odroidx2:

    L2C: platform modifies aux control register: 0x02070000 -> 0x3e470001
    L2C: platform provided aux values permit register corruption.

    Followed by this plain error message:

    L2C-310: enabling full line of zeros but not enabled in Cortex-A9

    To fix it, don't set the L310_AUX_CTRL_FULL_LINE_ZERO flag (bit 0) in
    the default value of l2c_aux_val. It may instead be enabled when
    applicable by the logic in l2c310_enable() if the attribute
    "arm,full-line-zero-disable" was set in the device tree.

    The initial commit that introduced this default value was in v2.6.38
    commit 1cf0eb799759 ("ARM: S5PV310: Add L2 cache init function in
    cpu.c").

    However, the code to set the L310_AUX_CTRL_FULL_LINE_ZERO flag and
    manage that feature was added much later and the default value was not
    updated then. So this seems to have been a subtle oversight
    especially since enabling it only in the cache and not in the A9 core
    doesn't actually prevent the platform from running. According to the
    TRM, the opposite would be a real issue, if the feature was enabled in
    the A9 core but not in the cache controller.

    Reported-by: "kernelci.org bot" <bot@kernelci.org>
    Signed-off-by: Guillaume Tucker <guillaume.tucker@collabora.com>
    Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    arch/arm/mach-exynos/exynos.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    diff --git a/arch/arm/mach-exynos/exynos.c b/arch/arm/mach-exynos/exynos.c
    index 7a8d1555db404..36c37444485a8 100644
    --- a/arch/arm/mach-exynos/exynos.c
    +++ b/arch/arm/mach-exynos/exynos.c
    @@ -193,7 +193,7 @@ static void __init exynos_dt_fixup(void)
    }

    DT_MACHINE_START(EXYNOS_DT, "Samsung Exynos (Flattened Device Tree)")
    - .l2c_aux_val = 0x3c400001,
    + .l2c_aux_val = 0x3c400000,
    .l2c_aux_mask = 0xc20fffff,
    .smp = smp_ops(exynos_smp_ops),
    .map_io = exynos_init_io,
    --
    2.25.1
    \
     
     \ /
      Last update: 2020-08-10 21:30    [W:2.872 / U:0.016 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site