[okl4-developer] ARM versatile platform
Lukas HANEL
lukas.hanel at st.com
Tue May 27 20:06:14 EST 2008
Hi,
> On 30/04/2008, at 10:19 PM, Lukas HANEL wrote:
>
> Hi,
>
> I am progressing with my OKL4_2.1 port to a platform similar to the ARM
> versatile platform. For software emulation, I use qemu with -M
> versatilepb flag. When running OKL4 with project=l4test, some tests are
> passed, but it hangs in others.
> For me to finish l4test, I have to disable the following tests:
> "CACHE0600",
> "CACHE0700",
> "CAPIPC2100",
> "FUZZ0200",
> In your opinion, will the failure of these tests hinder me to use iguana
> and oklinux?
>
In fact I am now figuring out, that the cache flushing is used when
Linux passes from kernel mode to user mode. So I have to address this
problem now.
Nelson Tam wrote:
> Hi Lukas,
>
> As for the cache tests, please check that you've defined correct cache
> parameters for the versatile platform. You can look at
> platform/pxa/pistachio/src/plat.cc for an example of how it is defined.
> --
> (nt)
>
> Nelson Tam
Digging further into the problem, I figured out, that the kernel loops
in the instruction cache invalidation function.
arch/arm/cpu/include/cache.h:
static inline void cache_invalidate_ilines(addr_t vaddr, word_t size)
I eventualy figured out, that the kernel increments a pointer by
ICACHE_LINE_SIZE, which I did not set in my configuration and which was
hence zero.
Naturaly I looked up the instruction cache attributes and set the
correct values in my platform file. And fortunatly, now it works.
This is odd with other platforms, which do not define instruction cache
attributes in their plat.cc
So for arm926 cpu cores you also have to set the icache attributes in
you plat.cc file.
Lukas Hänel
More information about the Developer
mailing list