Hi Gilles, The kernel is booting and I executed latency and xeno-test commands. The results are below.
linaro@linaro-alip:/usr/xenomai/bin$ sudo ./latency == Sampling period: 1000 us == Test mode: periodic user-mode task == All results in microseconds warming up... RTT| 00:00:01 (periodic user-mode task, 1000 us period, priority 99) RTH|----lat min|----lat avg|----lat max|-overrun|---msw|---lat best|--lat worst RTD| 4.017| 10.896| 21.088| 0| 0| 4.017| 21.088 RTD| 4.507| 9.898| 24.037| 0| 0| 4.017| 24.037 RTD| 4.209| 10.840| 33.416| 0| 0| 4.017| 33.416 RTD| 3.962| 14.106| 699.722| 0| 0| 3.962| 699.722 RTD| 3.727| 12.861| 249.477| 0| 0| 3.727| 699.722 RTD| 4.032| 11.598| 317.497| 0| 0| 3.727| 699.722 RTD| 4.747| 13.290| 368.406| 0| 0| 3.727| 699.722 RTD| 8.270| 12.785| 464.007| 0| 0| 3.727| 699.722 RTD| 3.681| 11.505| 253.196| 0| 0| 3.681| 699.722 RTD| 4.047| 11.358| 23.550| 0| 0| 3.681| 699.722 RTD| 4.148| 9.409| 21.568| 0| 0| 3.681| 699.722 RTD| 3.800| 11.169| 155.095| 0| 0| 3.681| 699.722 RTD| 3.707| 12.517| 562.151| 0| 0| 3.681| 699.722 RTD| 3.979| 11.356| 21.737| 0| 0| 3.681| 699.722 RTD| 4.492| 11.813| 622.838| 0| 0| 3.681| 699.722 RTD| 3.863| 9.227| 19.388| 0| 0| 3.681| 699.722 RTD| 3.787| 7.977| 304.196| 0| 0| 3.681| 699.722 RTD| 3.818| 7.848| 488.876| 0| 0| 3.681| 699.722 RTD| 3.921| 8.030| 507.181| 0| 0| 3.681| 699.722 RTD| 3.949| 7.290| 19.797| 0| 0| 3.681| 699.722 RTD| 3.813| 9.431| 34.290| 0| 0| 3.681| 699.722 RTT| 00:00:22 (periodic user-mode task, 1000 us period, priority 99) RTH|----lat min|----lat avg|----lat max|-overrun|---msw|---lat best|--lat worst RTD| 3.684| 10.997| 20.499| 0| 0| 3.681| 699.722 RTD| 8.535| 11.383| 34.055| 0| 0| 3.681| 699.722 RTD| 4.429| 11.002| 30.623| 0| 0| 3.681| 699.722 RTD| 3.881| 8.739| 19.378| 0| 0| 3.681| 699.722 RTD| 3.939| 7.984| 22.012| 0| 0| 3.681| 699.722 RTD| 3.909| 7.739| 24.398| 0| 0| 3.681| 699.722 RTD| 3.893| 8.209| 278.093| 0| 0| 3.681| 699.722 RTD| 3.929| 9.452| 323.429| 0| 0| 3.681| 699.722 RTD| 4.032| 11.227| 277.406| 0| 0| 3.681| 699.722 RTD| 3.780| 12.323| 367.732| 0| 0| 3.681| 699.722 RTD| 4.085| 13.952| 639.260| 0| 0| 3.681| 699.722 RTD| 3.727| 12.202| 663.416| 0| 0| 3.681| 699.722 RTD| 4.393| 12.383| 412.757| 0| 0| 3.681| 699.722 ^C---|-----------|-----------|-----------|--------|------|------------------------- RTS| 3.681| 10.669| 699.722| 0| 0| 00:00:34/00:00:34 Xeno-test result: Started child 14303: dohell 900 Started child 14304: /usr/xenomai/bin/latency == Sampling period: 1000 us == Test mode: periodic user-mode task == All results in microseconds warming up... RTT| 00:00:01 (periodic user-mode task, 1000 us period, priority 99) RTH|----lat min|----lat avg|----lat max|-overrun|---msw|---lat best|--lat worst RTD| 3.790| 12.032| 20.199| 0| 0| 3.790| 20.199 RTD| 4.017| 11.207| 259.628| 0| 0| 3.790| 259.628 RTD| 3.924| 10.648| 502.863| 0| 0| 3.790| 502.863 RTD| 3.997| 11.222| 521.247| 0| 0| 3.790| 521.247 RTD| 4.002| 10.679| 167.633| 0| 0| 3.790| 521.247 RTD| 3.823| 11.035| 432.459| 0| 0| 3.790| 521.247 RTD| 3.858| 11.247| 693.482| 0| 0| 3.790| 693.482 RTD| 3.782| 10.227| 618.681| 0| 0| 3.782| 693.482 RTD| 3.977| 11.856| 614.128| 0| 0| 3.782| 693.482 RTD| 4.007| 11.287| 571.318| 0| 0| 3.782| 693.482 RTD| 3.853| 10.502| 105.585| 0| 0| 3.782| 693.482 RTD| 3.934| 10.734| 281.207| 0| 0| 3.782| 693.482 RTD| 3.845| 9.318| 187.479| 0| 0| 3.782| 693.482 RTD| 4.022| 10.353| 98.505| 0| 0| 3.782| 693.482 RTD| 3.999| 11.154| 316.641| 0| 0| 3.782| 693.482 RTD| 3.901| 10.972| 280.275| 0| 0| 3.782| 693.482 RTD| 3.818| 10.714| 601.404| 0| 0| 3.782| 693.482 RTD| 3.916| 10.729| 681.338| 0| 0| 3.782| 693.482 RTD| 4.015| 12.406| 793.967| 0| 0| 3.782| 793.967 RTD| 3.939| 11.224| 627.510| 0| 0| 3.782| 793.967 RTD| 3.863| 11.734| 520.931| 0| 0| 3.782| 793.967 RTT| 00:00:22 (periodic user-mode task, 1000 us period, priority 99) RTH|----lat min|----lat avg|----lat max|-overrun|---msw|---lat best|--lat worst RTD| 3.780| 10.545| 461.820| 0| 0| 3.780| 793.967 RTD| 4.032| 12.909| 743.262| 0| 0| 3.780| 793.967 RTD| 4.030| 11.906| 376.366| 0| 0| 3.780| 793.967 RTD| 4.063| 11.714| 683.219| 0| 0| 3.780| 793.967 RTD| 4.010| 12.941| 689.578| 0| 0| 3.780| 793.967 RTD| 3.972| 10.616| 414.128| 0| 0| 3.780| 793.967 RTD| 3.994| 11.643| 491.795| 0| 0| 3.780| 793.967 RTD| 3.843| 10.994| 110.843| 0| 0| 3.780| 793.967 RTD| 3.974| 11.439| 466.378| 0| 0| 3.780| 793.967 ^C---|-----------|-----------|-----------|--------|------|------------------------- RTS| 3.780| 11.199| 793.967| 0| 0| 00:00:30/00:00:30 Thanks for the reply, Bruno Em Segunda-feira, 24 de Fevereiro de 2014 9:13, Gilles Chanteperdrix <[email protected]> escreveu: On 02/24/2014 02:11 AM, Bruno Tunes de Mello wrote: > Hi Gilles, > > I did the changes, but the kernel is not booting. Ok, you are the second to report this issue, so the patch must be touching bits it should not touch. Please try that one instead: diff --git a/arch/arm/mach-mx6/mm.c b/arch/arm/mach-mx6/mm.c index 3cf6b22..d89393c 100644 --- a/arch/arm/mach-mx6/mm.c +++ b/arch/arm/mach-mx6/mm.c @@ -97,7 +97,7 @@ void __init mx6_map_io(void) #ifdef CONFIG_CACHE_L2X0 int mxc_init_l2x0(void) { - unsigned int val; + unsigned int val, aux_ctrl; #define IOMUXC_GPR11_L2CACHE_AS_OCRAM 0x00000002 @@ -114,12 +114,28 @@ int mxc_init_l2x0(void) val = readl(IO_ADDRESS(L2_BASE_ADDR + L2X0_PREFETCH_CTRL)); val |= 0x40800000; writel(val, IO_ADDRESS(L2_BASE_ADDR + L2X0_PREFETCH_CTRL)); +#ifndef CONFIG_IPIPE val = readl(IO_ADDRESS(L2_BASE_ADDR + L2X0_POWER_CTRL)); val |= L2X0_DYNAMIC_CLK_GATING_EN; val |= L2X0_STNDBY_MODE_EN; writel(val, IO_ADDRESS(L2_BASE_ADDR + L2X0_POWER_CTRL)); +#endif + +#if 0 + aux_ctrl = ((1 << L2X0_AUX_CTRL_ASSOCIATIVITY_SHIFT) | + (0x1 << L2X0_AUX_CTRL_NS_LOCKDOWN_SHIFT) | + (0x1 << L2X0_AUX_CTRL_NS_INT_CTRL_SHIFT) | + (1 << 23) | + (1 << L2X0_AUX_CTRL_SHARE_OVERRIDE_SHIFT) | + (1 << L2X0_AUX_CTRL_DATA_PREFETCH_SHIFT) | + (1 << L2X0_AUX_CTRL_INSTR_PREFETCH_SHIFT) | + (1 << L2X0_AUX_CTRL_EARLY_BRESP_SHIFT)); + + l2x0_init(IO_ADDRESS(L2_BASE_ADDR), aux_ctrl, L2X0_AUX_CTRL_MASK); +#else + l2x0_init(IO_ADDRESS(L2_BASE_ADDR), 1 << 23, ~(1 << 23)); +#endif - l2x0_init(IO_ADDRESS(L2_BASE_ADDR), 0x0, ~0x00000000); return 0; } diff --git a/arch/arm/mm/cache-l2x0.c b/arch/arm/mm/cache-l2x0.c index 1e2c52d..27550b3 100644 --- a/arch/arm/mm/cache-l2x0.c +++ b/arch/arm/mm/cache-l2x0.c @@ -421,6 +421,9 @@ void l2x0_init(void __iomem *base, __u32 aux_val, __u32 aux_mask) writel_relaxed(1, l2x0_base + L2X0_CTRL); } + /* Re-read it in case some bits are reserved. */ + aux = readl_relaxed(l2x0_base + L2X0_AUX_CTRL); + outer_cache.inv_range = l2x0_inv_range; outer_cache.clean_range = l2x0_clean_range; outer_cache.flush_range = l2x0_flush_range; -- Gilles. _______________________________________________ Xenomai mailing list [email protected] http://www.xenomai.org/mailman/listinfo/xenomai
