EmbeddedRelated.com
Forums

Problem with CPU Data cache

Started by Viru...@Lntemsys.com December 16, 2009
I am using at91sam9g20 with 2.6.27 linux kernel and having problem in
booting the kernel on one of the board.
I have analysed the arm register configuration and have seen by disabling
the data cache in the kernel at the below locations, the kernel works fine
on the bad board.

1) The "arch/arm/boot/compressed/head.S" which is used for decompressing
the kernel and here i have changed the code manually to not to enable the
data cache.
writing #0x0009 instead of #0x000d to the c1 register of the cp15.
2) The "arch/arm/kernel/head.S" file and for this the
CONFIG_CPU_DCACHE_DISABLE kernel config option is sufficient to disable
the data cache enabling.

If i dont do the first one , i get
Uncompressing
Linux.............................................................
................................................
crc error
-- System halted

and if the first change is done and the seconds one is not done, then the
kernel boots up but fails to mount the RFS. On doing both changes the
kernel boots up fine with the RFS.
I feel like data chache disabling is needed only at places where there is
some king of data decompression.

It will be helpful if you can give some input on this issue.

Regards
Virupax.

> I am using at91sam9g20 with 2.6.27 linux kernel and having problem in
> booting the kernel on one of the board.
> I have analysed the arm register configuration and have seen by disabling
> the data cache in the kernel at the below locations, the kernel works fine
> on the bad board.

Check your SDRAM setup, it looks it fails on burst reads (as done by
cache-line fills).

--
42Bastian
+
| http://www.sciopta.com
| Fastest direct message passing kernel.
| IEC61508 certified.
+