From: Aneesh V <aneesh@ti.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] "armv7: integrate cache maintenance support" breaks km_kirkwood ethernet
Date: Fri, 29 Jul 2011 19:52:27 +0530 [thread overview]
Message-ID: <4E32C223.2050309@ti.com> (raw)
In-Reply-To: <20110729123331.35C4D1FB4B0@gemini.denx.de>
Dear Wolfgang,
On Friday 29 July 2011 06:03 PM, Wolfgang Denk wrote:
> Dear Aneesh,
>
> In message<4E3161ED.5030109@keymile.com> Holger Brunck wrote:
>>
>> today I did a rebase of my development branch to current u-boot master. And I
>> saw on our km_kirkwood board that our egiga0 interface isn't working anymore.
>>
>> The CPU is a:
>> SoC: Kirkwood 88F6281_A0
>>
>> After bisecting the current tree I got:
>>
>> c2dd0d45540397704de9b13287417d21049d34c6 is the first bad commit
>> commit c2dd0d45540397704de9b13287417d21049d34c6
>> Author: Aneesh V<aneesh@ti.com>
>> Date: Thu Jun 16 23:30:49 2011 +0000
>>
>> armv7: integrate cache maintenance support
>>
>> And indeed after reverting this commit on current HEAD my board is usable again.
>
> The same is true for iMX27 (and probably other boards / SoCs):
>
> I verified for both the "imx27lite" and "magnesium" boards that above
> patch breaks Ethernet on these iMX27 boards.
>
> Seems we have a bigger problem here...
I had written a small write-up on this earlier today in the below
thread:
http://marc.info/?l=u-boot&m=131193466800729&w=2
I had done extensive testing on the armv7 cache-maintenance APIs by
creating coherency issues and solving them using the APIs. I believe
the problems are due to the APIs not being appropriately used where
they need to be used, also coupled with the fact that dcache_enable()
is now called from board_init_r().
Anyway, I will test my APIs once again on Cortex-A8 and Cortex-A9.
Maybe, I should also write a README with guidelines for correct cache
usage.
Also, I would suggest the following to solve the problem with breaking
boards:
1. Allow boards to define CONFIG_SYS_DCACHE_OFF and/or
2. Instead of calling dcache_enable() from board_init_r() let's call a
new function like dcache_init(). The default implementation of this
function shall do nothing. The real implementation in platform code may
enable or disable d_cache() on a per SoC/board basis.
best regards,
Aneesh
next prev parent reply other threads:[~2011-07-29 14:22 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-07-28 13:19 [U-Boot] "armv7: integrate cache maintenance support" breaks km_kirkwood ethernet Holger Brunck
2011-07-29 12:33 ` Wolfgang Denk
2011-07-29 12:51 ` Jason Liu
2011-07-29 16:00 ` Aneesh V
2011-07-29 14:22 ` Aneesh V [this message]
2011-07-30 20:38 ` Wolfgang Denk
2011-08-07 15:25 ` Jens Scharsig
2011-08-07 15:25 ` Jens Scharsig
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=4E32C223.2050309@ti.com \
--to=aneesh@ti.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox