On 24 January 2014 17:18, Tomasz Figa <t.figa@xxxxxxxxxxx> wrote: > > > On 24.01.2014 05:44, Tushar Behera wrote: >> >> On 23 January 2014 23:45, Tomasz Figa <t.figa@xxxxxxxxxxx> wrote: >>> >>> Hi, >>> >>> >>> On 07.01.2014 09:53, Tushar Behera wrote: >>>> >>>> >>>> For Exynos4 platform, L2 cache initialization is done only if >>>> a device node for l2x0 device exists. >>>> >>>> L2 cache initialization path is different when a board boots with >>>> secure firmware. Since there are many Exynos4 based SoCs that boot >>>> in secure mode, enabling this only for boards that don't boot with >>>> secure firmware. >>>> >>>> Signed-off-by: Tushar Behera <tushar.behera@xxxxxxxxxx> >>>> --- >>>> >>>> Tested on Exynos4210-Origen board. >>>> >>>> arch/arm/boot/dts/exynos4.dtsi | 8 ++++++++ >>>> arch/arm/boot/dts/exynos4210-origen.dts | 4 ++++ >>>> arch/arm/boot/dts/exynos4210-smdkv310.dts | 4 ++++ >>>> arch/arm/boot/dts/exynos4210-trats.dts | 4 ++++ >>>> arch/arm/boot/dts/exynos4210-universal_c210.dts | 4 ++++ >>>> arch/arm/boot/dts/exynos4412-odroidx.dts | 4 ++++ >>>> arch/arm/boot/dts/exynos4412-smdk4412.dts | 4 ++++ >>>> arch/arm/boot/dts/exynos4412-tiny4412.dts | 4 ++++ >>>> 8 files changed, 36 insertions(+) >>> >>> >>> >>> Looks good. Unfortunately this is still going to break secure firmware >>> enabled boards, because l2x0_of_init() does not check if the node is >>> enabled. >>> >> >> Is the following check in l2x0_of_init() not enough? >> >> 1002 |-------np = of_find_matching_node(NULL, l2x0_ids); >> 1003 |-------if (!np) >> 1004 |-------|-------return -ENODEV; > > > It only looks for a matching node without checking its status property. > Hmm ... so in that case, will this work? diff --git a/arch/arm/mm/cache-l2x0.c b/arch/arm/mm/cache-l2x0.c index 7abde2ce..ebcab01 100644 --- a/arch/arm/mm/cache-l2x0.c +++ b/arch/arm/mm/cache-l2x0.c @@ -973,11 +973,17 @@ int __init l2x0_of_init(u32 aux_val, u32 aux_mask) struct device_node *np; const struct l2x0_of_data *data; struct resource res; + const char *status; np = of_find_matching_node(NULL, l2x0_ids); if (!np) return -ENODEV; + status = of_get_property(np, "status", NULL); + if (status) + if (strcmp(status, "okay")) + return -ENODEV; + if (of_address_to_resource(np, 0, &res)) return -ENODEV; -- Tushar Behera -- To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html