Issue with dcahe enabling.

KARTHIK SEKURU karthik.sekuru at gmail.com
Wed Mar 28 07:17:30 EDT 2012


Hi,

>You didn't mention exactly when you're enabling the data cache. If
>it's prior to executing the kernel, then your code needs to make sure
>that the MMU (and hence the data cache) has been disabled prior to
>running the kernel itself.

>The kernel will then turn the MMU, data and instruction caches on as
>part of its own initialization.

We donot have any bootloader.,so all the necessary initialisations are done
using Trace32 cmm script.
In this Trace32 script I am making sure that i am turning off MMU before i
entering kernel as the dcahe is enable prior to kernel.

I could see the following console message( in red ) through early printk --

<5>Linux version 3.1.6-00002-g527439a-dirty (karthik at swaminathan-linuxpc)
(gcc version 4.5.3 (Ubuntu/Linaro 4.5.3-7ubuntu1~ppa4) ) #82 Wed Mar 28
10:30:35 EDT 2012

CPU: ARM926EJ-S [+08080C888CPU:    TTTTta cache,,,,VVVVnstruction cache



5TEJ), cr=+004444Machine:    FFFF6666oooo



nstruction cache



5TEJ), cr=+004444<5>Ignoring RAM aaaa000000000000<3>INITRD: 0xxxx22220000<5>

lowmem_limit :0x++++Memory policy: ECCCCiiiiled, Data cache wwwweeeekkkky
region - disabling initrd

*<0>Kernel panic - not syncinggggRRRR::::iiii    aaaacccc*



isabling initrd

[[[[888800002222    wwww____kkkkccccfrom    222200006666]]]]nnnnppppaaaaaaaa



[[[[000066662222    wwwwppppaaaaccccfrom    222200002222]]]]nnnniiiiaaaaaaaa



[[[888822222222    wwwwiiiiaaaaccccfrom
22226666EEEE]]]]nnnnbbbbkkkkllllbbbb++////0000)

[[[[6666EEEE0000    wwwwbbbbkkkkllllbbbb++++////0000rom [[[[6666EEEE0000
wwwwbbbbkkkkllllbbbb++++////0000++++/)

[[[[6666EEEE0000    wwwwbbbbkkkkllllbbbb++++////0000++++////++++////rom
[[[[6666AAAA04>] (unwllllllll++++////)

[[[[6666AAAA0000    wwwwllllllll++++////rom [[[[88882222AAAA
wwwwiiiiiiii++++AAAA04>] (unwllllllll++++////)

[[[[88882222AAAA    wwwwiiiiiiii++++rom [[[[888822220000
wwwwuuuurrrr++++++++AAAA04>] (unwllllllll++++////)

[[[[6666CCCC0000    ttttaaaa++++) from
[<<<<666644444444((((wwwwuuuurrrr++++++++AAAA04>] (unwllllllll++++////)

[[[[666644440000    from    222200000000]]]]



44444444((((wwwwuuuurrrr++++++++AAAA04>] (unwllllllll++++////).


We could see control going to panic(shown in bold.).



Please let me know how dcahe enabling is resulting in panic., with dcache
disabled(CPU_DCACHE_DISABLE = y) everything seems to be OK.




On Tue, Mar 27, 2012 at 9:32 PM, Dave Hylands <dhylands at gmail.com> wrote:

> Hi Karthiik,
>
> On Tue, Mar 27, 2012 at 5:12 AM, KARTHIK SEKURU
> <karthik.sekuru at gmail.com> wrote:
> > Hi,
> >
> > I'm doing kernel porting to arm926 based FPGA board, very minimal setup.
> ...snip...
> > If I enable data cache and debug with JTAG, Kernel ends up in
> > ENTRY(__delay).
>
> So you mentioned enabling the data cache. So on the ARM, enabling the
> data cache means that the MMU has to be enabled.
>
> There is a "rule" that the MMU MUST be off when the kernel starts, or
> things won't work properly.
> http://lxr.linux.no/linux+v3.3/Documentation/arm/Booting#L159
>
> You didn't mention exactly when you're enabling the data cache. If
> it's prior to executing the kernel, then your code needs to make sure
> that the MMU (and hence the data cache) has been disabled prior to
> running the kernel itself.
>
> The kernel will then turn the MMU, data and instruction caches on as
> part of its own initialization.
>
> --
> Dave Hylands
> Shuswap, BC, Canada
> http://www.davehylands.com
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20120328/aeecf872/attachment.html 


More information about the Kernelnewbies mailing list