[U-Boot] [RFC/PATCH] davinci: disable dcache on boards with EMAC

Christian Riesch christian.riesch at omicron.at
Mon Nov 28 16:43:05 CET 2011


Hi Tom,

On Mon, Nov 28, 2011 at 3:53 PM, Tom Rini <tom.rini at gmail.com> wrote:
> On Mon, Nov 28, 2011 at 5:06 AM, Christian Riesch
> <christian.riesch at omicron.at> wrote:
>> On Sun, Nov 27, 2011 at 5:41 PM, Tom Rini <tom.rini at gmail.com> wrote:
>>> On Sun, Nov 27, 2011 at 8:09 AM, Wolfgang Denk <wd at denx.de> wrote:
>>>> In message <1321048618-20616-1-git-send-email-yanok at emcraft.com> you wrote:
>>>>> DaVinci EMAC driver has no support for running with D-Cache enabled so
>>>>> disable D-Cache on all DaVinci boards with EMAC device.
>>>>>
>>>>> Signed-off-by: Ilya Yanok <yanok at emcraft.com>
>>>>> ---
>>>>>
>>>>> I can't test it on any DaVinci boards right now but my understanding
>>>>> is that currently EMAC driver can't work properly with D-Cache enabled.
>>
>> [...]
>>
>>>> Why do we have to permanently disable the data cache just because the
>>>> network driver is broken?  USB is also broken, and probably other
>>>> drivers as well.
>>>
>>> To be clear, the problem is that today the driver is broken (not cache
>>> safe) and this series of patches fixes that problem.  In doing so we
>>> expose that arm926ejs doesn't have complete cache support today.
>>
>> What do you mean by "broken"? Is it "never working" or is it "working
>> sometimes" or "not working under specific conditions"? I have a DA850
>> based board and I use the Davinci EMAC driver (CONFIG_DRIVER_TI_EMAC).
>> I don't have these CONFIG_SYS_xCACHE_OFF defines in my board config
>> file so I guess D-Cache is enabled. But Ethernet works fine, so what
>> am I missing here? Is D-Cache disabled somewhere else?
>
> Today, right now?  I tried a dm365evm back in August on top-of-tree
> and emac didn't work until I disabled caches.  I don't have day-to-day
> access to that board however to confirm the current state.

Yes, right now.

I did a test now with the da850evm with the current u-boot, commit
99258c34103efad3395c679256a221731d010c4b, and my recent patchset [1]
applied (all my tools currently expect this patchset, so it was easier
for me, but my patchset does not touch the emac driver).

I did a
make mrproper
make da850evm_config
make -s u-boot.ais

flashed the u-boot.ais to SPI flash and successfully tested the
Ethernet connection by loading a kernel image via tftpboot.

Then I commented out the lines
#define CONFIG_SYS_ICACHE_OFF
#define CONFIG_SYS_DCACHE_OFF
#define CONFIG_SYS_L2CACHE_OFF
re-built u-boot and tried the same, the Ethernet connection still
worked and I could still load the kernel image.

So what am I missing here?
Regards, Christian

[1] http://lists.denx.de/pipermail/u-boot/2011-November/111182.html


More information about the U-Boot mailing list