All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dirk Behme <dirk.behme@googlemail.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] arm_cortexa8: support cache flush to other soc
Date: Fri, 04 Sep 2009 13:43:08 +0200	[thread overview]
Message-ID: <4AA0FD4C.3000706@googlemail.com> (raw)
In-Reply-To: <9c9fda240909040354h204ca677q946abc8c65d7aa0e@mail.gmail.com>

Kyungmin Park wrote:
> On Fri, Sep 4, 2009 at 7:45 PM, Dirk Behme<dirk.behme@googlemail.com> wrote:
>> Kyungmin Park wrote:
...
>>>>> +     if (get_device_type() != 0xC100) {
>>>> Hmm, what is this "0xC100" ?
>>> Now we got two cpu, s5pc100 and s5pc110. In case of s5pc100 we don't
>>> need to turn off l2 cache. but s5pc110 needs it.
>>> So first check the device type, actually cpu type. then determine turn
>>> off l2 cache or not.
>> "0xC100" is the device type of s5pc100 then? So it should be
>>
>> if (get_device_type() != S5PC100_DEVICE)
>>
>> ? I hear some people crying "please use macro" ;)
> 
> Agreed. DONT_NEED_CACHE_FLUSH?
> 
>> But I don't like this selection here. When we get additional similar SoCs,
>> we will end with something like
>>
>> if (get_device_type() != 0xC100) ||
>>  (get_device_type() != FOO) ||
>>  (get_device_type() != BAR))  ||
>>  ... {
>>
>> modifying each time cpu/arm_cortexa8/cpu.c.
>>
>> I would like more that we are able to compile the functionality based on the
>> config file we use for compilation. E.g. provide emtpy l2_cache_disable();
>> function for SoCs that don't need it, but have functionality behind it where
>> needed.
>>
>> With above patch, this would then become something like
>>
>> cpu/arm_cortexa8/s5pcxxx/dcache.S
>>
>> -> Implements invalidate_dcache() (or implement a Cortex A8 generic one in
>> cpu/arm_cortexa8/cache.S)
>>
>> cpu/arm_cortexa8/s5pcxxx/cache_110.S
>>
>> -> Implements l2_cache_enable()/disable()
>>
>> cpu/arm_cortexa8/s5pcxxx/cache_100.S
>>
>> -> Implements *empty* l2_cache_enable()/disable()
>>
>> In cpu/arm_cortexa8/s5pcxxx/Makefile you then could have
>>
>> SOBJS-y += dcache.o
>> SOBJS-$(CONFIG_S5PC100) += cache_100.o
>> SOBJS-$(CONFIG_S5PC110) += cache_110.o
>>
>> What do you think about this?
>>
> 
> Basically agreed, of course we can think weak attribute but now we
> have to support both cpu simultaneously.
> with this reason. we check the device_type at here.

What's about having this check in SoC specific code instead of Cortex 
A8 generic code, then?

E.g apply patch

http://lists.denx.de/pipermail/u-boot/2009-August/058492.html

and then create

cpu/arm_cortexa8/s5pcxxx/cache.S

with

invalidate_dcache() {
  if (get_device_type() == S5PC100_DEVICE)
	return();
  ...

l2_cache_enable() {
   if (get_device_type() == S5PC100_DEVICE)
	return();
  ...

etc.

That is, have the SoC dependent part in SoC specific directory/file.

Best regards

Dirk

  reply	other threads:[~2009-09-04 11:43 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-09-04  8:26 [U-Boot] [PATCH] arm_cortexa8: support cache flush to other soc Minkyu Kang
2009-09-04  8:43 ` Dirk Behme
2009-09-04  9:34   ` Kyungmin Park
2009-09-04 10:45     ` Dirk Behme
2009-09-04 10:54       ` Kyungmin Park
2009-09-04 11:43         ` Dirk Behme [this message]
2009-09-04 14:29           ` Minkyu Kang
2009-09-04 15:06             ` Dirk Behme
2009-09-07  1:31               ` Minkyu Kang
2009-09-07 16:52                 ` Dirk Behme
2009-09-08  0:06                   ` Minkyu Kang
2009-09-08  0:47                     ` Tom
2009-09-08 18:51                       ` Dirk Behme
2009-09-08 22:23                         ` Tom
2009-09-09  5:34                           ` Minkyu Kang
2009-09-09 11:24                             ` Tom
2009-09-09 12:04                               ` Minkyu Kang
2009-09-10 19:02                           ` Tom
2009-09-10 19:36                             ` Paulraj, Sandeep
2009-09-04 22:24       ` Jean-Christophe PLAGNIOL-VILLARD
2009-09-04 11:06     ` Wolfgang Denk
2009-09-04 11:11       ` Kyungmin Park
2009-09-04 11:48         ` Wolfgang Denk

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4AA0FD4C.3000706@googlemail.com \
    --to=dirk.behme@googlemail.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.