[U-Boot] "armv7: integrate cache maintenance support" breaks km_kirkwood ethernet
Aneesh V
aneesh at ti.com
Fri Jul 29 18:00:46 CEST 2011
Hi Jason,
On Friday 29 July 2011 06:21 PM, Jason Liu wrote:
> Hi, All,
>
> 2011/7/29 Wolfgang Denk<wd at denx.de>:
>> Dear Aneesh,
>>
>> In message<4E3161ED.5030109 at 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 at 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...
>
> The root cause is that: This commit enable d-cache for all the ARM
> platform silently,
> Not just ARMV7.
>
> --- a/arch/arm/lib/board.c
> +++ b/arch/arm/lib/board.c
> @@ -450,6 +450,12 @@ void board_init_r (gd_t *id, ulong dest_addr)
> gd->flags |= GD_FLG_RELOC; /* tell others: relocation done */
>
> monitor_flash_len = _end_ofs;
> + /*
> + * Enable D$:
> + * I$, if needed, must be already enabled in start.S
> + */
> + dcache_enable();
> +
The rationale for doing that is explained in the following thread:
http://marc.info/?l=u-boot&m=131107645915931&w=2
The idea was to enable it immediately after relocation. But I agree
that the patch title probably doesn't indicate this.
best regards,
Aneesh
More information about the U-Boot
mailing list