[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